luni, 27 septembrie 2010

Gamma la toata lumea

Se da urmatoarea situatie: ai niste raspunsuri privind niste sume de bani. Unele din ele, cele mai multe (1901 din 2136) au moneda explicit mentionata. Avem insa o minoritate de raspunsuri (230) la care nu stim moneda. Ce punem: Euro sau RON?

Problema se formuleaza astfel: cunoscindu-se distributia Euro / RON la fiecare din valorile distributiei, sa se identifice proportiile in care cele 230 de raspunsuri fara moneda ar trebui sa primeasca Euro, respectiv RON, in asa fel incit sa se minimizeze eroarea de atribuire Euro / RON.

Rezolvare:

Initial, curatam distributia bruta de acele sume unde avem putine raspunsuri. Dupa cum stim, raspunsuri putine, moartea pasiunii in statistica.

Resulta o distributie intermediara, cu frecvente suficient de mari incit sa functioneze decent legea numerelor mari.

Se standardizeaza apoi raportul Euro : RON la fiecare palier de raspuns, pastrindu-se doar procentele de raspunsuri Euro (cele RON sint, evident, complementare: diferenta pina la 100).

Rezulta urmatoarea distributie. In stinga, valoarea (in euro). In dreapta, procentul de mentionari in cadrul raspunsurilor cu moneda cunoscuta.

E %
100 60
200 69
300 74
400 84
500 89
600 89
700 87
750 85
800 87
900 85
1,000 79
1,100 78
1,200 72
1,300 68
1,400 56
1,500 56
1,600 46
1,700 46
1,750 42
1,800 44
2,000 36
2,500 36
3,000 34
4,000 33
5,000 36

Urmatorul pas: ce functie, ce distributie teoretica se aseaza cel mai bine pe aceasta distributie reala? (daca faceti graficul, veti vedea cum arata si cum miroase a functie in spate).

Raspunsul (dupa oaresce sapaturi si belire vizuala de ochi): distributia Gamma.

Urmatoarea intrebare: care sint parametrii distributiei Gamma care aproximeaza cel mai bine aceasta distributie reala?

Raspuns:

Calculam mai intii media si abaterea standard a distributiei.

Obtinem urmatoarele valori:

Average = 1163.2
St Dev = 951.5

Calculam mai apoi parametrii distributiei Gamma, conform cu formulele

Theta = (st dev) * (st dev) / average
Kappa = average / theta

Obtinem urmatoarele valori:

Theta = 778.4
Kappa = 1.49

Mai apoi, standardizam distributia (valorile Y, alea din dreapta, sa putem sa calculam probabilitati Gamma si pentru alte valori, intermediare).

Trebuie sa luam valorile din dreapta (procentele) si le transformam in probabilitati. Mai intii normalizam (z), apoi rescalam (aducem la valori pozitive, ca in R+ e definita Gamma). Dupe ce tragem de valori de le apuca naiba, transformam seria de densitate de probabilitati in probabilitati cumulate. Calculam deci probabilitatile cumulate, sa dea o serie ordonata strict crescator, de la 0 la 1.

Urmatorul pas: avind probabilitatile cumulate, calculam acum functia inversa a lui Gamma pt valorile intermediare, alea dintre cele din tabelul de mai sus, alea pe care le-am dat la o parte, ca erau frecvente prea putine. Ne inchinam cinci spre cinsprezece minute la Excel si iese. Traiasca Excelul, ca stie de toate!

Apoi, in cele din urma, recalibram valorile intermediare obtinute pe dimensiunile distributiei initiale (nu uitati: am standardizat initial, deci am turtito-lungito-transformat distributia. Acum trebuie sa o aducem la loc)

Rezulta urmatoarele grafice, care exprima toata lupta cu ingeru a lui Turambar de azi.

Fig. 1: Distributia reala (dupa ce am dat la o parte valorile unde aveam frecvente putine)



Fig. 2. Distributia teoretica Gamma identificata.


