如何对具有多个自变量的 pandas 数据框进行 运行 OLS 回归?
How to run OLS regression on pandas dataframe with multiple indepenent variables?
我有这个数据框:
import pandas as pd
import statsmodels.formula.api as sm
df = pd.DataFrame({"A1": [10,20,30,40,50], "A2": [40,30,50,60,70], "B": [20, 30, 10, 40, 50],\
"C": [32, 234, 23, 23, 42523], "D": [55,462,564,13,56],})
A1 A2 B C D
0 10 40 20 32 55
1 20 30 30 234 462
2 30 50 10 45 564
3 40 60 40 33 13
4 50 70 50 425 56
我想使用此数据框对多个自变量(A1 和 A2)执行多元线性回归,但我对如何在公式中使用此数据框感到困惑:
result = sm.ols(formula = "A1,A2 ~ B + C + D", data = df).fit()
这不行,因为我只能给一个自变量,我必须制作多个数据帧吗?
具有 2 个自变量的回归相当于 2 个线性回归模型,每个模型具有一个自变量。这概括为 N.
所以,你可以这样做:
result_1 = sm.ols(formula="A1 ~ B + C + D", data=df).fit()
result_2 = sm.ols(formula="A2 ~ B + C + D", data=df).fit()
如果你有超过 2 个并且它们都以 A
开头,例如,我们可以将其概括为
indep_vars = df.filter(regex="^A").columns
dependents = df.columns.difference(indep_vars)
results = [sm.ols(formula=f"{indep} ~ {' + '.join(dependents)}", data=df).fit()
for indep in indep_vars]
然后你可以索引到 results
.
我有这个数据框:
import pandas as pd
import statsmodels.formula.api as sm
df = pd.DataFrame({"A1": [10,20,30,40,50], "A2": [40,30,50,60,70], "B": [20, 30, 10, 40, 50],\
"C": [32, 234, 23, 23, 42523], "D": [55,462,564,13,56],})
A1 A2 B C D
0 10 40 20 32 55
1 20 30 30 234 462
2 30 50 10 45 564
3 40 60 40 33 13
4 50 70 50 425 56
我想使用此数据框对多个自变量(A1 和 A2)执行多元线性回归,但我对如何在公式中使用此数据框感到困惑:
result = sm.ols(formula = "A1,A2 ~ B + C + D", data = df).fit()
这不行,因为我只能给一个自变量,我必须制作多个数据帧吗?
具有 2 个自变量的回归相当于 2 个线性回归模型,每个模型具有一个自变量。这概括为 N.
所以,你可以这样做:
result_1 = sm.ols(formula="A1 ~ B + C + D", data=df).fit()
result_2 = sm.ols(formula="A2 ~ B + C + D", data=df).fit()
如果你有超过 2 个并且它们都以 A
开头,例如,我们可以将其概括为
indep_vars = df.filter(regex="^A").columns
dependents = df.columns.difference(indep_vars)
results = [sm.ols(formula=f"{indep} ~ {' + '.join(dependents)}", data=df).fit()
for indep in indep_vars]
然后你可以索引到 results
.