Quem criou a primeira tabela normal padrão?

61

Estou prestes a apresentar a tabela normal padrão na minha aula de estatística introdutória, e isso me fez pensar: quem criou a primeira tabela normal padrão? Como eles fizeram isso antes da chegada dos computadores? Estremeço ao pensar em alguém de força bruta calculando mil somas de Riemann à mão.

Daniel Smolkin
fonte
5
É bom ver alguém querendo ter um ensino historicamente informado.
Mdewey # 5/16

Respostas:

62

Laplace foi o primeiro a reconhecer a necessidade de tabulação, apresentando a aproximação:

G(x)=xet2dt(1)=1x12x3+134x51358x7+135716x9+

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 hex2 por

1hx+13(2x21)h216(2x33x)h3.
Assim, emx=0este produto reduz para
.01(113×.0001)=.00999967,
de modo que aG(.01)=.88622692.00999967=.87622725.


insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Mas ... quão preciso ele poderia ser? OK, vamos considerar 2.97 como exemplo:

insira a descrição da imagem aqui

Surpreendente!

Vamos para a expressão moderna (normalizada) do pdf gaussiano:

N(0,1)

fX(X=x)=12πex22=12πe(x2)2=12πe(z)2

z=x2x=z×2

PZ(Z>z=2.97)eax1/ax2

2π

