Using gret l for Principles of Econometrics, 4th Edition
Testing for Normality
Your book discusses the Jarque-Bera test for normality which is computed using the skewness and kurtosis of the least squares residuals. To compute the Jarque-Bera statistic, you’ll first need to obtain the summary statistics from your data series.
From gretl script
1 open "@gretldirdatapoehip. gdt"
2 summary
You could also use the point and click method to get the summary statistics. This is accomplished from the output window of your regression. Simply highlight the hip series and then choose Data>Summary statistics>selected variables from the pull-down menu. This yields the results in Table C.1.
One thing to note, gretl reports excess kurtosis rather than kurtosis. The excess kurtosis is measured relative to that of the normal distribution which has kurtosis of three. Hence, your computation is
T „ N 2 (Excess Kurtosis)[92] [93] [94] [95] [96] [97] [98] JB = Skewness2 + 6 4 |
0.01382 + |
—0.668472 4 |
(C.8)
Using the results in section C.1 for the computation of skewness and kurtosis, the gretl code is:
1 set echo off
2 open "@gretldirdatapoehip. gdt"
3 summary
4 scalar y_bar = mean(y)
5 scalar y_var = sum((y-y_bar)"2)/($nobs-1)
6 scalar y_se = sqrt(y_var)
7 scalar se_ybar = sqrt(y_var/$nobs)
8
8 scalar mu2 = sum((y-y_bar)"2)/($nobs)
9 scalar mu3 = sum((y-mean(y))"3)/($nobs)
10 scalar mu4 = sum((y-mean(y))"4)/($nobs)
11 printf "n mean = %5.4fn sample variance = %5.4fn sample
12 std deviation = %5.4fn",y_bar, y_var, y_se
13 printf "n mu2 = %5.4fn mu3 = %5.4fn mu4 = %5.4fn",mu2,mu3,mu4
15
14 scalar sig_tild = sqrt(mu2)
15 scalar skew = mu3/sig_tild"3
16 scalar ex_kurt = mu4/sig_tild"4 -3
17 printf "n std dev. of the mean = %5.4fn skewness = %5.4fn
18 excess kurtosis = %5.4fn",se_ybar, skew, ex_kurt
21
19 # Using the estimates
20 scalar zs = (18 - mean(y))/sd(y)
21 pvalue z zs
22 scalar zz = invcdf(n,.95)
23 scalar ystar = sd(y)*zz+mean(y)
24 print ystar
28
25 # Confidence interval
26 open "@gretldirdatapoehip. gdt"
27 scalar y_sd = sd(y)
28 scalar ybar_sd = y_sd/sqrt($nobs)
29 scalar lb = mean(y) - 2.01*ybar_sd
30 scalar ub = mean(y) + 2.01*ybar_sd
31 scalar lb = mean(y) - critical(t,$nobs-1,0.025)*ybar_sd
32 scalar ub = mean(y) + critical(t,$nobs-1,0.025)*ybar_sd
33 printf "nThe 95% confidence interval is (%5.4f, %6.4f)n",lb, ub
38
34 # t-test
35 open "@gretldirdatapoehip. gdt"
36 scalar df = $nobs-1
37 scalar y_bar = mean(y)
38 scalar y_sd = sd(y)
39 scalar ybar_sd = y_sd/sqrt($nobs)
40 scalar tstat = (y_bar-16.5)/(ybar_sd)
41 scalar c = critical(t, df,0.025)
42 pvalue t df tstat
43 scalar tstat = (y_bar-17)/(ybar_sd)
scalar c = critical(t, df,0.025) pvalue t df tstat
# Jarque-Bera
scalar sig_tild = sqrt(sum((y-mean(y))rt2)/($nobs))
scalar mu3 = sum((y-mean(y))rt3)/($nobs)
scalar mu4 = sum((y-mean(y))rt4)/($nobs)
scalar skew = mu3/sig_tildrt3
scalar kurt = mu4/sig_tildrt4
scalar JB = ($nobs/6)*(skewrt2+(kurt-3)rt2/4)
49 50 51 52 53 54 55 56 57 58 59 |
pvalue X 2 JB
critical
Output: same type as input Arguments: c (character)
... (see below) p (scalar, series or matrix)
Examples: cl = critical(t, 20, 0.02S)
c2 = critical(F, 4, 48, 0.05)
Critical value calculator. Returns jrsuch that P(X> x) = p, where the distribution Xs determined by the character c. Between the arguments rand p, zero or more additional scalar arguments are required to specify the parameters of the distribution, as follows.
• Standard normal (c = z, n, or N): no extra arguments
• Student's t (t): degrees of freedom
• Chi square (c, x, or X): degrees of freedom
• Snedecor's F (f or F): df (num.); df (den.)
• Binomial (b or B): probability; trials
• Poisson (p or P): mean
See also cdf, invcdf, pvalue.
Figure C.1: Obtaining critical values from the t distribution using hansl.