Как использовать статистические модели для подбора данных

У меня есть набор данных, который мне нужен для распределения GEV. Данные являются одномерными и хранятся в массиве numpy. В настоящее время я использую scipy.stats.genextreme.fit(data), который работает нормально, но дает совершенно неточные результаты (очевидно при построении PDF-файла). После некоторого расследования выясняется, что мои данные плохо вписываются в пространство журнала, которое scipy использует в своем алгоритме подбора MLE, поэтому вместо этого мне нужно попробовать что-то вроде GMM, которое доступно только в статистических моделях. Проблема в том, что я не могу найти ничего похожего на функцию fit scipy. Все примеры, которые я нашел, похоже, имеют дело с гораздо более сложными данными, чем у меня. Кроме того, statsmodels требует параметров endog и exog для всего, а я понятия не имею, что это такое.

Это должно быть очень просто, поэтому я уверен, что упускаю что-то очевидное. Кто-нибудь использовал statsmodels таким образом, и если да, то какие-либо указания о том, как это сделать?


person aquavitae    schedule 19.03.2014    source источник
comment
statsmodels.sourceforge.net/devel/endog_exog.html   -  person Fred Foo    schedule 19.03.2014
comment
Может быть полезно, если вы опубликуете набор данных, я не думаю, что это проблема метода MLE (который, вероятно, также использует statsmodel). Возможно, все, что вам нужно, это вместо GEV другой дистрибутив, связанный с GEV, Gumbel, Gompertz, Weibull и т. д.   -  person CT Zhu    schedule 19.03.2014
comment
@CTZhu, см. [stackoverflow.com/questions/22167975/ вопрос, который я ранее разместил. Один давний эксперт по этому вопросу сказал мне, что эти данные плохо представлены в пространстве журналов, поэтому я ищу альтернативы. Я пробовал другие дистрибутивы, но они тоже не дают хороших результатов.   -  person aquavitae    schedule 19.03.2014
comment
@larsmans Я читал документы, я просто их не понимаю.   -  person aquavitae    schedule 19.03.2014
comment
exog это x, endog это y. (Эти сумасшедшие эконометристы и их десятидолларовые словечки... :)   -  person Warren Weckesser    schedule 19.03.2014
comment
@WarrenWeckesser Да, но в данных 1D, где x и y?   -  person aquavitae    schedule 19.03.2014
comment
этот ответ дает несколько примеров того, как попробовать многие статистические модели с использованием SciPy.   -  person Saullo G. P. Castro    schedule 19.03.2014
comment
Вы можете попробовать разные начальные значения или попытаться исправить некоторые параметры в MLE, подходящие с помощью scipy.stats. В некоторых случаях я все еще получал хорошие результаты, когда пытался.   -  person Josef    schedule 19.03.2014
comment
В этом случае x отсутствует или, в зависимости от модели, это будут только единицы. Использование MLE в statsmodels на самом деле не будет отличаться от использования MLE в scipy.stats, у него будут те же проблемы. Обобщенный метод моментов или оценка минимального расстояния будут работать, но нам все равно нужно будет указать условия момента или расстояния, а текущая настройка GMM statsmodels предназначена для случаев x, y, то есть условий момента для каждого наблюдения.   -  person Josef    schedule 19.03.2014
comment
@user333700 user333700 Есть ли что-нибудь в коде эмпирического правдоподобия для моментальных условий, которых нет для каждого наблюдения? В какой-то момент у меня был код EL и Generalized Maximum Entropy для этого.   -  person jseabold    schedule 24.03.2014


Ответы (1)


Я предполагаю, что вам нужна модель смеси Гаусса (GMM), а не обобщенный метод моментов (GMM). Прежний GMM доступен в scikit-learn здесь. Последний имеет код в statsmodels, но работа над ним еще не завершена.

EDIT На самом деле мне непонятно, нужен ли вам GMM. Возможно, вам просто нужна программа оценки плотности ядра (KDE). Это доступно в моделях статистики здесь с примером

Хм, если вы хотите использовать (Обобщенный) метод моментов, чтобы соответствовать какому-то GEV, взвешенному по вероятности, то вам нужно указать условия момента, но у меня нет готового примера для (G)MM в статистических моделях для того, как вы указываете условия момента. Возможно, вам лучше спросить в списке рассылки.

person jseabold    schedule 19.03.2014