Autor |
Mesaj |
|
Salut.
Caut tabelul fuctiei de repartitie de la distributia gaussiana
La curs a fost predata sub forma:
Am gasit pe net cateva tabele ( http://www.mathsisfun.com/data/standard-normal-distribution-table.html ) precum si intr-o carte de probabilitati, dar acolo integrala porneste de la 0, si nu de la - infinit.
Cum ma pot folosi de acest tabel pentru a gasi rezultatul functiei dorite de mine?
Am observat pentru cateva exemple ca pot aduna 0.5, dar nu am demonstrat formula.
Unde mai pot gasi alte tabele cu functia definita pe tot intervalul ?
Tnx.
*am gasit ceea ce cautam http://www.math.bgu.ac.il/~ngur/Teaching/probability/normal.pdf
|
|
Salve!
Functia F de repartitie se obtine integrand pana la x densitatea
Aceasta densitate este o functie simetrica, deci integralele pe semiaxa pozitiva si pe cea negativa sunt egale. Anume cu 1/2, doearece integrala pe toata axa este 1, lucru de care are grija acel factor (radical din (2 pi)).
Tabelele de valori de functii sunt un lucru muribund, exista o droaie de softuri simple care fac rost de valorile repartitiei gaussiene cu o droaie de zecimale exacte... Cel mai simplu de instalat este poate pari/gp (gratis si pe bune gratis), unde se implementeaza insa functia eroare (erf). Cu o linie de cod se obtine usor F-ul nostru.
Cu ?erfc sau ??erfc se da de ceva help.
dan@ardeal ~ $ gp
Reading GPRC: /etc/gprc ...Done.
GP/PARI CALCULATOR Version 2.3.4 (released)
i486 running linux (ix86/GMP-4.2.2 kernel) 32-bit version
compiled: Nov 6 2008, gcc-4.3.3 20081030 (prerelease) (Ubuntu 4.3.2-2ubuntu1)
(readline v5.2 enabled, extended help available)
Copyright (C) 2000-2006 The PARI Group
PARI/GP is free software, covered by the GNU General Public License, and
comes WITHOUT ANY WARRANTY WHATSOEVER.
Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.
parisize = 4000000, primelimit = 500000
? F(y) = 1. - erfc( y/sqrt(2.) ) / 2.
? F(0)
%1 = 0.5000000000000000000000000000
? F(1.23456789)
%2 = 0.8915043172288427453333156369
? 1/2 + intnum( x = 0 , 1.23456789 , 1/sqrt(2*Pi) * exp( -x^2 / 2. ) )
%3 = 0.8915043172288427453333156363
? ? \p 100
realprecision = 105 significant digits (100 digits displayed)
? F(1.23456789)
%4 = 0.891504317228842745333315636898379635756223566584527931086719829709\
4637000277972630078290360512914292
Bafta!
--- df (gauss)
|
|
Gp functioneaza corect, dar am intalnit doua probleme
- cum calculeaza inversa acelei functii?
- cum poate scrie un fisier cu toate valorile functiei pentru un y intre doua valori parcurse cu un pas de 0.01 ?
Probabil raspunsurile le gasesc in documentatie, dar vreau sa economisesc timpul.
Mentionez ca valorile acestei functii imi sunt necesare pentru un examen, unde nu sunt permise instrumentele de calcul.
*primul post updatat
|
|
Un cod pari de calculat inversa repartiei normale standard ar fi:
{F(y) = 1. - erfc( y/sqrt(2.) ) / 2.}
{Finvers(z,precizie)=
local(a,b,c);
a=-10. ;
b=+10. ;
\\ se presupune ca valoarea va fi intre a si b
Fa = F(a) ;
Fb = F(b) ;
if( F(a)>z, return(a) );
if( F(b)<z, return(b) );
epsilon = (b-a);
while( epsilon > precizie,
c=(a+b)/2. ;
Fc = F(c) ;
\\ print(c, "->", Fc) ;
if( Fc<z , a=c; print( z, " > F( ", c , ") = ", Fc );
, b=c; print( z, " < F( ", c , ") = ", Fc );
);
epsilon = epsilon/2. ) ;
return(c) ;
}
Metoda este cea mai primitiva folosibila pentru functii crescatoare, anume injumatatirea repetata a intervalului.
Pentru z = 0.555555 obtin listingul urmator care arata cum lucreaza programul debug info
? Finvers( 0.555555 , 1e-28 )
0.5555550000000000000000000000 > F( 0.E-28) = 0.5000000000000000000000000000
0.5555550000000000000000000000 < F( 5.000000000000000000000000000) = 0.9999997133484281208060883263
0.5555550000000000000000000000 < F( 2.500000000000000000000000000) = 0.9937903346742238648330218954
0.5555550000000000000000000000 < F( 1.250000000000000000000000000) = 0.8943502263331447423112272360
0.5555550000000000000000000000 < F( 0.6250000000000000000000000000) = 0.7340144709512994676896594658
0.5555550000000000000000000000 < F( 0.3125000000000000000000000000) = 0.6226697184701570868332181936
0.5555550000000000000000000000 < F( 0.1562500000000000000000000000) = 0.5620820168082948621934871873
0.5555550000000000000000000000 > F( 0.07812500000000000000000000000) = 0.5311356895782755293725947772
0.5555550000000000000000000000 > F( 0.1171875000000000000000000000) = 0.5466442638893727307948110775
0.5555550000000000000000000000 > F( 0.1367187500000000000000000000) = 0.5543734458270251664163145322
0.5555550000000000000000000000 < F( 0.1464843750000000000000000000) = 0.5582304880950912885575052610
0.5555550000000000000000000000 < F( 0.1416015625000000000000000000) = 0.5563026336628464366915879114
0.5555550000000000000000000000 > F( 0.1391601562500000000000000000) = 0.5553382036035446501900515105
0.5555550000000000000000000000 < F( 0.1403808593750000000000000000) = 0.5558204599501826615535201754
0.5555550000000000000000000000 < F( 0.1397705078125000000000000000) = 0.5555793420620828227393612678
0.5555550000000000000000000000 > F( 0.1394653320312500000000000000) = 0.5554587753986138249234643008
0.5555550000000000000000000000 > F( 0.1396179199218750000000000000) = 0.5555190593724864895786619997
0.5555550000000000000000000000 > F( 0.1396942138671875000000000000) = 0.5555492008779052106785684223
0.5555550000000000000000000000 < F( 0.1397323608398437500000000000) = 0.5555642715101599066694976980
0.5555550000000000000000000000 < F( 0.1397132873535156250000000000) = 0.5555567362040726872614431412
0.5555550000000000000000000000 > F( 0.1397037506103515625000000000) = 0.5555529685434988131278271280
0.5555550000000000000000000000 > F( 0.1397085189819335937500000000) = 0.5555548523744132372327725233
0.5555550000000000000000000000 < F( 0.1397109031677246093750000000) = 0.5555557942893998366314727850
0.5555550000000000000000000000 < F( 0.1397097110748291015625000000) = 0.5555553233319457552001102742
0.5555550000000000000000000000 < F( 0.1397091150283813476562500000) = 0.5555550878531893007424253334
0.5555550000000000000000000000 > F( 0.1397088170051574707031250000) = 0.5555549701138037201139682896
0.5555550000000000000000000000 < F( 0.1397089660167694091796875000) = 0.5555550289834971232104299796
0.5555550000000000000000000000 > F( 0.1397088915109634399414062500) = 0.5555549995486505748576773231
0.5555550000000000000000000000 < F( 0.1397089287638664245605468750) = 0.5555550142660738873329332114
0.5555550000000000000000000000 < F( 0.1397089101374149322509765625) = 0.5555550069073622406700239057
0.5555550000000000000000000000 < F( 0.1397089008241891860961914063) = 0.5555550032280064101575301176
0.5555550000000000000000000000 < F( 0.1397088961675763130187988281) = 0.5555550013883284931060235766
0.5555550000000000000000000000 < F( 0.1397088938392698764801025391) = 0.5555550004684895341314554115
0.5555550000000000000000000000 < F( 0.1397088926751166582107543945) = 0.5555550000085700545319676074
0.5555550000000000000000000000 > F( 0.1397088920930400490760803223) = 0.5555549997786103147041727753
0.5555550000000000000000000000 > F( 0.1397088923840783536434173584) = 0.5555549998935901846204077688
0.5555550000000000000000000000 > F( 0.1397088925295975059270858765) = 0.5555549999510801195767720825
0.5555550000000000000000000000 > F( 0.1397088926023570820689201355) = 0.5555549999798250870545159436
0.5555550000000000000000000000 > F( 0.1397088926387368701398372650) = 0.5555549999941975707932783001
0.5555550000000000000000000000 < F( 0.1397088926569267641752958298) = 0.5555550000013838126626320849
0.5555550000000000000000000000 > F( 0.1397088926478318171575665474) = 0.5555549999977906917279574753
0.5555550000000000000000000000 > F( 0.1397088926523792906664311886) = 0.5555549999995872521952953508
0.5555550000000000000000000000 < F( 0.1397088926546530274208635092) = 0.5555550000004855324289638606
0.5555550000000000000000000000 < F( 0.1397088926535161590436473489) = 0.5555550000000363923121296414
0.5555550000000000000000000000 > F( 0.1397088926529477248550392687) = 0.5555549999998118222537125050
0.5555550000000000000000000000 > F( 0.1397088926532319419493433088) = 0.5555549999999241072829210754
0.5555550000000000000000000000 > F( 0.1397088926533740504964953288) = 0.5555549999999802497975253589
0.5555550000000000000000000000 < F( 0.1397088926534451047700713389) = 0.5555550000000083210548275003
0.5555550000000000000000000000 > F( 0.1397088926534095776332833339) = 0.5555549999999942854261764297
0.5555550000000000000000000000 < F( 0.1397088926534273412016773364) = 0.5555550000000013032405019650
0.5555550000000000000000000000 > F( 0.1397088926534184594174803351) = 0.5555549999999977943333391973
0.5555550000000000000000000000 > F( 0.1397088926534229003095788357) = 0.5555549999999995487869205811
0.5555550000000000000000000000 < F( 0.1397088926534251207556280860) = 0.5555550000000004260137112731
0.5555550000000000000000000000 > F( 0.1397088926534240105326034609) = 0.5555549999999999874003159271
0.5555550000000000000000000000 < F( 0.1397088926534245656441157735) = 0.5555550000000002067070136001
0.5555550000000000000000000000 < F( 0.1397088926534242880883596172) = 0.5555550000000000970536647636
0.5555550000000000000000000000 < F( 0.1397088926534241493104815390) = 0.5555550000000000422269903453
0.5555550000000000000000000000 < F( 0.1397088926534240799215425000) = 0.5555550000000000148136531362
0.5555550000000000000000000000 < F( 0.1397088926534240452270729804) = 0.5555550000000000011069845317
0.5555550000000000000000000000 > F( 0.1397088926534240278798382207) = 0.5555549999999999942536502294
0.5555550000000000000000000000 > F( 0.1397088926534240365534556005) = 0.5555549999999999976803173805
0.5555550000000000000000000000 > F( 0.1397088926534240408902642905) = 0.5555549999999999993936509561
0.5555550000000000000000000000 < F( 0.1397088926534240430586686355) = 0.5555550000000000002503177439
0.5555550000000000000000000000 > F( 0.1397088926534240419744664630) = 0.5555549999999999998219843500
0.5555550000000000000000000000 < F( 0.1397088926534240425165675492) = 0.5555550000000000000361510469
0.5555550000000000000000000000 > F( 0.1397088926534240422455170061) = 0.5555549999999999999290676985
0.5555550000000000000000000000 > F( 0.1397088926534240423810422777) = 0.5555549999999999999826093727
0.5555550000000000000000000000 < F( 0.1397088926534240424488049134) = 0.5555550000000000000093802098
0.5555550000000000000000000000 > F( 0.1397088926534240424149235955) = 0.5555549999999999999959947913
0.5555550000000000000000000000 < F( 0.1397088926534240424318642545) = 0.5555550000000000000026875005
0.5555550000000000000000000000 > F( 0.1397088926534240424233939250) = 0.5555549999999999999993411459
0.5555550000000000000000000000 < F( 0.1397088926534240424276290897) = 0.5555550000000000000010143232
0.5555550000000000000000000000 < F( 0.1397088926534240424255115074) = 0.5555550000000000000001777345
0.5555550000000000000000000000 > F( 0.1397088926534240424244527162) = 0.5555549999999999999997594402
0.5555550000000000000000000000 > F( 0.1397088926534240424249821118) = 0.5555549999999999999999685874
0.5555550000000000000000000000 < F( 0.1397088926534240424252468096) = 0.5555550000000000000000731610
0.5555550000000000000000000000 < F( 0.1397088926534240424251144607) = 0.5555550000000000000000208742
0.5555550000000000000000000000 > F( 0.1397088926534240424250482862) = 0.5555549999999999999999947308
0.5555550000000000000000000000 < F( 0.1397088926534240424250813735) = 0.5555550000000000000000078025
0.5555550000000000000000000000 < F( 0.1397088926534240424250648299) = 0.5555550000000000000000012666
0.5555550000000000000000000000 > F( 0.1397088926534240424250565580) = 0.5555549999999999999999979987
0.5555550000000000000000000000 > F( 0.1397088926534240424250606939) = 0.5555549999999999999999996327
0.5555550000000000000000000000 < F( 0.1397088926534240424250627619) = 0.5555550000000000000000004497
0.5555550000000000000000000000 < F( 0.1397088926534240424250617279) = 0.5555550000000000000000000412
0.5555550000000000000000000000 > F( 0.1397088926534240424250612109) = 0.5555549999999999999999998369
0.5555550000000000000000000000 > F( 0.1397088926534240424250614694) = 0.5555549999999999999999999390
0.5555550000000000000000000000 > F( 0.1397088926534240424250615987) = 0.5555549999999999999999999901
0.5555550000000000000000000000 < F( 0.1397088926534240424250616633) = 0.5555550000000000000000000156
0.5555550000000000000000000000 < F( 0.1397088926534240424250616310) = 0.5555550000000000000000000029
0.5555550000000000000000000000 > F( 0.1397088926534240424250616148) = 0.5555549999999999999999999965
0.5555550000000000000000000000 > F( 0.1397088926534240424250616229) = 0.5555549999999999999999999997
0.5555550000000000000000000000 < F( 0.1397088926534240424250616269) = 0.5555550000000000000000000013
0.5555550000000000000000000000 < F( 0.1397088926534240424250616249) = 0.5555550000000000000000000005
0.5555550000000000000000000000 < F( 0.1397088926534240424250616239) = 0.5555550000000000000000000001
0.5555550000000000000000000000 > F( 0.1397088926534240424250616234) = 0.5555549999999999999999999999
0.5555550000000000000000000000 > F( 0.1397088926534240424250616237) = 0.5555550000000000000000000000
0.5555550000000000000000000000 < F( 0.1397088926534240424250616238) = 0.5555550000000000000000000000
0.5555550000000000000000000000 > F( 0.1397088926534240424250616237) = 0.5555550000000000000000000000
%29 = 0.1397088926534240424250616237
si ca raspuns valoarea 0.1397088926534240424250616237 .
Pentru a programa tabelul, probabil ca alt limbaj este mai bine adaptat, eu as lua sage si as scrie direct un program pentru a scrie output fezabil prin latex...
In fine, pentru scopul unui examen, exista sute de brosuri mai vechi sau mai noi cumparabile.
--- df (gauss)
|