Scipy | Статистика: Повторите выбор переменной (добавьте или удалите функцию в зависимости от AdjR2): Регрессия

#python #scipy #statistics

Вопрос:

Я работаю над проектом, который исследует, насколько хорошо можно предсказать ночную цену в наборе данных airbnb. Мои данные были полностью предварительно обработаны, и я выбрал функции, представляющие интерес.

в конечном счете, ищите статью с кодом в качестве примера, при условии, что у вас есть какие-либо доступные ссылки

введите описание изображения здесь

введите описание изображения здесь

всего существует 24 столбца, следовательно, 23 зависимых и 1 независимая переменная price .

Я хочу добавлять и удалять переменные из своей модели в зависимости от того, как это влияет на Adj R2, и хочу сохранить интересные функции только в том случае, если это улучшит Adj R2.

Я стремлюсь полностью выполнить эту задачу в рамках определенной пользователем функции:

 df=[]
predictors= [] #features
target=[]  # price
alpha=[]  

def variable_selection (df, predictors, target, alpha)
   return pred
 

дело в том, что я хочу начать с моделей регрессии с одной переменной, затем добавить еще одну функцию predictors , а затем добавить функцию, которая приводит к наибольшему увеличению AdjR2. Затем добавьте следующую и так далее, пока не останется переменных, увеличивающих AdjR2.

Большое вам спасибо за то, что зашли так далеко. Всего наилучшего вам

Комментарии:

1. Насколько велик набор данных? Существуют sum([scipy.special.comb(23,i) for i in range(1,24)]) = 8_388_607.0 комбинации потенциальных матриц ввода. Компьютер может (вероятно) выдать 8 миллионов регрессий быстрее, чем я могу придумать умный алгоритм.

2. примерно 17 000 строк, 24 столбца. Я уже ценю этот вклад. Я сидел здесь, как обезьяна, и пытался придумать программу для этого. Излишне говорить, что никакого прогресса не было. Я могу позволить себе опустить несколько колонок, но не так много. возможно, не более 5, если это ограничение. Просто хотел бы добавить функцию в регрессию, повторяя 1 за 1, пока adj R2 не достигнет максимального потенциала для данной модели

3. @DavidKaften В настоящее время просматривает следующую документацию: Если у вас есть какие-либо советы от: statsmodels.org/stable/generated/… , о том, как перебирать переменные, было бы весьма признателен