rpy2 версия == 2.9.4
OS == Windows
Я перебираю код ниже и использую rpy2, так что я могу использовать библиотеку rugarch R.
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')
Однако код будет случайным образом обрабатывать sh при различных итерациях l oop с ошибкой rpy2.rinterface.RNULLType, например ошибка может появиться в первом l oop, но после запуска кода опять же, это нормально до следующих нескольких итераций. Я не уверен, что здесь происходит, так как я новичок в rpy2 и не знаком с R.