data_epoch = data.iloc[:, 0:1]  # 导入历元时间
data1 = data_SSR_GPS_clk_ver.iloc[:, 0:1]  # 保存G01筛除粗差后的钟差值
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(data1, label='Actual')
ax.legend()
plt.show()
train_size = int(sat_epoch * 0.7)
data_train = data1[:train_size]
data_test = data1[train_size:]

# 使用RSW窗口对数据进行处理
window_size = 20
data1 = data1.rolling(window_size).mean().dropna()

arima_model = auto_arima(data1, seasonal=False, error_action='ignore', suppress_warnings=True)
predictions_data, confint = arima_model.predict(n_periods=len(data_test), return_conf_int=True)

# 对预测值进行反向处理,还原为原始数据的值
predictions_data = pd.Series(predictions_data, index=data_test.index)
predictions_data = predictions_data.rolling(window_size).mean().dropna()

rmse = np.sqrt(mean_squared_error(data_test, predictions_data))
r2 = r2_score(data_test, predictions_data)
print('ARIMA Model RMSE:', rmse)
print('ARIMA Model R^2 Score:', r2)

可以使用pandas的rolling函数来实现RSW窗口的处理。首先,设置窗口长度为20,然后使用data1.rolling(window_size).mean().dropna()对数据进行平滑处理。最后,对预测值进行反向处理,还原为原始数据的值,并计算RMSE和R^2评分。

使用RSW窗口平滑钟差数据并预测 - ARIMA模型应用

原文地址: https://www.cveoy.top/t/topic/nyAa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录