Fig. 3. Recalibrare: Distributia teoretica Gamma adusa la scala initiala, la dimensiunile distributiei reale.


Pe urma am mai muncit inca aproape jumatate de ora, sa distribui eticheta Euro / RON cf cu procentele identificate. Dar asta e alta poveste, pentru alt grafic.

Aspru, nu?

:)

Life is beautiful and maths are useless, except when they're not.

:wink:

11 comentarii:

Dan Selaru spunea...

La ce dracu' ti-a folosit prostia asta? Saau, la ce le-a folosit?

Turambar spunea...

Aveam unele raspunsuri incomplete la o intrebare privind suma. Aveam cifrele, insa fara moneda insotitoare. Si din celelalte raspunsuri rezulta ca 1000 poate la fel de bine sa insemne fie euro, fie ron. Si venea, natural, intrebarea: cum estimez cifrele astea, in asa fel incit sa calculez valori medii, sa spun ceva despre distributia respectiva? Ca trebuia initial sa transform totul intr-o singura moneda (sa spunem RON).

Insa era clar ca la anumite paliere de raspuns distributia in rindul raspunsurilor cu moneda explicita era evident in favoarea EURO (de ex. in zona pina in 500), in schimb la altele era clar in favoarea RON (la sume mari, peste 2000 - 3000), iar in plaja de mijloc (500 - 2000), erau destul de echilibrate.

O varianta tzaranesc-rudimentara ar fi fost a rule of the thumb: cam de aici aici distribuim egal Euro si RON, cam de aici aici in raportul asta, prielnic Euro, de aici incolo intr-un raport favorabil RON.

Insa nu era mai frumos sa identific distributia si sa minimizez astfel atribuirea gresita?

Ce pana Excelului meu. Am facut-o :) Ca de-aia am invatzat matematica la scoala. Sa o uit si sa caut acum din nou formulele...

:wink: :smartass:

Anonim spunea...

eu n-as fi folosit la calcul decat raspunsurile care au moneda explicit mentionata pentru ca alea sunt fundamentate pe fapte, iar probabilitatile (repartitie normala, binomiala etc.)nu sunt fapte, ci estimari ale faptelor. si cand se amesteca intr-un calcul faptele cu probabilitatile, cresc sansele sa fie alterat adevarul (ca poanta aia a lui Murphy cu amestecatul vinului cu apa de canal).
chestiile astea gaussiene dau bine, dar exista voci care sustin ca sunt scoase din palarie, vezi http://www.fooledbyrandomness.com/epistemologyfattails.pdf
"Note that the quantitative-statistical literature is not thoughtful enough or self-critical “to be even wrong” on the subject. How?
Conventional tests of normality study the square errors from a Gaussian and use a Gaussian inspired distribution (a special case
of the Gamma distribution, the Chi-Square, which is the distribution of the squared Gaussian variate) .
This is exceedingly circular and reflects a severe lack of awareness of such circularity."

Turambar spunea...

Bine ca esti tu destept si le stii pe toate ca un om mare si trist. E plina lumea asta de destepti care cu regularitate de ceas atomic vin sa-ti spuna de ce nu se poate face A sau B sau C.

Ne-am dat dracu de savanti circotasi

