Как выполнить регрессию (например, простую линейную) в контексте выбора или группировки поляров?Python

Программы на Python
Ответить
Anonymous
 Как выполнить регрессию (например, простую линейную) в контексте выбора или группировки поляров?

Сообщение Anonymous »

Я использую поляры вместо панд. Я очень поражен скоростью и ленивыми вычислениями/оценками. Сейчас существует множество методов работы с ленивым фреймом данных, но они не могут меня завести.
Итак, мне интересно, как лучше всего использовать полярные поля в сочетании с другими инструментами для выполнения более сложных операций, таких как регрессия/подбор модели.
Чтобы быть более конкретным, я приведу пример, включающий линейную регрессию.
Предположим, у меня есть полярный фрейм данных со столбцами day, y, x1 и x2, и я хочу сгенерировать ряд, который представляет собой остаток регрессии y по группам x1 и x2 по дням. Я включил следующий пример кода и рассказал, как его можно решить с помощью панд и статистических моделей. Как я могу получить тот же результат с наибольшей эффективностью, используя идиоматические поляры?

Код: Выделить всё

import pandas as pd
import statsmodels.api as sm

def regress_resid(df, yvar, xvars):
result = sm.OLS(df[yvar], sm.add_constant(df[xvars])).fit()
return result.resid

df = pd.DataFrame(
{
"day": [1, 1, 1, 1, 1, 2, 2, 2, 2, 2],
"y": [1, 6, 3, 2, 8, 4, 5, 2, 7, 3],
"x1": [1, 8, 2, 3, 5, 2, 1, 2, 7, 3],
"x2": [8, 5, 3, 6, 3, 7, 3, 2, 9, 1],
}
)

df.groupby("day").apply(regress_resid, "y", ["x1", "x2"])
# day
# 1    0    0.772431
#      1   -0.689233
#      2   -1.167210
#      3   -0.827896
#      4    1.911909
# 2    5   -0.851691
#      6    1.719451
#      7   -1.167727
#      8    0.354871
#      9   -0.054905
Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/748 ... roupby-con
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»