Open JRHU0048 opened 9 months ago
% Raw data
data = [6.1000;30.0500 ;8.0000 ; 23.1000 ; 46.0000; 2.5000 ;28.1000;222.1000;332.6000];
% time points
time_points = 1:numel(data);
% Converts data into double array
data_array = double(data);
% Fit the ARIMA model
arima_order = [5, 1, 1]; %模型的参数需要设置
% Fit the model with existing data
arima_model = arima('ARLags', 1:arima_order(1), 'D', arima_order(2), 'MALags', 1:arima_order(3));
fit = estimate(arima_model, data_array);
% Forecast data for the next ten years
future_years = 12; %预测的年份
future_time_points = time_points(end) + (1:future_years);
forecast_data = forecast(fit, future_years, 'Y0', data_array);
% Plot line charts of raw and forecasted data
plot(time_points, data_array, 'o-', future_time_points, forecast_data, 'x-');
title('ARIMA Model Fitting');
xlabel('point in time');
ylabel('data-value');
legend('raw data', 'predicted data');
% Display Gridlines (Optional)
grid on;
% Print the forecast results
disp('raw data:');
disp(data');
disp('Forecast data:');
disp(forecast_data');
在计量经济学中,单位根检验是用来检验时间序列数据是否具有单位根(非平稳性)的方法之一。常用的单位根检验方法包括ADF检验(Augmented Dickey-Fuller test)和PP检验(Phillips-Perron test)。以下是使用Python和MATLAB进行ADF检验的代码示例:
Python代码(使用Statsmodels库(测试通过)
上面的代码基本实现了当差分阶数为0时的ADF检验相关结果,若想要一次输出差分阶数为0,1,2时的各个结果,若数据量较少,可以人工差分处理后多次使用上面的代码,也可以使用下面的代码一次输出:(测试不通过)
1.通过分析t值,分析其是否可以显著地拒绝序列不平稳的原假设(P<0.05)。 2.若呈显著性,表明拒绝序列不平稳的原假设,该序列为一个平稳的时间序列。 3.若不呈显著性,表明不能拒绝序列不平稳的原假设,该序列为一个不平稳的时间序列,考虑对数据进行差分,一般不超过二阶差分。
MATLAB代码 (没有测试过)