谁创建了第一个标准正态表?


61

我将在统计入门级课程中介绍标准正态表,这让我感到奇怪:谁创建了第一个标准正态表?在计算机问世之前,他们是如何做到的?我不禁想到有人用手工方法算出一千个黎曼和。


5
很高兴看到有人希望接受历史知识的指导。
mdewey

Answers:


62

拉普拉斯是第一个认识到制表需求的人,提出了近似值:

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

正态分布的第一张现代表后来由法国天文学家克里斯蒂安·克拉姆Christian Kramp)《天文学与地雷分析》(Par le citoyen Kramp,Professeur de Chymie et de Physiqueexpérimentaleàl'écoledu la Roer de la Roer)中建立。。从与正态分布相关的表中:简短的历史作者:Herbert A. David资料来源:美国统计学家,第1卷。59,第4号(2005年11月),第309-311页

雄心勃勃,KRAMP给八十进制( d)表达 d至 d至和 d至与所需内插的差异在一起。写下的前六个导数他只使用关于的的泰勒级数展开式其中直到这使得他通过步骤从进行步骤至在相乘由8x=1.24, 91.50, 101.99,113.00G(x),G(x+h)G(x),h=.01,h3.x=0x=h,2h,3h,,hex2

1hx+13(2x21)h216(2x33x)h3.
因此,在此乘积减小为 因此在x=0
.01(113×.0001)=.00999967,
G(.01)=.88622692.00999967=.87622725.


在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

但是...他可能有多精确?好,让我们以为例:2.97

在此处输入图片说明

惊人!

让我们继续进行高斯pdf的现代(规范化)表达式:

的pdf 为:N(0,1)

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

其中。因此,。z=x2x=z×2

因此,让我们转到R,然后查找 ...好吧,不是那么快。首先,我们必须记住,当指数函数有一个常数与指数相乘时,积分将被该指数除以。因为我们的目标是在复制旧表的结果,我们实际上是相乘的值由这将有出现在分母。PZ(Z>z=2.97)eax1/ax2

此外,Christian Kramp没有进行归一化,因此我们必须相应地校正R给出的结果,再乘以。最终更正将如下所示:2π

2π2P(X>x)=πP(X>x)

在上述情况下,和。现在,我们去R:z=2.97x=z×2=4.200214

(R = sqrt(pi) * pnorm(x, lower.tail = F))
[1] 0.00002363235e-05

太棒了!

让我们回到表格的顶部来有趣,比如说 ...0.06

z = 0.06
(x = z * sqrt(2))

(R = sqrt(pi) * pnorm(x, lower.tail = F))
[1] 0.8262988

克兰说什么?。0.82629882

很近...


事情是……到底有多近?在收到所有的赞成票之后,我无法保留实际的答案。问题是我尝试过的所有光学字符识别(OCR)应用程序都无法正常运行-如果您看过原始版本,这不足为奇。于是,我学会了感激基督教KRAMP他的工作的韧劲,我亲自在他的第一列中输入每个数字表首演

在@Glen_b提供了一些有价值的帮助之后,现在它可能非常准确,并且可以在此GitHub链接中的R控制台上进行复制和粘贴了。

这是他计算准确性的分析。振作起来...

  1. [R]值与Kramp近似值之间的绝对累积差

0.000001200764 -在使用过程中计算,他成功地积累约错误百万分之一!3011

  1. 平均绝对误差(MAE) ,或mean(abs(difference))difference = R - kramp

0.000000003989249他平均犯了一个荒谬的个十亿分之一的错误!3

在与[R]相比,他的计算差异最大的条目中,第一个不同的小数位数位于第八位(百分之一)。平均而言,他的第一个“错误”是小数点后第十位(十分之一!)。而且,尽管他在任何情况下都不完全同意[R],但最接近的条目直到13个数字条目才分叉。

  1. 平均相对差mean(abs(R - kramp)) / mean(R)(与相同all.equal(R[,2], kramp[,2], tolerance = 0)):

0.00000002380406

  1. 均方根误差(RMSE)或偏差(对较大错误给予更大的权重),计算公式为sqrt(mean(difference^2))

0.000000007283493


如果您发现Chistian Kramp的图片或肖像,请编辑此帖子并将其放在此处。


4
拥有两个不同的引用很高兴,我认为这里的其他细节(例如Laplace为上尾巴提供的显式扩展)很好。
Glen_b

1
使用最新的编辑效果会更好,但是我不能两次投票-很棒的东西。请注意,David的文章解释了为什么Kramp的表格不能对所有显示的数字都具有准确性(第一步发生了很小的错误),但是对于大多数统计应用来说,这仍然绰绰有余
Glen_b

2
@OlivierGrégoire感谢您指出我输入错误的十进制数字。现在已更正。我长大的时候是必须使用法语的,这绝不意味着我对这种语言的古怪用法(这里有参考,但没关系)不尊重,但我已经颠倒了。至于“ citoyen Kramp”-试图突出本文介绍的历史形式。
Antoni Parellada

1
嘿,对不起,您认为这是一句轻率的评论。我只是在指点东西,绝不是告诉你什么都不尊重。当然,您可能会双关或夸大(甚至做个参考)。但是,作为一个讲法语的人,我没有得到(至少我要传达的是)。“ Le citoyen Kramp”没问题:我只是复制并加上引号,因为它不是英语。抱歉,如果您认为这是一句猛烈的评论,那不是。我的英语用法也缺乏。^^您的比较做得很好!
OlivierGrégoire'9

1
@ P.Windridge抱歉...我意识到我有一堆损坏的超链接...
Antoni Parellada

32

根据HA David的说法[1],拉普拉斯(Laplace)认识到需要“早于1783年”正态分布的表,而第一张正态表由Kramp于1799年生产。

拉普拉斯提出了两个级数近似,一个近似为到的整数(与具有方差的正态分布成正比),另一个近似为上尾。x e t 20xet212

但是,Kramp并未使用这一系列的Laplace,因为在间隔中可以有效地应用它们。

实际上,他与该积分从0尾区开始,然后应用约泰勒展开最后计算的积分-也就是说,因为他在他的移动表,计算新值他的泰勒展开的(其中是给出上尾巴面积的积分)。xG(x+h)G

具体来说,引用相关的几句话:

他只是简单地使用关于的泰勒级数展开式,其中,直到。通过将乘以可以使他逐步从到因此,在此乘积减小为因此在。(4)左边的下一项可以显示为,因此省略了它。G(x+h)G(x)h=.01h3x=0x=h,2h,3h,...hex2x=0.0111

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

David指出表格已被广泛使用。

因此,不是成千上万的黎曼总和,而是成百上千的泰勒展开式。


较小的一点是,在紧要关头(仅用一个计算器和一些正常表中记住的值),我已经非常成功地应用了Simpson规则(以及有关数值积分的规则)来很好地近似其他值。生成几位数的缩写表* 并不是所有的繁琐工作。[尽管要像他那样使用更聪明的方法,但是要制作出Kramp的规模和准确性的表格是一项相当大的任务。]

*缩写表是指基本上可以避免在表格值之间进行插值而又不会损失太多精度的表。如果您只想说3位数字的精度,那么您实际上不需要计算所有那么多的值。我已经有效地使用了多项式插值法(更确切地说是应用了有限差分技术),该方法可以使表格的值比线性插值法少(如果在插值步骤上花费更多的力气),并且还可以通过对数变换完成插值线性插值的效果显着提高,但只有在您拥有良好的计算器的情况下才有用。

[1]赫伯特·戴维(Herbert A. David)(2005),
“与正态分布有关的表:一个简短的历史”,
《美国统计学家》,第1卷。59,第4号(11月),第309-311页

[2] Kramp(1799),
《天文学与
地形研究》,莱比锡:施维克特


0

有趣的问题!我认为第一个想法并非来自复杂公式的整合;而是将渐近疗法应用于组合疗​​法的结果。笔和纸的方法可能要花几个星期。对于卡尔·高斯而言,与其在他的前任们身上计算派相比,并不难。我认为高斯的想法很勇敢。计算对他来说很容易。

从头开始创建标准z表的示例
1.取一个n(例如n为20)个数字,并从中列出大小为r(例如r为5)的所有可能样本。
2.计算样本均值。您得到nCr样本均值(此处20c5 = 15504均值)。
3.他们的平均值与总体平均值相同。找到样本均值的标准偏差。
4.使用那些均值和样本均值的stdev查找样本均值的z分数。
5.按升序对z进行排序,并找到z在nCr z值范围内的概率。
6.将值与普通表进行比较。较小的n有利于手计算。较大的n将产生更接近正常表值的近似值。

以下代码在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)  

z的概率落在0和正值q之间;与已知表格比较。在0至3.5之间操纵q进行比较。

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

3
我没有看到如何以这种方式使用采样来生成表。我认为OP只是想知道谁是第一个人
Michael Chernick

感谢您的宝贵意见Michael Chernick。1)OP写道:“在计算机问世之前他们是如何做到的?我不禁想到有人用蛮力手工计算了上千个黎曼和。” 我试图回答这一部分。2)术语“样本”本身不是样本,它是产生随机数列表的r函数。我们也可以取任意20个数字。看到这里的支持研究链接stackoverflow.com/questions/17773080/...
马里兰州Towhidul伊斯兰教
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.