AttributeError:模块'statsmodels.formula.api'在spyder中没有属性'OLS'

时间:2019-11-20 17:17:01

标签: machine-learning linear-regression data-science spyder statsmodels

import statsmodels.formula.api as sm
X = np.append(arr = np.ones((50, 1)).astype(int) , values = X, axis = 1)
X_opt = X[:, [0 ,1, 2, 3, 4, 5]]
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()
  

回溯(最近通话最近一次):

     

文件“”,第1行,在       regressor_OLS = sm.OLS(endog = y,exog = X_opt).fit()

     

AttributeError:模块'statsmodels.formula.api'没有属性   'OLS'

2 个答案:

答案 0 :(得分:0)

在Python中,函数名称区分大小写。请注意,您正在调用函数OLS(全部大写),而正确的方法是全部小写。

请注意,在statsmodels程序包中有两个OLS模块:

statsmodels.regression.linear_model.OLS

statsmodels.formula.api.ols

您正在导入公式API,但应用了线性模型函数。您需要了解想要的那个。

有关更多信息,请参考以下链接:https://www.statsmodels.org/dev/generated/statsmodels.formula.api.ols.html#statsmodels.formula.api.ols https://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.OLS.html#statsmodels.regression.linear_model.OLS

答案 1 :(得分:0)

尝试一下:

    import statsmodels.api as sm
    x = np.append(arr=np.ones((50,1)).astype(int),values=x,axis=1)
    x_opt=x[:,[0,1,2,3,4,5]]
    regressor_ols=sm.OLS(endog=y,exog=x_opt).fit()

这将起作用,因为statsmodels.api包含普通最小二乘法(OLS) 有关更多信息,请查看此链接 https://www.statsmodels.org/devel/generated/statsmodels.regression.linear_model.OLS.html