Laplace foi o primeiro a reconhecer a necessidade de tabulação, apresentando a aproximação:
G ( x )= ∫∞xe- t2dt= 1x- 12 x3+ 1 ⋅ 34 x5- 1 ⋅ 3 ⋅ 58 x7+ 1 ⋅ 3 ⋅ 5 ⋅ 716 x9+ ⋯(1)
A primeira tabela moderna da distribuição normal foi posteriormente construída pelo astrônomo francês Christian Kramp em Analyse des Réfractions Astronomiques et Terrestres. . Das Tabelas Relacionadas à Distribuição Normal: Uma Breve História Autor (es): Herbert A. David Fonte: The American Statistician, vol. 59, n. 4 (novembro de 2005), pp. 309-311 :
Ambiciosamente, Kramp deu oito decimal ( 8 tabelas D) até x = 1,24 , 9 D para 1,50 , 10 D para 1,99 , e 11 D a 3.00 juntamente com as diferenças necessárias para a interpolação. Escrevendo as seis primeiras derivadas de G(x), ele simplesmente usa uma expansão da série de Taylor de G(x+h) sobre G(x), com h=.01,até o termo em h3.Isso permite que ele proceda passo a passo de x=0 a x=h,2h,3h,…, ao multiplicar he−x2 por1−hx+13(2x2−1)h2−16(2x3−3x)h3.
Assim, emx=0este produto reduz para
.01(1−13×.0001)=.00999967,
de modo que aG(.01)=.88622692−.00999967=.87622725.
⋮
Mas ... quão preciso ele poderia ser? OK, vamos considerar 2.97 como exemplo:
Surpreendente!
Vamos para a expressão moderna (normalizada) do pdf gaussiano:
N(0,1)
fX(X=x)=12π−−√e−x22=12π−−√e−(x2√)2=12π−−√e−(z)2
z=x2√x=z×2–√
PZ(Z>z=2.97)eax1/ax2–√
2π−−√
2π−−√2–√P(X>x)=π−−√P(X>x)
z=2.97x=z×2–√=4.200214
(R = sqrt(pi) * pnorm(x, lower.tail = F))
[1] 0.00002363235e-05
Fantástico!
0.06
z = 0.06
(x = z * sqrt(2))
(R = sqrt(pi) * pnorm(x, lower.tail = F))
[1] 0.8262988
0.82629882
Tão perto...
A coisa é ... quão perto, exatamente? Depois de todos os votos recebidos, não pude deixar a resposta real em suspenso. O problema era que todos os aplicativos de reconhecimento óptico de caracteres (OCR) que eu experimentei estavam incrivelmente desanimados - não surpreende se você deu uma olhada no original. Por isso, aprendi a apreciar Christian Kramp pela tenacidade de seu trabalho, enquanto digitava pessoalmente cada dígito na primeira coluna de sua Table Première .
Após uma ajuda valiosa do @Glen_b, agora ela pode ser muito precisa e está pronta para copiar e colar no console do R neste link do GitHub .
Aqui está uma análise da precisão de seus cálculos. Prepare-se...
- Diferença cumulativa absoluta entre os valores de [R] e a aproximação de Kramp:
0.0000012007643011
- Erro absoluto médio (MAE) , ou
mean(abs(difference))
comdifference = R - kramp
:
0.0000000039892493
Na entrada em que seus cálculos eram mais divergentes em comparação com [R], o primeiro valor decimal diferente estava na oitava posição (cem milionésimos). Em média (mediana), seu primeiro "erro" foi no décimo dígito decimal (décimo bilionésimo!). E, embora ele não tenha concordado totalmente com [R] em nenhum caso, a entrada mais próxima não diverge até a treze entradas digitais.
- Diferença relativa média ou
mean(abs(R - kramp)) / mean(R)
(igual a all.equal(R[,2], kramp[,2], tolerance = 0)
):
0.00000002380406
- Erro médio quadrático da raiz (RMSE) ou desvio (dá mais peso a grandes erros), calculado como
sqrt(mean(difference^2))
:
0.000000007283493
Se você encontrar uma foto ou retrato de Chistian Kramp, edite esta publicação e coloque-a aqui.