问题描述
我正在使用以下代码:
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 (将#修改为@)