2π2P(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...

  1. Diferença cumulativa absoluta entre os valores de [R] e a aproximação de Kramp:

0.0000012007643011

  1. Erro absoluto médio (MAE) , oumean(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.

  1. Diferença relativa média ou mean(abs(R - kramp)) / mean(R)(igual a all.equal(R[,2], kramp[,2], tolerance = 0)):

0.00000002380406

  1. Erro médio quadrático da raiz (RMSE) ou desvio (dá mais peso a grandes erros), calculado comosqrt(mean(difference^2)):

0.000000007283493


Se você encontrar uma foto ou retrato de Chistian Kramp, edite esta publicação e coloque-a aqui.

Antoni Parellada
fonte
4
É bom ter as duas referências diferentes, e acho que os detalhes adicionais (como a expansão explícita que Laplace deu para a cauda superior) aqui são bons.
Glen_b
11
Isso é ainda melhor com a edição mais recente, mas não posso votar duas vezes - coisas excelentes. Observe que o artigo de David explica por que a tabela de Kramp não tem precisão em todos os dígitos mostrados (um erro muito pequeno na primeira etapa foi realizado) - mas ainda é mais do que suficiente para a maioria das aplicações estatísticas
Glen_b
2
@ OlivierGrégoire Obrigado por apontar meu dígito decimal digitado incorretamente. Agora está corrigido. Eu cresci em uma época em que o francês era obrigatório, e de modo algum significava desrespeito ao meu uso peculiar da língua (há uma referência lá, mas não importa), que eu revirei. Quanto a "citoyen Kramp" - uma tentativa de destacar formas históricas de introdução no artigo.
Antoni Parellada
11
Ei, desculpe, você sentiu que este era um comentário contundente. Eu estava apenas apontando coisas, não estou dizendo que você estava desrespeitando nada. Você pode punir ou exagerar (ou até fazer uma referência), é claro. Mas como um cara de língua francesa, eu não entendi (foi isso que tentei transmitir, pelo menos). "Le citoyen Kramp" não tinha problema: apenas copiei e coloquei aspas, porque não era inglês. Desculpe se você sentiu que era um comentário contundente, não é. Também falta o meu uso do inglês. ^^ Sua comparação foi bem feita!
Olivier Grégoire
11
@ P.Windridge Desculpe ... eu percebi que tinha um monte de links quebrados ...
Antoni Parellada
32

Segundo HA [1], Laplace reconheceu a necessidade de tabelas da distribuição normal "já em 1783" e a primeira tabela normal foi produzida por Kramp em 1799.

0xet212

No entanto, Kramp não usou essas séries de Laplace, pois havia uma lacuna nos intervalos em que elas poderiam ser úteis.

xG(x+h)G

Para ser específico, citando as duas frases relevantes:

G(x+h)G(x)h=.01h3x=0x=h,2h,3h,...hex2

1hx+13(2x21)h216(2x33x)h3.
x=0
.01(113×.0001)=.00999967,(4)
G(.01)=.88622692.00999967=.87622725109

David indica que as tabelas foram amplamente usadas.

Então, em vez de milhares de somas de Riemann, foram centenas de expansões de Taylor.


Em uma nota menor, em uma pitada (travada com apenas uma calculadora e alguns valores lembrados da tabela normal), apliquei com êxito a regra de Simpson (e regras relacionadas à integração numérica) para obter uma boa aproximação de outros valores; não é tudo que tedioso para produzir uma tabela * abreviado para alguns números de precisão. [Porém, produzir tabelas com a escala e a precisão de Kramp seria uma tarefa bastante grande, mesmo usando um método mais inteligente, como ele fez.]

* Por uma tabela abreviada, quero dizer uma em que você pode se basear na interpolação entre valores tabulados sem perder muita precisão. Se você quer apenas dizer precisão de cerca de 3 dígitos, realmente não precisa calcular todos esses valores. Usei efetivamente a interpolação polinomial (mais precisamente, técnicas de diferenças finitas aplicadas), que permitem uma tabela com menos valores do que a interpolação linear - se um pouco mais de esforço na etapa de interpolação - e também fiz interpolação com uma transformação de logit, que torna a interpolação linear consideravelmente mais eficaz, mas é muito útil se você tiver uma boa calculadora).

[1] Herbert A. David (2005),
"Tabelas Relacionadas à Distribuição Normal: Uma Breve História"
The American Statistician , vol. 59, n. 4 (nov.), Pp. 309-311

[2] Kramp (1799),
Analyse des Réfractions Astronomiques et Terrestres,
Leipzig: Schwikkert.

Glen_b
fonte
0

Questão interessante! Penso que a primeira ideia não surgiu através da integração de fórmulas complexas; antes, o resultado da aplicação dos assintóticos na combinatória. O método de caneta e papel pode levar várias semanas; não é tão difícil para Karl Gauss em comparação com o cálculo da torta para seus antecessores. Eu acho que a ideia de Gauss foi corajosa; o cálculo foi fácil para ele.

Exemplo de criação da tabela z padrão a partir do zero:
1. Pegue uma população de n (digamos que n seja 20) e liste todas as amostras possíveis de tamanho r (digamos que r seja 5).
2. calcular as médias da amostra. Você obtém médias de amostra nCr (aqui, 20c5 = 15504 significa).
3. Sua média é igual à média da população. Encontre o stdev das médias da amostra.
4. Encontre z escores das médias da amostra usando as médias pop e stdev das médias da amostra.
5. Classifique z em ordem crescente e encontre a probabilidade de z estar em um intervalo em seus valores de nCr z.
6. Compare valores com tabelas normais. N menor é bom para cálculos manuais. N maior produzirá aproximações mais próximas dos valores normais da tabela.

O código a seguir está em r:

n <- 20  
r <- 5  

p <- sample(1:40,n)  # Don't be misled!! Here, 'sample' is an r function  
                     used to produce n random numbers between 1 and 40.  
                     You can take any 20 numbers, possibly all different.  

c <- combn(p, r)     # all the nCr samples listed  
cmean <- array(0)  

for(i in 1:choose(n,r)) {  
    cmean[i] <- mean(c[,i])  
                }  

z <- array(0)  
for(i in 1:choose(n,r)) {  
    z[i] <- (cmean[i]-mean(c))/sd(cmean)  
                }  

ascend <- sort(z, decreasing = FALSE)  

Probabilidade de z cair entre 0 e valor positivo q abaixo; compare com uma tabela conhecida. Manipule q abaixo entre 0 e 3.5 para comparar.

q <- 1  
probability <- (length(ascend[ascend<q])-length(ascend[ascend<0]))/choose(n,r)   
probability   # For example, if you use n=30 and r=5, then for q=1, you  
              will get probability is 0.3413; for q=2, prob is 0.4773
Md Towhidul Islam
fonte
3
Não vejo como a amostragem pode ser usada dessa maneira para gerar as tabelas. Eu acho que o OP só queria saber quem foi a primeira pessoa
Michael Chernick
Obrigado pelo seu valioso comentário Michael Chernick. 1) O OP escreve "Como eles fizeram isso antes da chegada dos computadores? Estremeço ao pensar em alguém com força bruta calculando mil somas de Riemann à mão". Eu tentei responder essa parte. 2) O termo 'amostra' não é amostra por si só; é uma função r produzir uma lista de números aleatórios. Podemos apenas pegar 20 números em vez disso. Veja o link r de suporte aqui stackoverflow.com/questions/17773080/…
Md Towhidul Islam