Вопрос по regression, scipy, python – Пошаговая регрессия в Python

22

Как выполнитьступенчатая регрессия впитон? Есть методы для OLS в SCIPY, но я не могу сделать это пошагово. Любая помощь в этом отношении будет отличной помощью. Благодарю.

Изменить: я пытаюсь построить модель линейной регрессии. У меня есть 5 независимых переменных и, используя пошаговую прямую регрессию, я стремлюсь выбирать переменные так, чтобы в моей модели было наименьшее значение p. Следующая ссылка объясняет цель:

https://www.google.co.in/url?sa=t&RCT = J &д = &ESRC = s &Источник = веб-кд = 4 &вед = 0CEAQFjAD &URL = HTTP% 3A% 2F% 2Fbusiness.fullerton.edu% 2Fisds% 2Fjlawrence% 2FStat-On-Line% 2FExcel% 2520Notes% 2FExcel% 2520Notes% 2520-% 2520STEPWISE% 2520REGRESSION.doc &е = YjKsUZzXHoPwrQfGs4GQCg &USG = AFQjCNGDaQ7qRhyBaQCmLeO4OD2RVkUhzw &BVM = bv.47244034, d.bmk

Еще раз спасибо.

Это'Не рекомендуется основывать модель на p-значениях. Они являются скорее проверкой работоспособности, а другие критерии, такие как AIC или BIC, являются более подходящими. Max Candocia
Можете ли вы уточнить, какие критерии вы хотите использовать для выбора предиктивных переменных? А если вам нужен пример, можете ли вы опубликовать или дать ссылку на некоторые примеры данных? BKay
Ссылка не работает:We're sorry, the page you've requested could not be located. You can return to the Mihaylo Home Page or report an error to the Webmaster. vestland
scikits.learn имеет LARS / лассо, если этоs любого использования:scikit-learn.org/dev/modules/linear_model.html#lars-lasso NPE

Ваш Ответ

4   ответа
9

регрессии с помощью statsmodels:http://planspace.org/20150423-forward_selection_with_statsmodels/ Вы можете легко изменить его, чтобы минимизировать p-значение, или выбрать его на основе бета-значений p, выполнив немного больше работы.

3

statsmodels.api.OLS модель, как показанов этом ответе.

Тем не мение,этот ответ описывает, почему вы не должны использовать пошаговый выбор для эконометрических моделей в первую очередь.

Я просто хотел бы отметить, что разделение данных должно отвечать на проблемы переоснащения / углубления данных, которые поднимаются в статье, написанной Дэвидом. Один из опубликованных ответов о разделении данных:stats.stackexchange.com/a/20860/48197 Сказав это, в текстах (Data Mining для Business Analytics Wiley) обсуждаются методы разделения данных. Другими словами, пошагово должно быть хорошо, пока вы неЧтобы использовать результаты обучающей модели в производстве, вам нужно выполнить что-то вроде k-кратного тестирования по данным валидации, чтобы получить работоспособный список. thistleknot
2

http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html, Я думаю, что это поможет вам осуществить пошаговую регрессию.

0
"""Importing the api class from statsmodels"""
import statsmodels.formula.api as sm

"""X_opt variable has all the columns of independent variables of matrix X 
in this case we have 5 independent variables"""
X_opt = X[:,[0,1,2,3,4]]

"""Running the OLS method on X_opt and storing results in regressor_OLS"""
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()

вы можете проверить в вашем ядре значения p ваших переменных, написанные как 'P>| Т |», Затем проверьте переменную с наибольшим значением p. Предположим, что х3 имеет наибольшее значение, например 0,956. Затем удалите этот столбец из массива и повторите все шаги.

X_opt = X[:,[0,1,3,4]]
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()

Повторяйте эти методы, пока не удалите все столбцы, у которых значение p выше значения значимости (например, 0,05). В конце ваша переменная X_opt будет иметь все оптимальные переменные со значениями p меньше уровня значимости.

Похожие вопросы