:(

Itzicbaseanu spunea...

Turi, ca tinichgiu, ma baiete, distributia "raspunsurilor" nu-mi spune nimic cu toate graficele tale si referinta la "sume de bani"! Bai, pai la ce intrebare s-au dat raspunsurile in sume, la cat s-a furat, la cat s-a devalizat, la cat s-a taiat, la cat s-a diminuat, la cat s-a mituit...Pai Turi draga,cat ai fi da sociolog, mai bazeaza-te si tu pa tinichigii, ca uite colea intrebare, de cate lovituri da ciocan este nevoie sa curbexzi o foaie de tabla dupa un cilindru?...Hai sa te vad, ca raspunsurile sunt: 150, 250,322, 400 si 600, ba uni cica 1000!...E-adevarat ca toate se-nscriu in "rezolvare", bai Turi, da aia d-au raspuns nu stiu "ce foaie de tabla", de otel galvanizat, de zinc, de cupru, de bronz, de aluminiu etc...Si dupa ce asezi "raspunsurile", apai tot te mai intrebi,incalzita, la rece sau cum ar veni cu ce fel de ciocan?...Pai mai amaratule,sidupa ce toate astea-ti sunt clare, tot intervine subiectivismul, pai lovituri da ciocan, lovituri da ciocan, da sunt sincere, in doru' lelii, cu temei si abnegatie sau doar sa faci zgomot?...Auzi ba Turi, tu macar stii sa faci o palnoie din tabla, asa ca sa te provoc, ca ce suma de bani iti dau pe ia, in euro sau ce moneda vrei tu, pot sa te satisfac!...Macar ii vindem varanului toate palniile, statistic vorbind...Ia zi cate lovituri da ciocan distrribui tu, la o foaie de tabla, s-o faci cilindru'?..Auzi nu te-ntreb cate farase faci tu dintr-o foaie de tabla, ca trebe sa tinem secret daca s-a taiat, de la cine, de la profesori, de la militieni, de la doctoranzi in stiinte sau de la generali pensionari?...Aolio cate variabile!...Tu iar iti bati joc da noi contribuabilii!...

Turambar spunea...

Itzicule, tzi s-a facut de bumbaceala?

:p

Q12 / Q14. Dacă ați fi șomer și ați avea dificultăți să găsiți de muncă aici, prin preajmă, ați fi dispus să plecați mai departe, în alt județ / în altă țară să lucrați acolo? Dacă este șomer, schimbă "Dacă ați fi..." cu "Sînteți..."

Q13 / Q16. Dacă DA (cod 5 sau 4), Față de cît cîștigați sau ați putea să cîștigați aici, cît ar trebui să vi se ofere salariu pentru a fi dispus să plecați să lucrați în alt județ / în altă țară?

Itzicbaseanu spunea...

Ei pai daca-i asa, rezolvarea este simpla, "suma" nici macar nu variaza cu "moneda"!...Sa fiu platit la "Maxim" ca MInodora si sa exist la minim ca Vadim(mai Turi, "Traiul este ce primim, viata este ce dam")...Te-ai prins, asa ca euro sau roni, sau pula, sau yeni, sau lire...Bai Turiiiii, tua ia auzit da "multe, multissime", pai mult sa fie!...Statistic "gavarind"!...Io pot face oarece exceptie, ma multumesc si cu 3-4-5-6 zerouri da moneda!...

Itzicbaseanu spunea...

Da, daca e vorba da "bumbaceala" ", raspunsul este musai Basescian: Categoric "DA", vreau "bumbaceala" cu "dinadinsul" ca tot e pa gratis!... Da io va rog, care n-aveti habar sa "bumbaciti", io va zic nu-ncercati, ca doar v-am avertizat inainte, da "avertizati" ce sunteti!...

Turambar spunea...

Modest dupe cum te shtim, coane

:p

Itzicbaseanu spunea...

Ba mai mult decat atat!(da modest zic), si fraier, ca ma mananca toti da bani!...Pana si bugetru' european da Vadim, ca tot nu pot sa-l sufar!...Nici pa el, nici pa frati-su, generalu'" care-a vazut un "glont" decat la trageri daca n-a lipsit, da acu' sa bucura ca "moare Base"!...Io ca roman, spre deosebire de tine, ca tatar, zic "Ba sa moara ei sa facem economie!"..da hartie..., igienica!

Anonim spunea...

stiu ca e neplacut sa vina cineva sa-ti spuna ca metoda e gresita (mai ales dupa ce crezi ca ai gasit o solutie eleganta si desteapta :D).
asa ca ai de ales intre a-ti proteja ego-ul (inteligent) sau a invata.
evident ca prima varianta e mai accesibila. se numeste self-delusion :D.
no hard feelings I hope.
tot carcotasul de mai sus