rpy2版本== 2.9.4
OS == Windows
我正在遍历以下代码并使用rpy2,以便可以使用R的rugarch库。
for stock in lrets.columns:
garch_spec = rugarch.ugarchspec(mean_model=robjects.r('list(armaOrder = c(0,0))'),variance_model=robjects.r('list(garchOrder=c(1,1))'),distribution_model='std')
# Used to convert training set to R list for model input
numpy2ri.activate()
# Train R GARCH model on returns as %
garch_fitted = rugarch.ugarchfit(spec=garch_spec,data=lrets.loc[:,stock].values)
numpy2ri.deactivate()
# Model's fitted standard deviation values
# Revert previous multiplication by 100
fitted = 0.01 * np.array(garch_fitted.slots['fit'].rx2('sigma')).flatten()
df['forecast_std_'+stock] = fitted
# Forecast using R GACRH model
garch_forecast = rugarch.ugarchforecast(garch_fitted,n_ahead=forecast_horizon)
# Model's forecasted standard deviation values
# Revert previous multiplication by 100
forecast = 0.01 * np.array(garch_forecast.slots['forecast'].rx2('sigmaFor')).flatten()
forecast = pd.DataFrame(data={stock: forecast},index=forecasts_dates)
forecasts_std_into_future_df = pd.concat([forecasts_std_into_future_df,forecast],axis=1,join='outer')
但是,代码会在不同的循环迭代中随机崩溃,并出现rpy2.rinterface.RNULLType错误,例如该错误可能会出现在第一个循环中,但是在我再次运行代码之后,在接下来的几次迭代中它似乎还不错。我不确定这是怎么回事,因为我是rpy2的新手,并不熟悉R。