Как сделать статистику Колмогорова-Смирнова для распределения GEV в R?

Теперь я использую пакет extremes для подгонки распределения обобщенных экстремальных значений (GEV) и хочу использовать критерий Колмогорова-Смирнова для оценки качества подгонки, но получаю следующую ошибку:

library(extRemes)
library(eva)
data("PORTw", package = "extRemes")
fit1 <- fevd(TMX1, PORTw, units = "deg C")
ks.test(PORTw$TMX1,"pgev",fit1$results$par[[1]],fit1$results$par[[2]],shape=fit1$results$par[[3]])

`Warning message:
In ks.test(PORTw$TMX1, "pgev", fit1$results$par[[1]], fit1$results$par[[2]],  :
  ties should not be present for the Kolmogorov-Smirnov test`

Итак, мой вопрос: как выполнить тест Колмогорова-Смирнова для соответствия GEV с галстуками? Или есть ли какой-либо другой тест на пригодность для подбора дистрибутива, доступный в R? Большое спасибо.


person Yang Yang    schedule 15.06.2017    source источник
comment
Вы задаетесь вопросом, как сделать это this == _what_? в R. Вы не можете спрашивать, как выполнить тест KS в R, верно? По крайней мере, не без собственного поиска, верно?   -  person IRTFM    schedule 16.06.2017
comment
Извините за неопределенный вопрос, и я отредактировал его, добавив дополнительную информацию.   -  person Yang Yang    schedule 16.06.2017
comment
Это было только предупреждение. Вы должны были видеть в консоли (но не смогли скопировать вывод) результаты KS-теста. Опять же ... можете ли вы объяснить на вполне естественном языке, в чем на самом деле заключается статистический вопрос? Или почему вы думаете, что вывод неверен? Возможно, вам нужно прочитать какую-нибудь статистическую теорию, которая объяснит, почему при тесте КС не ожидаются ничьи? Или опубликовать на CrossValidated.com вопрос о лежащей в основе теории и о том, какую степень беспокойства следует применять к этому событию?   -  person IRTFM    schedule 16.06.2017
comment
Возможно, вы захотите посмотреть свои данные: table(PORTw$TMX1)   -  person IRTFM    schedule 16.06.2017
comment
Спасибо. Я не замечаю, что это только предупреждение, и я вижу результаты. Вопрос в том, есть ли статистическая разница между fit1 и теоретическим распределением GEV? Цель состоит в том, чтобы оценить соответствие модели fit1.   -  person Yang Yang    schedule 16.06.2017
comment
Если чтения раздела «Подробности» справки для ?ks.test и ?fevd (чего вы, по-видимому, еще не сделали) недостаточно, вам следует отправить свой вопрос о методах/теории на сайт CrossValidated.com, где такие вопросы обсуждаются по теме. Я не думаю, что это по теме для SO. Мое близкое голосование на самом деле является миграционным голосованием.   -  person IRTFM    schedule 16.06.2017
comment
Спасибо за совет. Я прочитал подробности для fevd, но он предоставляет только некоторые качественные методы построения графиков для оценки качества подгонки. Я хочу использовать тест KS, чтобы получить количественный результат (я видел такой метод в опубликованных работах). Большое спасибо.   -  person Yang Yang    schedule 16.06.2017
comment
В опубликованной литературе по различным областям имеется довольно много неправильно примененного статистического тестирования. Литература может только давать руководство к тому, что может быть упущено статистически невежественными рецензентами, скажем, в медицинской или деловой областях. Вам было бы неплохо посоветоваться с настоящим статистиком, имеющим опыт работы с теорией экстремальных значений.   -  person IRTFM    schedule 16.06.2017


Ответы (2)


Я рекомендую пакет "EnvStats". У вас будет больше возможностей для проверки пригодности:

library(EnvStats)
# For a data set called X
X <- rgevd(500)
# Generalized Extreme Value (EnvStats)
egevd(X, method = "mle")# Maximum likelihood
# Goodness of fit test
gofTest(X, distribution = "gev",test = "ks")#Kolmogorov-Smirnov
gofTest(X, distribution = "gev",test = "chisq")#Chi-Squared
person Marcel    schedule 30.04.2019
comment
А как насчет обобщенного распределения Парето? Я не могу назначить распределение=gp в функции thisgofTest (похоже, она не поддерживается). Если можно подскажите пожалуйста. - person Pei Li; 16.09.2020

Пакет EnvStats.

library(EnvStats)
set.seed(250) 
dat <- rpareto(30, location = 1, shape = 1)  
head(dat)
epareto(dat)
gofTest(dat, distribution = "pareto",test = "ks")#Kolmogorov-Smirnov
plot.gof(gofTest(dat, distribution = "pareto",test = "ks"))#Plot
person Marcel    schedule 17.09.2020