from_formula()缺少2个必需的位置参数:“ formula”和“ data”

时间:2019-09-12 12:02:14

标签: python machine-learning python-3.7 statsmodels linearmodels

我在ols下遇到statsmodels.formula.api函数的位置参数错误

尝试了statsmodels.regression.linear_model,并将OLS更改为ols,反之亦然。

import statsmodels.regression.linear_model 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()

预期输出适合于回归模型。但是我遇到了这个错误:

  

from_formula()缺少2个必需的位置参数:“ formula”和   “数据”

7 个答案:

答案 0 :(得分:2)

要使该示例正常工作(我假设您正在运行udemy机器学习课程,该示例与本教程的不同之处),我必须更改import语句。他们使用的库不再位于OLS函数所在的位置。

将statsmodels.regression.linear_model导入为lm

然后

regressor_ols = lm.OLS(endog = y,exog = x_optimal).fit()

答案 1 :(得分:1)

这应该有效:

import statsmodels.api as smf;

X = np.append(arr=np.ones((50,1),dtype=np.int), values = X,axis = 1)

X_opt = X[:,[0,1,2,3,4,5]]

regressor_ols = smf.OLS(y,X_opt).fit()

答案 2 :(得分:0)

删除

import statsmodels.regression.linear_model as sm

并按照以下说明导入 statsmodels.api

import statsmodels.api as sm

这门课程很老,这就是为什么代码片段过时了,不知道为什么他们不再更新它了。

答案 3 :(得分:0)

请确保该模块是Linear_model类的一部分,因此请使用以下代码使其正常工作。

import statsmodels.regression.linear_model as lm
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 = lm.OLS(endog = y, exog = X_opt).fit()

答案 4 :(得分:0)

使用import statsmodels.regression.linear_model as lmimport statsmodels.api as sm

import statsmodels.regression.linear_model as lm

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

答案 5 :(得分:0)

这对我有用

import statsmodels.api as sm

X=np.insert(X,0,np.ones(X.shape[0]),axis=1)

colList=list()

for i in range(X.shape[1]):
    colList.append(i)

X_opt=np.array(X[:, colList], dtype=float)

regressor_OLS=sm.OLS(endog=y,exog=X_opt).fit()

答案 6 :(得分:0)

解决方案1:

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

解决方案2:

import statsmodels.regression.linear_model as lm
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 = lm.OLS(endog=y, exog=x_opt).fit()