Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem beim Addieren von Wahrscheinlichkeiten (https://www.delphipraxis.net/23671-problem-beim-addieren-von-wahrscheinlichkeiten.html)

phlux 7. Jun 2004 18:56


Problem beim Addieren von Wahrscheinlichkeiten
 
Servus :hi:

Also folgendes Problem, ich habe ein Array (ungefähr 500 Felder groß) vom Typen Double, die Werte liegen alle so im Bereich von 0 bis 1 (zb 0,30509745127 usw) diese Werte spiegeln die Häufigkeit eines Ereignisses wieder (sprich in diesem Falle ~30%), wie gesagt will ich jetzt die ganze Reihe von WSK addieren, das mache ich nach folgender Formel:

Angenommen a, b,... n sind die WSK:

(a*b*...*n)
------------------------------------
(a*b*...*n)+(1-a)*(1-b)*...*(1-n)

Programmtechnisch hab ich das wie folgt realisiert:

Delphi-Quellcode:
uses
  Math;

var
  wsk: Array of Double;
  i: Integer;
  zaehler: Double;
  nenner: Double;
  rWSK: Double;

begin
  zaehler := wsk[0];
  for i := 1 to High(wsk) do
  begin
    zaehler := zaehler * wsk[i];
  end;
  nenner := 1 - wsk[0];
  for i := 1 to High(wsk) do
  begin
    nenner := nenner * (1 - wsk[i]);
  end;
  rWSK := zaehler / (zaehler + nenner);
  rWSK := RoundTo((rWSK * 100), -2);
end;
Soweit so gut, allerdings krieg ich als Ergebnis winzigkleine Werte raus, was partout nicht sein kann (bei einer geschätzten durchschnittl. WSK von etwa 50%), also die Werte liegen so im bereich von -9e^26 :kotz:
Weiß jemand wo der Fehler im Algorithmus ist?

mfg phluphlu :hi:

atreju2oo0 7. Jun 2004 19:07

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
Der Fehler liegt schon in deiner Formel.
Wenn Du werte kleiner Null multiplizierst entstehen stets Werte die noch kleiner sind!
Am besten wäre es wenn Du nochmal kurz erklärst was Du erreichen willst?
Den Durchschnitt der Wahrscheinlichkeiten ausrechnen, oder die StandardAbweichung oder...
Weil wenn Du die bloss addieren willst dann ist die Formel a+b+c+... :mrgreen:

phlux 7. Jun 2004 19:30

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
Nein einfach nur addieren will ich die WSK nicht, im Grunde genommen will ich nur den Durchschnitt der WSK errechnen, als Vorlage nahm ich dies hier:
http://www.mathpages.com/home/kmath267.htm

ibp 7. Jun 2004 19:44

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
hallo,
also wie atreju2000 schon gesagt hat, warum bildest du das produkt der elemente von wsk wenn du die summe haben willst, versuchs mal damit....
deinen algorithmus solltest du schon erklären...:gruebel:


Delphi-Quellcode:
  zaehler := 0;
  nenner := 0;
  for i := 0 to High(wsk) do begin
    zaehler := zaehler + wsk[i];
    nenner := nenner + (1 - wsk[i]);
    //                 ^
  end;
  rWSK := 100 * zaehler / (zaehler + nenner);
  //... wenn das ^^^^ so sein soll, kannst du die zeile auch weglassen, da
  //  zaehler + nenner = 100, wenn nenner = 1- zaehler mit zaehler=wsk[i]
  // somit berechnest du rwsk:=100*zaehler/100 !!! :wall:
  rWSK := RoundTo(rWSK, -2);
gruß rene :hi:

phlux 7. Jun 2004 19:47

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
:mrgreen: so jetzt hab ich es, den Satz von Bayes will ich anwenden, sprich die Bayes'sche Formel, weiß jemand nen Algorithmus dafür? :gruebel:

ibp 7. Jun 2004 19:50

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
oops habe deinen 2. post eben erst gesehen, hätte ich mir auch die arbeit sparen können :wall:

... wenn du den durchschnitt haben willst, solltest du ihn auch berechnen wie er definiert ist,
mit der summe der gesamtheit durch seine anzahl....
also
wsk[0]+wsk[1]+...+wsk[i]/(i+1)

:dancer: :dp:

gruß rene

phlux 7. Jun 2004 19:59

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
Ahjo, hier ist die Seite, woher ich meinen ersten Algorithmus habe:
Link zur Formel
:gruebel: Irgendwie versteh ich das nicht :gruebel:

ibp 7. Jun 2004 20:11

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
...
Verständnisprobleme des Bayes-Theorems

Die gleichen Informationen, die vielen schwer verständlich sind, können auch ohne bedingte Wahrscheinlichkeiten aufbereitet werden, wie in absolute Häufigkeit aufgeführt. Typische Verständnisprobleme im Umgang mit bedingten Wahrscheinlichkeiten sind
1:Verwechslung von Konditionalität und Kausalität
2:Verwechslung von bedingter und konjunktiver Wahrscheinlichkeit
3:Verwechslung von bedingtem und bedingendem Ereignis
4:Schwierigkeiten bei der exakten Definition des bedingenden Ereignisses (z.B. beim "Ziegenproblem")
5:Missverstehen der Fragestellung durch mangelndes Grundverständnis für bedingte Wahrscheinlichkeiten, zu komplizierte Formulierung u.ä.

.... alles gefunden bei [google]http://www.google.de/search?hl=de&ie=UTF-8&q=der+satz+von+bayes&btnG=Suche&meta=cr%3Dcountr yDE[/google]

... soviel wie ich da gelesen habe brauchst du 2 wege (wahrscheinlichkeiten) für ein ereignis
um mit dem satz von bayes einen aussage zu treffen !!!

gruß

phlux 7. Jun 2004 20:15

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
Okay, danke für die Infos :thumb: btw der Link geht nicht, aber man kann die Suchwörter aus dem Link herauslesen ;)

ibp 7. Jun 2004 20:38

Re: Problem beim Addieren von Wahrscheinlichkeiten
 
Zitat:

Zitat von phlux
Ahjo, hier ist die Seite, woher ich meinen ersten Algorithmus habe:
Link zur Formel
:gruebel: Irgendwie versteh ich das nicht :gruebel:

...
nach diesem artikel stimmt dein proggi :cheers:
also nochmals ein wenig leserlicher:

Delphi-Quellcode:
  zaehler := 0;
  nenner := 0;
  for i := 0 to High(wsk) do begin
    zaehler := zaehler * wsk[i];
    nenner := nenner * (1 - wsk[i]);
  end;
  rWSK := zaehler / (zaehler + nenner);
  rWSK := RoundTo((100*rWSK), -2);
.. nur der satz von bayes hat nichts mit einer durchschnittlichen wahrscheinlichkeit zu tun sondern mit wahrscheinlichkeiten aus einem ereignisbaum unterschiedlicher wege !!!

gruß rené

ps...nach dem beispiel ist jemand der vor dir steht mit der wahrscheinlichkeit von 60 % basketballer der 7 füße :gruebel: hat und ...
wenn er einen ball in der hand hat eben mit 72%...
also...
Delphi-Quellcode:
      typ mit 7 füßen
            /\
           /  \
ohne ball /    \ mit ball im arm
         /      \
        /        \
       /\        /\
    40/  \60  72/  \18
     /    \    /    \
    n     j j     n .. basketballer
um die wahrscheinlichkeit nun zu berechnen ob der typ vor dir mit 7 füßen ein basketballer ist oder nicht, benutzt man nun den satz von bayes. hoffentlich war das ein wenig verständlicher

:bouncing4:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz