我在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”和 “数据”
答案 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 lm
或import 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()