import statsmodels.api as sm
对初始dataframe ' data ' 新添列 ' R ',初始操作
N, M = data.shape
data['R'] = ''
data.iloc[0, -1] = 0
for i in range(1,N):
data.iloc[i, -1] = (data.iloc[i, 1] - data.iloc[i-1, -1])/data.iloc[i-1, -1]
使用OLS,
df = data.dropna()
Y = df['R'].copy()
X = df.iloc[:, 0:2]
mod = sm.OLS(Y, X)
res = mod.fit()
coef = list(res.params)
print(coef)
报错:"Pandas data cast to numpy dtype of object.Check input data with np.asarray "
首先,使用网上查到的方法仍报错
mod = sm.OLS(Y, X.astype(float))
可能是新添列出现了问题, print(data['R'])后显示dtype为object,更改
data['R'] = 0
print(data['R'])后显示dt