Хто створив першу стандартну звичайну таблицю?


61

Я збираюся представити стандартну звичайну таблицю у своєму вступному класі статистики, і це мене здивувало: хто створив першу стандартну звичайну таблицю? Як вони зробили це до появи комп'ютерів? Я здригаюся, коли я думаю, що хтось жорстоко обчислює тисячу сум Рімана вручну.


5
Приємно бачити того, хто хоче мати історично поінформоване навчання.
mdewey

Відповіді:


62

Лаплас був першим, хто визнав необхідність підрахунку даних, придумавши наближення:

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

Перший сучасний стіл нормального розподілу був побудований пізніше французьким астроном Крістіан Kramp в Аналізувати де заломлення ЮТ Terrestres астрономічних даних (Par ль citoyen Крамп, Professeur де Chymie і де Статура expérimentale à l'Ecole Centrale їй Département - де - ла Roer, 1799) . З таблиць, пов’язаних із звичайним розповсюдженням: коротка історія Автор (и): Герберт А. Девід Джерело: Американський статистик, Vol. 59, № 4 (листопад 2005 р.), Стор 309-311 :

Крамп амбіційно дав восьмидесятичні ( 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:

ПРВ є: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

Крім того, Крістіан Крамп не нормалізувався, тому нам доведеться відповідно виправити результати, отримані 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), які я спробував, були неймовірно вимкнені - не дивно, якщо ви подивилися на оригінал. Отже, я навчився цінувати Крістіана Крампа за завзятість його роботи, коли я особисто набирав кожну цифру в першій колонці його « Прем’єр таблиці» .

Після вагомої допомоги від @Glen_b, тепер це може бути дуже точним, і він готовий скопіювати та вставити на консоль R у цьому посиланні на GitHub .

Ось аналіз точності його розрахунків. Зберись...

  1. Абсолютна кумулятивна різниця між значеннями [R] та наближенням Крампа:

0.000001200764 - за розрахунок йому вдалося накопичити помилку приблизно в мільйон!3011

  1. Середня абсолютна помилка (MAE) абоmean(abs(difference))зdifference = R - kramp:

0.000000003989249 - йому вдалося в середньому допустити жахливо смішні мільярдні помилки!3

Щодо запису, в якому його обчислення були найбільш розбіжними порівняно з [R], перше значення десяткового знаку знаходилось на восьмій позиції (сто мільйонів). У середньому (середній) його перша "помилка" була в десятій десятковій цифрі (десятій мільярді!). І хоча він ні в якому разі не повністю погодився з [R], найближчий запис не розходиться до тринадцяти цифрових записів.

  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


Якщо ви знайшли зображення або портрет Чістіана Крампа, відредагуйте цю публікацію та розмістіть її тут.


4
Приємно мати дві різні посилання, і я думаю, що додаткові деталі (як явне розширення, яке Лаплас дав для верхнього хвоста) тут хороші.
Glen_b

1
Це ще краще з останньою редакцією, але я не можу подати два рази - відмінні речі. Зауважте, що у статті Давида пояснюється, чому в таблиці Крампа не було точності до всіх показаних цифр (через перший крок було здійснено дуже малу помилку) - але це все ж більш ніж достатньо для більшості статистичних додатків
Glen_b

2
@ OlivierGrégoire Дякую, що вказав на мою неправильну десяткову цифру. Зараз це виправлено. Я виріс у той час, коли французька мова була обов'язковою, і жодним чином не означала неповаги до мого вигадливого використання мови (тут є посилання, але неважливо), на яку я перевернув свою думку. Щодо "citoyen Kramp" - спроба висвітлення історичних форм введення у статті.
Антоні Пареллада

1
Гей, вибачте, що ви відчули це неприємний коментар. Я просто вказував на речі, я ні в якому разі не кажу, що ви щось зневажаєте. Ви, звичайно, можете карати або перебільшувати (або навіть робити посилання). Але як франкомовний хлопець я цього не зрозумів (саме це я намагався передати принаймні). "Le citoyen Kramp" не мав жодних питань: я просто копіював і ставив лапки, бо це не англійська мова. Вибачте, якщо ви відчули, що це неприємний коментар, це не так. Моє вживання англійської мови також бракує. ^^ Ваше порівняння було чудово виконано!
Олів’є Грегоар

1
@ P.Windridge Вибачте ... Я зрозумів, що у мене є купа зламаних гіперпосилань ...
Антоні Пареллада

32

За даними HA David [1] Лаплас визнав необхідність таблиць нормального розподілу "ще в 1783 р.", І перша нормальна таблиця була виготовлена ​​Крампом у 1799 році.

Лапласа запропонував два наближення серії, один для інтеграла від до з (яка пропорційна нормальному розподілу з дисперсією ) і один для верхнього хвоста.x e - t 2 10xet212

Однак Крамп не використовував ці серії Лапласа, оскільки був проміжок у інтервалах, за які вони могли бути корисно застосовані.

По суті, він починається з інтеграла для області хвоста від 0, а потім застосовує розширення Тейлора щодо останнього обчисленого інтеграла - тобто, коли він обчислює нові значення в таблиці, він зміщує на своє розширення Тейлора на (де - інтеграл, що дає верхню область хвоста).G ( x + h ) GxG(x+h)G

Конкретніше, цитуючи відповідні пари речень:

він просто використовує розширення ряду Тейлора про , з , до терміну в . Це дозволяє йому переходити крок за кроком від до , при множенніG ( х ) ч = 0,01 ч 3 х = 0 х = ч , 2 ч , 3 ч , . . .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

Девід вказує, що таблиці широко використовувались.

Тож замість тисяч сум Рімана це були сотні розширень Тейлора.


Що стосується меншої замітки, у крайньому випадку (приклеєний лише калькулятор та кілька запам'ятовуваних значень із звичайної таблиці) я досить успішно застосував правило Сімпсона (та пов'язані з ним правила для чисельної інтеграції), щоб отримати гарне наближення до інших значень; виготовляти скорочену таблицю * до кількох цифр точності не все так нудно. [Виробляти таблиці масштабу та точності Крампа було б досить великим завданням, хоча, навіть використовуючи розумніший метод, як він це робив.]

* Під скороченою таблицею я маю на увазі ту, де ви можете в основному піти з інтерполяції між табличними значеннями, не втрачаючи занадто багато точності. Якщо ви хочете сказати лише 3-кратну точність фігури, вам дійсно не потрібно обчислювати всі такі величини. Я ефективно використав поліноміальну інтерполяцію (точніше, застосував кінцеві методи різниці), яка дозволяє створити таблицю з меншими значеннями, ніж лінійна інтерполяція - якщо дещо більше зусиль на кроці інтерполяції - а також зробила інтерполяцію з перетворенням logit, яка робить лінійну інтерполяцію значно ефективнішою, але вона дуже корисна, якщо у вас хороший калькулятор).

