środa, lipca 13, 2011

Symulacja zamiast kartki i ołówka ;-)

Podobno w Google potrafią zadać pytanie w stylu "Jeśli prawdopodobieństwo tego, że w ciągu godziny obserwacji drogi zobaczymy samochód wynosi 0.95, to ile wynosi prawdopodobieństwo zobaczenia samochodu w ciągu 30 minut?".

Umiałem sobie ten wzorek wyprowadzić "od tyłu", zakładając że skoro P(dla 1 godziny)=0.95 to P(dla 2 godzin)=P(dla 1 godziny)+(1-P(dla 1 godziny))*P(dla 1 godziny). Ale nigdy nie byłem go pewien ;-)
Powiedzmy, że doszedłem do tego intuicyjnie ;-) a tak naprawdę wg. takiego schematu, to że auto zauważymy w ciągu pierwszej godziny wynosi 0.95, czyli z prawdopodobieństwem 0.5 nie zauważymy auta, w takim przypadku drugą godzinę będziemy ślepić na tą drogę i wtedy to prawdopodobieństwo znów będzie wynosiło 0.95.
Sprawdziłem to też w głowie ;-) Dla prostszego przypadku gdy to prawdopodobieństwo wynosi 0.5, wtedy możemy przez 2 godziny nic nie zobaczyć, co będzie 1 przypadkiem, możemy zobaczyć coś w godzinie 1 lub w godzinie 2, to są 2 przypadki i w końcu możemy zobaczyć coś 2 razy w ciągu 2 godzin. Czyli mamy 3 sytuacje gdy coś widzimy na 4 możliwe, czyli prawdopodobieństwo wynosi 0.75. Co się zgadza ze wzorkiem.

Ale z matematyką to ja zawsze tak na bakier byłem, nie mam tego talentu, który mają niektórzy i nie widzę czy wynik ma sens czy nie ma (zwykle z tego powodu, że nie umiem używać kartki i ołówka więc liczę to w głowie i się gubię).
To napisałem program do testowania ;-)




Program przeprowadza 10000 razy symulację naszego zjawiska.
I wyniki wychodzą sensowne.
OK, to wiemy, że mój pomysł ma ręce i nogi, teraz trzeba w drugą stronę.
Ale jak nasz wzór działa to mamy, że:
P(dla 2 godzin)=P(dla 1 godziny)+(1-P(dla 1 godziny))*P(dla 1 godziny)
P(dla 2 godzin)=2*P(dla 1 godziny)-P(dla 1 godziny)2
P(dla 1 godziny)2-2*P(dla 1 godziny)+P(dla 2 godzin)=0

 W końcu mamy (i tu się trochę gubię ;-)), że:
P(dla 1 godziny)=(2-sqrt(4-4*P(dla 2 godzin)))/2 lub P(dla 1 godziny)=(2+sqrt(4-4*P(dla 2 godzin)))/2

Jak sobie zmienimy pytanie Google tak by czasy były o 2 większe (żeby skorzystać z wzorów u góry) to odpowiedź wychodzi 0.776 ;-)
Jak ją podstawić do symulacji to wynik wychodzi 0.95, czyli tyle ile powinno.

I teraz jest tak, że zapewne to wszystko u góry można znając matematykę powiedzieć z głowy, a ja głupi muszę to liczyć i sobie symulatory pisać ;-)
Plus jest taki, że mój sposób jest zabawniejszy :-)


Podobne postybeta
JavaScript wygrywa z Pythonem w symulacji ;-)
Dziwne wykorzystanie twierdzenia Bayesa :-)
Randki w ujęciu Bayesowskim ;-)
Reality Check
Kartka i ołówek

