Compute the p-value of Diebold-Mariano Test
19 ビュー (過去 30 日間)
古いコメントを表示
I am using Diebold-Mariano Test for testing the equal predictive accuracy. The use the code written by Semin Ibisevic (2011) to compute it
function DM = dmtest(e1, e2, h)
% Initialization
T = size(e1,1);
% Define the loss differential
d = e1.^2 - e2.^2;
% Ralculate the variance of the loss differential, taking into account
% autocorrelation.
dMean = mean(d);
gamma0 = var(d);
if h > 1
gamma = zeros(h-1,1);
for i = 1:h-1
sampleCov = cov(d(1+i:T),d(1:T-i));
gamma(i) = sampleCov(2);
end
varD = gamma0 + 2*sum(gamma);
else
varD = gamma0;
end
% Retrieve the diebold mariano statistic DM ~N(0,1)
DM = dMean / sqrt ( (1/T)*varD );
Now, as we see the DM statistic is standard normally distributed.My question is how can I calculate the p-value of this statistic? The null hypothesis is rejected every time the DM is outside the range [-1,96 1,96]
採用された回答
Star Strider
2017 年 1 月 22 日
If it’s normally distributed, you can use either:
P = @(z) erfc(-z/sqrt(2))/2; % Equivalent to ‘normcdf’
or if you have the Statistics and Machine Learning Toolbox, the normcdf function to compute the p-value.
However, it’s probably easier to compare it to the ±1.96 criteria and be done with it.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Hypothesis Tests についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!