#
NONPAR v2.1
#
#
Nonparametric estimation of the density and empirical distribution for a time
series
#
# 2
data series: (1) simulated data and (2) the quarterly growth rate of the US
Gross National Product
#
# For
the second series we specifically have the Real
#
Federal Reserve Bank of
#
#
Initialize
clear
ginit
clc
ranseed
#
Simulate a nonlinear autoregressive model, pp. 16-17 of reference book
N =
1400.
zt =
zeros(N,1)
et =
unirnd(-1.,1.,N,1)
for i
= 2 to N begin
zt(i) = 2*zt(i-1)/(1+0.8*zt(i-1)^2) + et(i)
end
#
Estimate and plot the density using the second reference bandwidth
[grid,f,h]
= density(zt,1,-3.5,+3.5,201,"hopt2",0,1)
# Now
plot the simulated series and the density in a single window
gaddwin()
up =
gaddview(0.,0.5,1.,0.5)
gxaxis("linear",0,N,10)
gxgrid("major")
gygrid("major")
gtitle("Simulated
Nonlinear Autoregressive Time Series")
gplot(zt)
down
= gaddview(0.,0.,1.,0.5)
gxgrid("major")
gygrid("major")
gcolor("red")
gtitle(["Kernel
Density estimated with bandwidth h = ",ntoa(h)])
gplot(grid,f)
# Now
estimate and plot the empirical distribution function and compare it with the
standard normal
#
#
Note that the distribution of zt is not normal but a Kolmogorov-Smirnov test
cannot reject the null
#
hypothesis of normality (the p-value is, however, obtained under independence).
Try a larger sample value,
# for
example N = 1500 to see how the result changes
#
std_zt
= (zt-colmean(zt))/colstd(zt)
[grid,F]
= distribution(std_zt,-3.5,+3.5,101,0)
gaddwin()
gtitle("EDF
for Simulated Nonlinear Autoregressive Time Series (black) and the N(0,1)
distribution (red)")
gxgrid("major")
gygrid("major")
gyaxis("linear",0,1,10)
gcolor({"black","red"})
gplot(grid,[F,cnormal(grid)])
print
"P-value of Kolmogorov-Smirnov test (simulated) =
",kolsmi(std_zt,function cnormal)
print
#
Read US data and divide by 1e+4
N =
238.
usgnp
= read("data\usgnp4706.prn","double",N,1)/1e+4
#
Convert to quarterly growth rate
gusgnp
= diff(log(usgnp))*100
#
Estimate and plot the density using the second reference bandwidth
[grid,f,h]
= density(gusgnp,1,-4.5,+4.5,101,"hopt2",0,1)
# Now
plot the series and the density in a single window
gaddwin()
up =
gaddview(0.,0.5,1.,0.5)
gxaxis("linear",0,N+2,10)
gxgrid("major")
gygrid("major")
gtitle("Quarterly
Growth Rate (in %) of the Real
gplot(gusgnp)
down
= gaddview(0.,0.,1.,0.5)
gxgrid("major")
gygrid("major")
gcolor("red")
gtitle(["Kernel
Density estimated with bandwidth h = ",ntoa(h)])
gplot(grid,f)
# Now
estimate and plot the empirical distribution function and compare it with the
standard normal
std_gusgnp
= (gusgnp-colmean(gusgnp))/colstd(gusgnp)
[grid,F]
= distribution(std_gusgnp,-4.5,+4.5,101,0)
gaddwin()
gtitle("EDF
of the Quarterly Growth of the US GNP (black) and the N(0,1) distribution
(red)")
gxgrid("major")
gygrid("major")
gyaxis("linear",0,1,10)
gcolor({"black","red"})
gplot(grid,[F,cnormal(grid)])
print
"P-value of Kolmogorov-Smirnov test (US GNP)=
",kolsmi(std_gusgnp,function cnormal)
print