首页 > 解决方案 > Statsmodels OLS 公式中的数据帧计数

问题描述

我正在尝试进行线性回归,以根据另一个数据帧的计数来预测数据帧的计数。我正在使用统计模型。我尝试了以下方法:

X = df1.count()
Y = df2.count()

from statsmodels.formula.api import ols
fit = ols(Y ~ X, data=kak).fit() 
fit.summary()

不允许在 OLS 公式中使用 X 和 Y 变量,我不知道在data=关键字参数处填写什么。我该怎么做呢?

标签: pythonpandasstatsmodels

解决方案


假设您必须使用一维数组XY

import numpy as np

X = np.arange(100)
Y = 2*X + 5

然后,您可以使用下面的行运行线性回归。有两个重要的事情:

  1. to 的第一个参数olsstr包含公式的 a。"Y ~ X"而不是Y ~ X(注意双引号)。
  2. 第二个参数data可以是任何 Python 对象,只要它有键data["X"]data["Y"]. 我在dict这里写了一个,但它也适用于DataFrame. 它基本上可以让statsmodels你了解谁是谁X以及Y你给它的公式。
ols("Y ~ X", {"X": X, "Y": Y}).fit().summary()

输出:

                            OLS Regression Results
==============================================================================
Dep. Variable:                      Y   R-squared:                       1.000
Model:                            OLS   Adj. R-squared:                  1.000
Method:                 Least Squares   F-statistic:                 1.916e+33
Date:                Fri, 21 May 2021   Prob (F-statistic):               0.00
Time:                        14:01:48   Log-Likelihood:                 3055.1
No. Observations:                 100   AIC:                            -6106.
Df Residuals:                      98   BIC:                            -6101.
Df Model:                           1
Covariance Type:            nonrobust
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept      5.0000   2.62e-15   1.91e+15      0.000       5.000       5.000
X              2.0000   4.57e-17   4.38e+16      0.000       2.000       2.000
==============================================================================
Omnibus:                      220.067   Durbin-Watson:                   0.015
Prob(Omnibus):                  0.000   Jarque-Bera (JB):                9.816
Skew:                           0.159   Prob(JB):                      0.00739
Kurtosis:                       1.498   Cond. No.                         114.
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

推荐阅读