Я хотів би перевірити, R
чи відповідають мої дані нормальним журналом чи дистрибутивом Pareto. Як я міг це зробити? Можливо, ks.test
міг би мені допомогти це зробити, але як я можу отримати параметри і для розподілу Парето для своїх даних?
Я хотів би перевірити, R
чи відповідають мої дані нормальним журналом чи дистрибутивом Pareto. Як я міг це зробити? Можливо, ks.test
міг би мені допомогти це зробити, але як я можу отримати параметри і для розподілу Парето для своїх даних?
Відповіді:
... Я щойно помітив, що у вас є тег "регресії". Якщо у вас є проблема регресії, ви не можете переглянути однозначне розподіл відповіді для оцінки форми розподілу, оскільки це залежить від структури x. Якщо ви запитуєте про перевірку, чи має змінна відповідь (y) в якійсь регресії чи GLM має логічну норму чи розподіл Парето, де засоби різняться залежно від спостереження, це зовсім інше питання (але в основному зводиться до подібних видів аналізу на залишки). Чи можете ви уточнити, чи є це проблема регресу? В даний час моя відповідь стосується оцінки однозначної логічності або Парето
У вас там є зовсім інші питання.
Як перевірити, чи відповідають мої дані нормальному розповсюдженню журналу?
Візьміть журнали та зробіть звичайний графік QQ. Подивіться і переконайтеся, чи розподіл досить близький для ваших цілей.
Я хотів би зареєструвати R, чи відповідають мої дані нормальним журналом або розподілом Pareto
З початку визначте, що жоден з розглянутих вами дистрибуцій не буде точним описом. Ви шукаєте розумну модель. Це означає, що при невеликих розмірах вибірки ви не відхилите жоден розумний варіант, але при достатньому розмірі вибірки ви відхилите їх усі. Гірше, що при великому розмірі вибірки ви будете відхиляти ідеально пристойні моделі, тоді як при невеликих розмірах зразка ви не відхилите погані.
Такі тести насправді не є корисною базою для вибору моделі.
Коротше кажучи, ваше питання, що цікавить - щось на кшталт "яка хороша модель для цих даних, та яка є досить близькою, щоб зробити наступний висновок корисним?" просто не відповідає добротою тестів на придатність. Однак у деяких випадках корисність статистики придатності (а не рішення, що випливають із правил відхилення, заснованих на них) може в деяких випадках надавати корисний підсумок окремих видів невідповідності.
Можливо, ks.test міг би мені допомогти у цьому
Ні. По-перше, це питання, про яке я тільки що згадував, по-друге, тест Колмогорова-Смірнова є тестом на цілком заданий розподіл. У вас немає одного з таких.
У багатьох випадках я рекомендую графіки QQ та подібні дисплеї. Для таких випадків, котрі є правими перекосами, я схильний працювати з журналами (тоді лонормальне буде виглядати нормально, тоді як Парето виглядатиме експоненціально). При розумних розмірах вибірки не важко візуально відрізнити, чи дані виглядають майже нормально, ніж експоненціальні чи навпаки. По-перше, отримайте від кожного фактичні дані та накресліть їх - скажіть принаймні півдесятка зразків, щоб ви знали, як вони виглядають.
Дивіться приклад нижче
як я можу отримати параметри альфа та k для розподілу парето для своїх даних?
Якщо вам потрібно оцінити параметри, використовуйте MLE ..., але не робіть цього, щоб вибрати між Парето і Лонормальним.
Чи можете ви сказати, що з них - це ненормальне, а яке - Парето?
Зауважимо, що при звичайних графіках QQ (лівий стовпець) ми бачимо, що журнали набору даних 1 дають досить пряму лінію, тоді як набір даних 2 показує правильну косисть. З експоненціальними графіками журнали набору даних 1 показують більш легкий правий хвіст, ніж експонентний, тоді як набір даних 2 показує досить пряму лінію (значення в правому хвості мають тенденцію трохи хитатися, навіть коли модель правильна; це не незвично з важкими хвостами; це одна з причин, чому вам потрібно побудувати кілька зразків подібного розміру до того, на який ви дивитесь, щоб побачити, як виглядають сюжети зазвичай)
Код, що використовується для цих чотирьох сюжетів:
qqnorm(log(y1))
qqnorm(log(y2))
qex <- function(x) qexp((rank(x)-.375)/(length(x)+.25))
plot(qex(y1),log(y1))
plot(qex(y2),log(y2))
Якщо у вас є проблема типу регресії - проблема, коли засоби змінюються на інші змінні, ви дійсно можете оцінити придатність будь-якого припущення розподілу за наявності відповідної моделі для середнього.
Це, звичайно, питання вибору моделі , якщо припустити, що ви просто хочете перевірити, чи походять ваші дані від тієї чи іншої моделі і що ваша мета - не знайти правильну модель серед нескінченного розмірного океану розподілів. Отже, одним із варіантів є використання AIC (що надає перевагу моделям з найнижчим значенням AIC, і я не буду намагатися описати тут). Подивіться на наступний приклад із імітованими даними:
rm(list=ls())
set.seed(123)
x = rlnorm(100,0,1)
hist(x)
# Loglikelihood and AIC for lognormal model
ll1 = function(param){
if(param[2]>0) return(-sum(dlnorm(x,param[1],param[2],log=T)))
else return(Inf)
}
AIC1 = 2*optim(c(0,1),ll1)$value + 2*2
# Loglikelihood and AIC for Pareto model
dpareto=function(x, shape=1, location=1) shape * location^shape / x^(shape + 1)
ll2 = function(param){
if(param[1]>0 & min(x)> param[2]) return(-sum(log(dpareto(x,param[1],param[2]))))
else return(Inf)
}
AIC2 = 2*optim(c(1,0.01),ll2)$value + 2*2
# Comparison using AIC, which in this case favours the lognormal model.
c(AIC1,AIC2)
Може бути fitdistr ()?
require(MASS)
hist(x, freq=F)
fit<-fitdistr(x,"log-normal")$estimate
lines(dlnorm(0:max(x),fit[1],fit[2]), lwd=3)
> fit
meanlog sdlog
3.8181643 0.1871289
> dput(x)
c(52.6866903145324, 39.7511298620398, 50.0577071855833, 33.8671245370402,
51.6325665911116, 41.1745418750494, 48.4259060939127, 67.0893697776377,
35.5355051232044, 44.6197404834786, 40.5620805256951, 39.4265590077884,
36.0718655240496, 56.0205581625823, 52.8039852992611, 46.2069383488226,
36.7324212941395, 44.7998046213554, 47.9727885542368, 36.3400338997286,
32.7514839453244, 50.6878893947656, 53.3756089181472, 39.4769689441593,
38.5432770167907, 62.350999487007, 44.5140171935881, 47.4026606915147,
57.3723511479393, 64.4041641945078, 51.2286815562554, 60.4921839777139,
71.6127652225805, 40.6395409719693, 48.681036613906, 52.3489622656967,
46.6219563536878, 55.6136160469819, 62.3003761050482, 42.7865905767138,
50.2413659137295, 45.6327941365187, 46.5621907725798, 48.9734785224035,
40.4828649022511, 59.4982559591637, 42.9450436744074, 66.8393386407167,
40.7248473206552, 45.9114242834839, 34.2671010054407, 45.7569869970351,
50.4358523486278, 44.7445606782492, 44.4173298921541, 41.7506552050873,
34.5657344132409, 47.7099864540652, 38.1680974794929, 42.2126680994737,
35.690599714042, 37.6748157160789, 35.0840798650981, 41.4775827114607,
36.6503753230464, 42.7539062488003, 39.2210050689652, 45.9364763482558,
35.3687017955285, 62.8299659875044, 38.1532612008011, 39.9183076516292,
59.0662388169057, 47.9032427690417, 42.4419580084314, 45.785859495192,
59.5254284342724, 47.9161476636566, 32.6868959277799, 30.1039453246766,
37.7606323857655, 35.754797368422, 35.5239777126187, 43.7874313667592,
53.0328404605954, 37.4550326357314, 42.7226751172495, 44.898430515261,
59.7229655935187, 41.0701258705001, 42.1672231656919, 60.9632847841197,
60.3690132883734, 45.6469334940722, 39.8300067022836, 51.8185235060234,
44.908828102875, 50.8200011497451, 53.7945569828737, 65.0432670527801,
49.0306734716282, 35.9442821219144, 46.8133296904456, 43.7514416949611,
43.7348972849838, 57.592040060118, 48.7913517211383, 38.5555058596449
)