Ai tạo ra bảng tiêu chuẩn đầu tiên?


61

Tôi sắp giới thiệu bảng bình thường tiêu chuẩn trong lớp thống kê giới thiệu của mình và điều đó khiến tôi tự hỏi: ai đã tạo ra bảng bình thường tiêu chuẩn đầu tiên? Làm thế nào mà họ làm điều đó trước khi máy tính xuất hiện? Tôi rùng mình khi nghĩ về một người nào đó vũ phu tính toán một ngàn tổng Riemann bằng tay.


5
Rất vui khi thấy ai đó muốn có lịch sử giảng dạy.
mdewey

Câu trả lời:


62

Laplace là người đầu tiên nhận ra nhu cầu lập bảng, đưa ra cách tính gần đúng:

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

Bảng hiện đại đầu tiên của phân phối bình thường sau đó được xây dựng bởi nhà thiên văn học người Pháp Christian Kramp trong Phân tích des Réfraction Astronomiques et Terrestres (Par le citoyen Kramp, Proflieur de Chymie et de Physique expérimentale à l'école centrale du Département de la . Từ các bảng liên quan đến phân phối bình thường: Một tác giả lịch sử ngắn: Herbert A. David Nguồn: The Statistician American, Vol. 59, số 4 (tháng 11 năm 2005), trang 309-311 :

Tham vọng, Kramp đã đưa ra các bảng tám thập phân ( D) lên đến D đến D đến và D đến cùng với sự khác biệt cần thiết cho phép nội suy. Viết ra sáu dẫn xuất đầu tiên của anh ta chỉ cần sử dụng một chuỗi mở rộng Taylor của về với cho đến thuật ngữ trongĐiều này cho phép anh ta tiến hành từng bước từ đến khi nhân với8x=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(1-1 Do đó, tại , sản phẩm này giảm xuống còn do đó tạix=0
.01(113×.0001)=.00999967,
G(.01)=.88622692.00999967=.87622725.


nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Nhưng ... anh ta có thể chính xác đến mức nào? OK, hãy lấy làm ví dụ:2.97

nhập mô tả hình ảnh ở đây

Kinh ngạc!

Hãy chuyển sang biểu thức hiện đại (chuẩn hóa) của Gaussian pdf:

Pdf của là:N(0,1)

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

trong đó . Và do đó, .z=x2x=z×2

Vì vậy, hãy đến R và tìm ... OK, không quá nhanh. Đầu tiên chúng ta phải nhớ rằng khi có một hằng số nhân số mũ trong hàm số mũ , tích phân sẽ được chia cho số mũ đó: . Vì chúng tôi đang nhắm đến việc sao chép các kết quả trong các bảng cũ, nên chúng tôi thực sự nhân giá trị của với , sẽ phải xuất hiện trong mẫu số.PZ(Z>z=2.97)eax1/ax2

Hơn nữa, Christian Kramp đã không bình thường hóa, vì vậy chúng tôi phải sửa kết quả do R cung cấp cho phù hợp, nhân với . Sự điều chỉnh cuối cùng sẽ như thế này:2π

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

Trong trường hợp trên, và . Bây giờ hãy đến R:z=2.97x=z×2=4.200214

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

Tuyệt vời!

Hãy đi đến đầu bảng để giải trí, giả sử ...0.06

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

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

Kramp nói gì? .0.82629882

Rất gần ...


Điều này là ... chính xác đến mức nào? Sau khi tất cả các phiếu bầu nhận được, tôi không thể bỏ qua câu trả lời thực tế. Vấn đề là tất cả các ứng dụng nhận dạng ký tự quang học (OCR) mà tôi đã thử đều vô cùng khó tin - không ngạc nhiên nếu bạn đã xem qua bản gốc. Vì vậy, tôi đã học được cách đánh giá cao Christian Kramp vì sự kiên trì trong công việc của anh ấy khi tôi đích thân gõ từng chữ số vào cột đầu tiên của Bảng Première .

Sau một số trợ giúp có giá trị từ @Glen_b, giờ đây nó rất có thể chính xác và nó đã sẵn sàng để sao chép và dán trên bảng điều khiển R trong liên kết GitHub này .

Dưới đây là một phân tích về tính chính xác của tính toán của mình. Tự ôm mình ...

  1. Chênh lệch tích lũy tuyệt đối giữa các giá trị [R] và xấp xỉ của Kramp:

0.000001200764 - trong quá trình tính toán , anh ta đã tích lũy được sai số xấp xỉ triệu!3011

  1. Có nghĩa là lỗi tuyệt đối (MAE) hoặcmean(abs(difference))vớidifference = R - kramp:

0.000000003989249 - trung bình anh ấy đã tạo ra một lỗi vô lý lỗi một tỷ.3

Trên mục trong đó các tính toán của anh ta khác nhau nhất so với [R], giá trị thập phân khác nhau đầu tiên nằm ở vị trí thứ tám (trăm triệu). Trung bình (trung bình) "sai lầm" đầu tiên của anh là chữ số thập phân thứ mười (phần mười tỷ!). Và, mặc dù anh ta không hoàn toàn đồng ý với [R] trong mọi trường hợp, mục gần nhất không phân kỳ cho đến mười ba mục kỹ thuật số.

  1. Sự khác biệt trung bình tương đối hoặc mean(abs(R - kramp)) / mean(R)(giống như all.equal(R[,2], kramp[,2], tolerance = 0)):

0.00000002380406

  1. Lỗi bình phương trung bình gốc (RMSE) hoặc sai lệch (mang lại nhiều trọng lượng hơn cho các lỗi lớn), được tính nhưsqrt(mean(difference^2))sau:

0.000000007283493


Nếu bạn tìm thấy một hình ảnh hoặc chân dung của Chistian Kramp, vui lòng chỉnh sửa bài đăng này và đặt nó ở đây.


4
Thật tuyệt khi có hai tài liệu tham khảo khác nhau, và tôi nghĩ rằng các chi tiết bổ sung (như bản mở rộng rõ ràng mà Laplace đã đưa ra cho phần đuôi trên) ở đây là tốt.
Glen_b

1
Điều này thậm chí còn tốt hơn với lần chỉnh sửa mới nhất nhưng tôi không thể nâng cấp hai lần - công cụ tuyệt vời. Lưu ý rằng bài viết của David giải thích lý do tại sao bảng của Kramp không có độ chính xác cho tất cả các chữ số được hiển thị (một lỗi rất nhỏ trong bước đầu tiên được thực hiện) - nhưng nó vẫn còn quá đủ cho hầu hết các ứng dụng thống kê
Glen_b

2
@ OlivierGrégoire Cảm ơn bạn đã chỉ ra chữ số thập phân bị nhầm lẫn của tôi. Bây giờ nó đã được sửa chữa. Tôi lớn lên trong một thời gian mà tiếng Pháp là bắt buộc, và không có nghĩa là bất kỳ sự thiếu tôn trọng với việc sử dụng ngôn ngữ kỳ quặc của tôi (có một tài liệu tham khảo trong đó, nhưng không bao giờ để tâm), mà tôi đã đảo ngược. Đối với "citoyen Kramp" - một nỗ lực làm nổi bật các hình thức giới thiệu lịch sử trong bài báo.
Antoni Parellada

1
Hey, xin lỗi bạn cảm thấy đây là một bình luận bash. Tôi chỉ đang chỉ vào công cụ, tôi không có cách nào nói với bạn là không tôn trọng bất cứ điều gì. Bạn có thể chơi chữ hoặc phóng đại (hoặc thậm chí làm một tài liệu tham khảo), tất nhiên. Nhưng là một người nói tiếng Pháp, tôi đã không nhận được điều đó (ít nhất đó là những gì tôi đã cố gắng truyền đạt). "Le citoyen Kramp" không có vấn đề gì: Tôi chỉ sao chép và đặt dấu ngoặc kép, vì đó không phải là tiếng Anh. Xin lỗi nếu bạn cảm thấy đó là một bình luận bash, không phải vậy. Việc sử dụng tiếng Anh của tôi cũng thiếu. ^^ So sánh của bạn đã được thực hiện độc đáo!
Olivier Grégoire

1
@ P.Windridge Xin lỗi ... Tôi nhận ra mình có một loạt các siêu liên kết bị hỏng ...
Antoni Parellada

32

Theo HA David [1] Laplace đã nhận ra nhu cầu về các bảng phân phối bình thường "sớm nhất là vào năm 1783" và bảng bình thường đầu tiên được Kramp sản xuất vào năm 1799.

Laplace đã đề xuất hai xấp xỉ chuỗi, một cho tích phân từ đến của (tỷ lệ thuận với phân phối bình thường với phương sai ) và một cho đuôi trên.0xet212

Tuy nhiên, Kramp đã không sử dụng loạt Laplace này, vì có một khoảng cách trong các khoảng thời gian mà chúng có thể được áp dụng một cách hữu ích.

Thực tế, anh ta bắt đầu với tích phân cho vùng đuôi từ 0 và sau đó áp dụng khai triển Taylor về tích phân được tính cuối cùng - nghĩa là, khi anh ta tính các giá trị mới trong bảng, anh ta thay đổi của khai triển Taylor của (trong đó là tích phân cho diện tích đuôi trên).xG(x+h)G

Để được cụ thể, trích dẫn các câu có liên quan:

anh ta chỉ đơn giản sử dụng một bản mở rộng chuỗi Taylor của về , với , cho đến thuật ngữ trong . Điều này cho phép anh ta tiến hành từng bước từ đến , khi nhân vớiDo đó, tại , sản phẩm này giảm xuống còn sao cho tại . Thuật ngữ tiếp theo ở bên trái của (4) có thể được hiển thị là , do đó thiếu sót của nó là hợp lý.G(x+h)G(x)h=.01h3x=0x=h,2h,3h,...hex2x=0.01(1-1

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 chỉ ra rằng các bảng đã được sử dụng rộng rãi.

Vì vậy, thay vì hàng ngàn khoản tiền Riemann, đó là hàng trăm bản mở rộng của Taylor.


Trong một ghi chú nhỏ hơn, trong một nhúm (chỉ bị kẹt với một máy tính và một vài giá trị được nhớ từ bảng bình thường), tôi đã áp dụng khá thành công quy tắc của Simpson (và các quy tắc liên quan để tích hợp số) để có được xấp xỉ tốt ở các giá trị khác; nó không phải là tất cả mà tẻ nhạt để tạo ra một bảng * viết tắt là một vài con số chính xác. [Để tạo ra các bảng về quy mô và độ chính xác của Kramp sẽ là một nhiệm vụ khá lớn, mặc dù, thậm chí sử dụng một phương pháp thông minh hơn, như ông đã làm.]

* Theo một bảng viết tắt, ý tôi là một nơi mà về cơ bản bạn có thể thoát khỏi phép nội suy ở giữa các giá trị được lập bảng mà không mất quá nhiều độ chính xác. Nếu bạn chỉ muốn nói chính xác khoảng 3 con số, bạn thực sự không cần phải tính toán tất cả các giá trị đó. Tôi đã sử dụng hiệu quả phép nội suy đa thức (chính xác hơn là các kỹ thuật sai phân hữu hạn được áp dụng), cho phép một bảng có ít giá trị hơn phép nội suy tuyến tính - nếu có nhiều nỗ lực hơn ở bước nội suy - và cũng đã thực hiện phép nội suy với phép biến đổi logit, làm cho phép nội suy tuyến tính hiệu quả hơn đáng kể, nhưng chỉ được sử dụng nhiều nếu bạn có một máy tính tốt).

[1] Herbert A. David (2005),
"Các bảng liên quan đến phân phối bình thường: Lịch sử ngắn"
Nhà thống kê người Mỹ , Tập. 59, số 4 (tháng 11), trang 309-311

[2] Kramp (1799),
Phân tích des Réfraction Astronomiques et Terrestres,
Leipzig: Schwikkert


0

Vấn đề thú vị! Tôi nghĩ ý tưởng đầu tiên không xuất hiện thông qua việc tích hợp công thức phức tạp; đúng hơn, kết quả của việc áp dụng các tiệm cận trong tổ hợp. Bút và phương pháp giấy có thể mất vài tuần; không quá khó đối với Karl Gauss so với việc tính toán chiếc bánh cho những người tiền nhiệm. Tôi nghĩ ý tưởng của Gauss là can đảm; tính toán dễ dàng cho anh ta.

Ví dụ về việc tạo bảng z tiêu chuẩn từ đầu-
1. Lấy một số n (giả sử n là 20) và liệt kê tất cả các mẫu có thể có kích thước r (giả sử r là 5) từ đó.
2. tính phương tiện mẫu. Bạn nhận được phương tiện mẫu nCr (ở đây, 20c5 = 15504 có nghĩa là).
3. Trung bình của chúng giống như trung bình dân số. Tìm stdev của phương tiện mẫu.
4. Tìm điểm z của phương tiện mẫu bằng cách sử dụng các giá trị trung bình pop và stdev của phương tiện mẫu.
5. Sắp xếp z theo thứ tự tăng dần và tìm xác suất z nằm trong một phạm vi trong các giá trị nCr z của bạn.
6. So sánh các giá trị với các bảng bình thường. N nhỏ hơn là tốt cho tính toán tay. Lớn hơn n sẽ tạo ra xấp xỉ gần hơn các giá trị bảng bình thường.

Đoạn mã sau nằm trong 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)  

Xác suất của z nằm trong khoảng từ 0 đến giá trị dương q bên dưới; so sánh với một bảng đã biết. Thao tác q dưới đây trong khoảng từ 0 đến 3,5 để so sánh.

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
Tôi không thấy cách lấy mẫu có thể được sử dụng theo cách này để tạo các bảng. Tôi nghĩ OP chỉ muốn biết ai là người đầu tiên
Michael Chernick

Cảm ơn bình luận có giá trị của bạn Michael Chernick. 1) OP viết "Làm thế nào mà họ làm điều đó trước khi máy tính xuất hiện? Tôi rùng mình khi nghĩ về một người nào đó vũ phu tính toán một ngàn tổng Riemann bằng tay." Tôi đã cố gắng trả lời phần đó. 2) Thuật ngữ 'mẫu' không phải là mẫu trên mỗi se, đây là hàm r để tạo danh sách các số ngẫu nhiên. Chúng tôi chỉ có thể lấy bất kỳ 20 số thay cho là tốt. Xem liên kết r hỗ trợ tại đây stackoverflow.com/questions/17773080/ từ
Md Towhidul Hồi giáo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.