Statsmodels.api线性回归预测中的形状不匹配

问题描述

我正在使用以下代码

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st
import statsmodels.api as sm

def regress(y,X):
  X = sm.add_constant(X)
  model = sm.OLS(y,X).fit()
  ess = model.ess
  ssr = model.ssr
  tss = np.add(ess,ssr)
  dfr = model.df_resid
  ser = np.sqrt(model.scale)
  print(model.summary2())
  print(f'ESS: {np.round(ess,3)}')
  print(f'SSR: {np.round(ssr,3)}')
  print(f'TSS: {np.round(tss,3)}')
  print(f'RSE: {np.round(ser,3)}')
  return model

X = st.uniform.rvs(loc=-5,scale=10,size=100)
u = st.norm.rvs(loc=50,scale=1,size=100)
y  = np.add(np.square(X),np.add(np.multiply(X,2),u)) 

quad_model = regress(y=y,X=X)
quad_pred = quad_model.predict(X)

beta_0 = quad_model.params[0]
beta_1 = quad_model.params[1]

y1 = beta_0 + beta_1*X

plt.subplots(1,1,figsize=(10,5),dpi=100)
plt.scatter(X,y,facecolors='none',edgecolors='k')

plt.plot(X,y1,color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

在构造quad_pred时出现以下错误

形状(1,100)和(2,)不对齐:100(dim 1)!= 2(dim 0)

X.shape是(100,)而y.shape是(100,)。

请建议我要去哪里了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)