This function applies the test for normality proposed in Jarque and Bera (1980).
JarqueBera.test(x, fc = 3.5, ...)
A list containing one htest
object for the null hypothesis that
the kurtosis is
a time series of residuals or an object of class Arima
.
a numeric. Factor to asses whether the first residual observations
are to be omitted. Ignored if x
is not an Arima
object. See details.
further arguments. Currently omitted.
This function is based on function jarque.bera.test
available in package tseries.
Here, the results are split in a test for the null hypothesis that the
skewness is
The input can be a time series of residuals, jarque.bera.test.default
,
or an Arima
object, jarque.bera.test.Arima
from which the residuals
are extracted.
In the former case the whole input series of residuals is used.
In the latter case,
the first fc
times
the standard deviation of the remaining residuals.
x$arma[6] + x$arma[5] * x$arma[7]
, i.e.
the number of regular differences times the periodicity of the data times
the number of seasonal differences. If
If the latter trimming operation is not desired,
the argument fc
can be set to a high value to ensure the complete
series of residuals in considered; or the function can be called
as jarque.bera.test(residuals(x))
.
Missing observations are omitted.
Jarque, C. M. and Bera, A. K. (1980). ‘Efficient test for normality, homoscedasticity and serial independence of residuals’. Economic Letters, 6(3), pp. 255-259.
print.mhtest
.
# fit an ARIMA model to the HICP 011600 series
# ARIMA(0,1,0)(2,0,1) was chosen by forecast::auto.arima(ic = "bic")
# normality of the residuals is rejected at the 5% significance level
# due to an excess of kurtosis
data("hicp")
y <- log(hicp[["011600"]])
fit1 <- arima(y, order = c(0, 1, 0), seasonal = list(order = c(2, 0, 1)))
JarqueBera.test(fit1)
JarqueBera.test(residuals(fit1))
# fit ARIMA model for the same series including outliers that were
# detected by "tso" and for the model chosen by "auto.arima"
# normality of the residuals is not rejected at the 5% significance level
# after including the presence of outliers
mo <- outliers(c("AO", "AO", "LS", "LS"), c(79, 210, 85, 225))
xreg <- outliers.effects(mo, length(y))
fit2 <- arima(y, order = c(1, 1, 0), seasonal = list(order = c(2, 0, 2)),
xreg = xreg)
JarqueBera.test(fit2)
Run the code above in your browser using DataLab