Ось загальний опис того, як працюють 3 згадані методи.
Метод Chi-Squared працює, порівнюючи кількість спостережень у відро і число, яке, як очікується, буде в бункері на основі розподілу. Для дискретних розподілів бункери зазвичай є дискретними можливостями або комбінаціями. Для безперервного розповсюдження ви можете вибрати точки зрізу для створення бункерів. Багато функцій, які реалізують це, автоматично створюють бункери, але ви повинні мати можливість створити власні бункери, якщо ви хочете порівняти їх у певних областях. Недоліком цього методу є те, що відмінності між теоретичним розподілом та емпіричними даними, які все-таки ставлять значення в один і той же бін, не будуть виявлені, прикладом може бути округлення, якщо теоретично числа між 2 і 3 повинні бути поширені через діапазон (ми очікуємо, що ми побачимо такі значення, як 2.34296),
Статистика тесту KS - це максимальна відстань між двома функціями кумулятивного розподілу, що порівнюються (часто теоретична та емпірична). Якщо два розподіли ймовірності мають лише 1 точку перетину, то 1 мінус максимальна відстань - це область перекриття між двома розподілами ймовірностей (це допомагає деяким людям уявити, що вимірюється). Подумайте про те, щоб побудувати на тому ж графіку теоретичну функцію розподілу та EDF, а потім виміряти відстань між двома "кривими", найбільша різниця - це тестова статистика, і вона порівнюється з розподілом значень для цього, коли нуль відповідає дійсності. Ця різниця фіксує форму розподілу або 1 розподіл зміщений або розтягнутий порівняно з іншими.1н . Цей тест залежить від того, що ви знаєте параметри еталонного розподілу, а не оцінювати їх за даними (ситуація тут здається прекрасною). Якщо ви оцінюєте параметри з одних і тих же даних, то ви все одно можете отримати дійсний тест, порівнюючи з власними моделюваннями, а не зі стандартним еталонним розподілом.
Тест Андерсона-Дарлінга також використовує різницю між кривими CDF, як тест KS, але замість того, щоб використовувати максимальну різницю, він використовує функцію загальної площі між двома кривими (він фактично квадратики різниць, зважує їх, так що хвости мають більше впливу, то інтегрується над областю розподілів). Це надає більшої ваги людям, ніж KS, а також дає більше ваги, якщо є кілька невеликих відмінностей (порівняно з 1 великою різницею, яку KS наголошує). Це може закінчитися пересиленням тесту, щоб знайти відмінності, які ви вважаєте невагомими (легке округлення тощо). Як і тест KS, це передбачає, що ви не оцінювали параметри з даних.
Ось графік, який показує загальні ідеї останніх 2:
на основі цього коду R:
set.seed(1)
tmp <- rnorm(25)
edf <- approxfun( sort(tmp), (0:24)/25, method='constant',
yleft=0, yright=1, f=1 )
par(mfrow=c(3,1), mar=c(4,4,0,0)+.1)
curve( edf, from=-3, to=3, n=1000, col='green' )
curve( pnorm, from=-3, to=3, col='blue', add=TRUE)
tmp.x <- seq(-3, 3, length=1000)
ediff <- function(x) pnorm(x) - edf(x)
m.x <- tmp.x[ which.max( abs( ediff(tmp.x) ) ) ]
ediff( m.x ) # KS stat
segments( m.x, edf(m.x), m.x, pnorm(m.x), col='red' ) # KS stat
curve( ediff, from=-3, to=3, n=1000 )
abline(h=0, col='lightgrey')
ediff2 <- function(x) (pnorm(x) - edf(x))^2/( pnorm(x)*(1-pnorm(x)) )*dnorm(x)
curve( ediff2, from=-3, to=3, n=1000 )
abline(h=0)
Верхній графік показує EDF зразка зі стандартної норми порівняно з CDF стандартної норми з лінією, що показує стан KS. Потім середній графік показує різницю у двох кривих (ви можете бачити, де знаходиться статистика KS). Знизу - це квадратна, зважена різниця, тест AD базується на площі під цією кривою (за умови, що я все правильно).
Інші тести розглядають кореляцію в qqplot, дивляться на схил qqplot, порівнюють середнє значення, var та інші статистичні дані за моментами.