#
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