Compute the p-value of Diebold-Mariano Test
17 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Astrik
el 22 de En. de 2017
Comentada: yl x
el 1 de Nov. de 2021
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]
Respuesta aceptada
Star Strider
el 22 de En. de 2017
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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Hypothesis Tests en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!