[1] Герберт А. Девід (2005),
"Таблиці, пов'язані з нормальним розповсюдженням: коротка історія"
Американський статистик , Vol. 59, № 4 (листопад), стор 309-311

[2] Крамп (1799),
Аналіз дефрагментів Astronomiques et Terrestres,
Leipzig: Schwikkert


0

Цікаве питання! Я думаю, що перша ідея виникла не через інтеграцію складної формули; скоріше, результат застосування асимптотики в комбінаториці. Метод ручки та паперу може зайняти кілька тижнів; не такий жорсткий для Карла Гаусса порівняно з розрахунком пирога для його попередників. Я думаю, що ідея Гаусса була сміливою; розрахунок був для нього легким.

Приклад створення стандартної таблиці z з нуля.
1. Візьміть сукупність з n (скажімо, n 20) чисел і перерахуйте з цього всі можливі вибірки розміру r (скажімо, r 5).
2. обчислити вибіркові засоби. Ви отримуєте nCr зразок засобів (тут, 20c5 = 15504 означає).
3. Їх середнє значення те саме, що середнє населення. Знайдіть stdev зразкових засобів.
4. Знайдіть z балів зразка засобів, використовуючи ці середні значення та stdev зразкових засобів.
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 нижче; порівняйте з відомою таблицею. Маніпулюйте q нижче між 0 і 3,5 для порівняння.

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
Я не знаю, як вибірку можна використовувати таким чином для створення таблиць. Я думаю, що ОП просто хотів дізнатися, хто був першою людиною
Майкл Черник

Дякуємо за ваш цінний коментар Майкл Черник. 1) ОП пише: "Як вони це зробили до того, як з'явилися комп'ютери? Я здригнувся думати про те, що хтось з грубими силами обчислює тисячу ріманівських сум вручну". Я намагався відповісти на цю частину. 2) Термін "вибірка" не є вибіркою як такої, це функція r для створення списку випадкових чисел. Ми також можемо взяти будь-які 20 чисел замість них. Див опорної г посилання тут stackoverflow.com/questions/17773080 / ...
Md Towhidul Іслам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.