Поскольку вы упомянули целевую переменную и, похоже, используете модель OLS, я предполагаю, что вы пытаетесь выполнить множественную линейную регрессию .
Вам не нужно выполнять ANOVAвручную - практически все реализации моделей линейной регрессии автоматически вычисляют значение p, связанное с каждой входной переменной (с учетом всех других входных переменных).
Кроме того, ваша модель OLS должна иметь все входные переменные в ней перед вызовомметод fit()
.Другими словами, вам нужно поместить свои входные переменные в одну группу, прежде чем передавать их в модель, не потому, что вам это нужно для ANOVA (вам не нужно), а потому, что вам это нужно для самой множественной линейной регрессии.
В псевдокоде:
target_var = put_your_target_series_here
input_vars = put_all_your_input_series_here
result = ols(target_var, input_vars).fit()
В вашем случае target_var
, скорее всего, будет Серии панд (= столбец сиглы из pFDas DataFrame).
input_vars
может быть пандами серии (что означает, что у вас есть только одна входная переменная - это простая линейная регрессия ) или пандамиDataFrame (в этом случае каждый столбец интерпретируется как входная переменная - вы выполняете множественную линейную регрессию ).
Объект в переменной result
содержит p-значения для всех входных переменных в вашей модели - обратитесь к документации пакетов, которые вы используете, чтобы проверить, как их извлечь.
Однако, поскольку ваши входные переменные являются категориями, вам придется использоватьфиктивные переменные .Допустим, у вас есть эти данные:
|House | Neighborhood value|
|------|-------------------|
|01 | Good |
|02 | Bad |
|03 | Bad |
|04 | Excellent |
|05 | Good |
Линейная регрессия должна иметь числа, а не категории.Вы могли бы сойти с рук, превратив эти категории в числа, например:
|House | Neighborhood value|
|------|-------------------|
|01 | 1 |
|02 | 0 |
|03 | 0 |
|04 | 2 |
|05 | 1 |
Но это косвенно учит вашу модель, что значение соседства Excellent
стоит в 2 раза больше Good
значение - что может или не может быть правдой!Кроме того, для таких категорий, как цвета, это не имеет никакого смысла.
Реальным решением является использование фиктивных переменных , например:
|House | Has excellent value | Has good value|
|------|---------------------|---------------|
|01 | 0 | 1 |
|02 | 0 | 0 |
|03 | 0 | 0 |
|04 | 1 | 0 |
|05 | 0 | 1 |
Это позволяет избежать проблемЯ описал выше.
Обратите внимание, что нам не нужен столбец для Has bad value
, потому что мы предполагаем, что дом без 0 для Has excellent value
и Has good value
должен иметь неправильное значение.
См. эту ссылку для более подробного объяснения фиктивных переменных для категориальных данных в множественной линейной регрессии.