Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在具有多个独立变量的数据框架上运行OLS回归?_Python_Pandas_Dataframe_Linear Regression - Fatal编程技术网

Python 如何在具有多个独立变量的数据框架上运行OLS回归?

Python 如何在具有多个独立变量的数据框架上运行OLS回归?,python,pandas,dataframe,linear-regression,Python,Pandas,Dataframe,Linear Regression,我有这个数据框: 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]

我有这个数据框:

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()

这不起作用,因为我只能给出一个自变量,我必须生成多个数据帧吗?

具有两个自变量的回归相当于两个分别具有一个自变量的线性回归模型。这推广到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]

然后您可以索引到
结果中

您可以使用
result1=sm.ols(formula=“A1~B+C+D”,data=df).fit()和
result2=sm.ols(formula=“A2~B+C+D”,data=df).fit()顺序运行它们。