6 komentarzy:

  1. Twój przykład właśnie uświadomił mi czemu tak nie lubiłem "szkolnej" statystyki.

    Na początek miałem problem ze zrozumieniem... Dopiero Twój wzór nieco naświetlił mi sprawę. Cóż, nasz język średnio nadaje się do opisu matematyki.

    Jednak nie o tym chciałem napisać.


    Twoje zadanie jest zbyt mocno oderwane od rzeczywistości. Bez kontekstu łatwo o karkołomne błędy.


    Jak ktoś wyliczył owe 95%?


    Wyobraźmy sobie taką sytuację:

    Na wiejskiej drodze co godzinę jedzie autobus. Ze względu na pobliski przejazd kolejowy, 5% autobusów w roku spóźnia się o 10min.

    W takich okolicznościach szansa że w ciągu godziny doczekasz się na autobus wynosi 95%, ale wystarczy poczekać chwilę i tadaaam.

    Pół godziny oczekiwania w takich okolicznościach daje nam 45% szans... (przecież pół autobusu nie przyjedzie).


    ech ta statystyka..... nie lubię jej.


    Na koniec... Jaka jest szansa że autobus przyjedzie o 12:00? ;)

    OdpowiedzUsuń
  2. Nie jest istotne jak ktoś wyliczył te 95% ;-) Istotniejsze jest to jak się za to zadanie zabierzesz, czy będziesz próbował mnożyć prawdopodobieństwa, a może dodawać? [takie są nasze pierwsze odruchy ;-)].
    To tak jakby spytać "Patrzysz na atom pierwiastka X o czasie połowicznego zaniku 1 godzina, jakie jest prawdopodobieństwo, że atom ulegnie rozpadowi w ciągu 30 minut?".

    Niema 100% ;-) Gdzieś na całym świecie prawie na pewno choć 1 autobus przyjedzie o tej porze ;-)

    OdpowiedzUsuń
  3. Miało być ostatnie zdanie:
    Niema 100% ;-) Gdzieś na całym świecie prawie na pewno choć 1 autobus przyjedzie o tej porze ;-)

    Niech już Google połączy Bloggera z Google+ i da mu komentarze z Google+ bo bloggerowe są do bani, a tamte fajne i można je edytować.

    OdpowiedzUsuń
  4. Napisałem "tadaam" nie 100% jestem świadom że pewne jest tylko "nic". Mój przykład też jest uproszczeniem ;)

    ... ale z tym 45% to po zastanowieniu już nie jestem tak pewien, bo nie do końca wiadomo na który autobus czekamy... ten spóźniony czy nie, więc może jednak 47.5%? Teraz to ja mam ochotę na symulację....

    Problem z _pojedynczym_ autem na ulicy i statystyką polega na tym że to jest przypadek brzegowy gdzie statystyka już przestaje działać.

    Dla mnie całe zadanie jest bardziej zrozumiałe gdy odwrócić pytanie. Jest więc p=5% szans że nic nie pojedzie przez godzinę. Dwie godziny to p*p, trzy p*p*p, więc funkcja to Math.pow(0.05, t)

    ps.
    Prawdopodobieństwo że autobus przyjedzie o 12:00 wynosi dokładnie 0%

    OdpowiedzUsuń
  5. f*k, ostatnie moje zdanie miało się zaczynać od "Niemal", a nie od "Niema"
    I 2 razy powtórzyłem źle ;-)

    To są prawdopodobieństwa, tylko tyle. Prawdopodobieństwo wypadnięcia orła na uczciwej monecie wynosi 0.5, ale to nie znaczy, że w serii 10 będzie dokładnie 5 orłów i 5 reszek.
    W 4 nie będzie zawsze 2 orłów i 2 reszek. Mogą być OOOO, OOOR, OORO, OORR, OROO, OROR, ORRO, ORRR, ROOO, ROOR, RORO, RORR, RROO, RROR, RRRO i RRRR z czego np. orły stanowią więcej niż 50% w serii w 5 przypadkach na 16, czyli w ponad 30% przypadków. Albo jeszcze inaczej, na świecie jest mniej więcej tyle samo kobiet co mężczyzn, ale idąc możesz trafić naraz na 30 kobiet nie widząc żadnego mężczyzny.

    Prawdopodobieństwo opisuje właśnie tylko prawdopodobieństwo ;-) To 0.95 mówi, że w 95% przypadków w ciągu godziny widziano samochód na drodze. czyli w ciągu 100 losowo wybranych godzin przeciętnie w ciągu 95 z nich widziano jakieś auto.... no i wydaje mi się, że zwracasz uwagę nie na to co jest istotne ;-)

    Btw. zapraszam do śledzenia mnie Google+ https://plus.google.com/u/0/113822113008490295511/posts :-)

    OdpowiedzUsuń
  6. G+ puki co nie jest dostępne dla każdego.

    Mam nadzieję że konta z Google Apps, tym razem nie zostaną potraktowane po macoszemu (Buzz nie pojawił się nigdy).

    Natomiast w temacie prawdopodobieństwa. Nie neguję Twoich wyników bo są poprawne, ale zwracam uwagę że trzeba patrzeć na warunki brzegowe.

    95% prawdopodobieństwo spotkania auta (przez godzinę) na ruchliwej autostradzie gdzie tylko przez 5% czasu nic nie jeździ, a 95% szans by trafić na autobus, który jedzie raz na godzinę to dwie różne rzeczy.

    Mimo że liczby pozornie są takie same, to rozkład prawdopodobieństwa jest zupełnie inny. Właśnie takie odstępstwa od statystyki sprawiły że narodziła się fizyka kwantowa.

    Nie można bezkrytycznie wyciągać wniosków o B na podstawie A.

    OdpowiedzUsuń