You are on page 1of 10

# 02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.

28-29 e 1109)

## Econometria: exercício Tabela F3.1, investimento

de Greene (2012,7ed.,p.28-29 e 1109)
08 novembro 2018
Abstract
This is an undergrad student level exercise for class use. The example is drawn following Greene (2012,7ed.,p.28-29
e 1109).

1 Primeiros passos
Os primeiros passos são criar ou abrir um diretório de trabalho. Se optar por criar um novo projeto, haverá a possibilidade de criar em uma
pasta vazia. No presente caso, geramos um dput() dos dados de modo a incorporar (embed) a informação no código.

## To illustrate the computations in a multiple regression, we consider an example based on the

macroeconomic data in Appendix Table F3.1, from 1968 to 1982. To estimate an investment equation, we
first convert the investment and GNP series in Table F3.1 to real terms by dividing them by the CPI and then
scale the two series so that they are measured in trillions of dollars. The other variables in the regression
are a time trend(1,2,…), an interest rate, and the rate of inflation computed as the percentage change in the
CPI.

## Chamando os dados de http://pages.stern.nyu.edu/~wgreene/Text/Edition7/TableF3-1old.txt a partir do arquivo ou a partir do resultado

do dput() . O arquivo TabelF3-1.txt traz dados atualizados para 2000-2014, diferente do texto da página 29.

> dados <- structure(list(year = c(1968, 1969, 1970, 1971, 1972, 1973, 1974,
+ 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982), index = c(1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), gnp = c(873.4,
+ 944, 992.7, 1077.6, 1185.9, 1326.4, 1434.2, 1549.2, 1718, 1918.3,
+ 2163.9, 2417.8, 2633.1, 2937.7, 3057.5), invest = c(133.3, 149.3,
+ 144.2, 166.4, 195, 229.8, 228.7, 206.1, 257.9, 324.1, 386.6,
+ 423, 402.3, 471.5, 421.9), cpi = c(82.54, 86.79, 91.45, 96.01,
+ 100, 105.75, 115.08, 125.79, 132.34, 140.05, 150.42, 163.42,
+ 178.64, 195.51, 207.23), interest = c(5.16, 5.87, 5.95, 4.88,
+ 4.5, 6.44, 7.83, 6.25, 5.5, 5.46, 7.46, 10.28, 11.77, 13.42,
+ 11.02), y = c(0.1614975, 0.1720244, 0.1576818, 0.1733153, 0.195,
+ 0.217305, 0.1987313, 0.1638445, 0.1948768, 0.2314174, 0.2570137,
+ 0.2588423, 0.2252015, 0.2411641, 0.2035902), g = c(1.058154,
+ 1.087683, 1.085511, 1.122383, 1.1859, 1.254279, 1.246264, 1.231576,
+ 1.298171, 1.369725, 1.438572, 1.479501, 1.47397, 1.502583, 1.475414
+ ), p = c(4.4, 5.149019, 5.369282, 4.986331, 4.155817, 5.75, 8.822695,
+ 9.306569, 5.207091, 5.825903, 7.404499, 8.642467, 9.313425, 9.443574,
+ 5.994578)), row.names = c(NA, -15L), class = c("tbl_df", "tbl",
+ "data.frame"))

## São dados de investimento dos Estados Unidos da América em http://people.stern.nyu.edu/wgreene/Text/Edition7/TableF3-1old.txt), contendo

as seguintes variáveis: - year: ano - invest = investimento nominal;
- index = tendência;
- gnp = PNB nominal;
- interest = r = taxa de juros;
- cpi = indice de preco - p = rate of inflation computed as the percentage change in the CPI: taxa de inflação; - y = investimento real - g = PNB
real
Vamos ver como está a tabela importada:

> library(knitr)

## year index gnp invest cpi interest y g p

http://rpubs.com/amrofi/example_greene_F3_1 1/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)

## Estimando o modelo linear de regressao multipla fazendo conforme a expressão do enunciado.

2.1 Estimação
Fazendo as regressoes com uso de logaritmo e depois sem logaritmos.

## > tsdata <- ts(dados, start=c(1968), frequency=1)

> # regressao multipla de y~index+g+interest+p
> mod1 <- lm(y~index+g+interest+p, data=tsdata )

Vamos utilizar o pacote stargazer para organizar as saídas de resultados. Se a saída fosse apenas pelo comando summary, sairia da forma:

> summary(mod1)

Call:
lm(formula = y ~ index + g + interest + p, data = tsdata)

Residuals:
Min 1Q Median 3Q Max
-0.0100884 -0.0024963 0.0004332 0.0028830 0.0079355

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.5090669 0.0539329 -9.439 2.69e-06 ***
index -0.0165896 0.0019294 -8.598 6.23e-06 ***
g 0.6703021 0.0537996 12.459 2.05e-07 ***
interest -0.0024282 0.0011938 -2.034 0.0693 .
p 0.0000639 0.0013188 0.048 0.9623
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Residual standard error: 0.006571 on 10 degrees of freedom

Multiple R-squared: 0.9735, Adjusted R-squared: 0.9629
F-statistic: 91.83 on 4 and 10 DF, p-value: 7.672e-08

Agora, criando uma tabela com a saída do modelo, com o pacote stargazer tem-se, com a geração de AIC e BIC:

http://rpubs.com/amrofi/example_greene_F3_1 2/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)

> library(stargazer)
> mod1\$AIC <- AIC(mod1)
> mod1\$BIC <- BIC(mod1)
>
> library(stargazer)
> star.1 <- stargazer(mod1,
+ align=TRUE,
+ type = "text", style = "all",
+ )

===============================================
Dependent variable:
---------------------------
y
-----------------------------------------------
index -0.017***
(0.002)
t = -8.598
p = 0.00001
g 0.670***
(0.054)
t = 12.459
p = 0.00000
interest -0.002*
(0.001)
t = -2.034
p = 0.070
p 0.0001
(0.001)
t = 0.048
p = 0.963
Constant -0.509***
(0.054)
t = -9.439
p = 0.00001
-----------------------------------------------
Observations 15
R2 0.973
Akaike Inf. Crit. -102.265
Bayesian Inf. Crit. -98.017
===============================================
Note: *p<0.1; **p<0.05; ***p<0.01

2.2 Correlação
A análise de correlação permitirá ter uma ideia inicial de possível multicolinearidade:

> correlacao

## year index gnp invest cpi interest

year 1.0000000 1.0000000 0.9783635 0.9593932 0.9784008 0.8042624
index 1.0000000 1.0000000 0.9783635 0.9593932 0.9784008 0.8042624
gnp 0.9783635 0.9783635 1.0000000 0.9728115 0.9977459 0.8792517
invest 0.9593932 0.9593932 0.9728115 1.0000000 0.9565138 0.8528462
cpi 0.9784008 0.9784008 0.9977459 0.9565138 1.0000000 0.8710475
interest 0.8042624 0.8042624 0.8792517 0.8528462 0.8710475 1.0000000
y 0.7489120 0.7489120 0.7196194 0.8555747 0.6776192 0.5855466
g 0.9786167 0.9786167 0.9609032 0.9856688 0.9473514 0.8039356
p 0.6356942 0.6356942 0.6059782 0.6132829 0.6031172 0.7243053
y g p
year 0.7489120 0.9786167 0.6356942
index 0.7489120 0.9786167 0.6356942
gnp 0.7196194 0.9609032 0.6059782

http://rpubs.com/amrofi/example_greene_F3_1 3/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)
invest 0.8555747 0.9856688 0.6132829
cpi 0.6776192 0.9473514 0.6031172
interest 0.5855466 0.8039356 0.7243053
y 1.0000000 0.8628333 0.4800352
g 0.8628333 1.0000000 0.6362055
p 0.4800352 0.6362055 1.0000000

As correlações em módulo com valores acima de 0.8 podem indicar presença de relação linear entre as variáveis.

## 2.3 Testes de restrição do modelo

Esses testes fazem uma estatística para avaliar um modelo restrito contra o modelo irrestrito. No presente caso, faremos apenas para o
modelo.

> library(car)

## > # F test: APENAS ESPECIFICO AS QUE TERAO TESTE DE OMISSAO

> myH0 <- c("p")
> linearHypothesis(mod1, myH0)

Hypothesis:
p = 0

## Model 1: restricted model

Model 2: y ~ index + g + interest + p

## Res.Df RSS Df Sum of Sq F Pr(>F)

1 11 0.00043191
2 10 0.00043181 1 1.0136e-07 0.0023 0.9623

## 2.4 Teste RESET de Ramsey

> library(lmtest)

## The following objects are masked from 'package:base':

as.Date, as.Date.numeric

## > lmtest::resettest(mod1,power = 2:4,type = "fitted")

RESET test

data: mod1
RESET = 0.18588, df1 = 3, df2 = 7, p-value = 0.9027

## 2.5 Teste de média e normalidade dos resíduos

> # resíduos do modelo
> u.hat<-resid(mod1)
> # teste de média dos resíduos: H0: resíduos têm média zero
> t.test(u.hat)

http://rpubs.com/amrofi/example_greene_F3_1 4/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)

## One Sample t-test

data: u.hat
t = 3.0273e-17, df = 14, p-value = 1
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
-0.003075544 0.003075544
sample estimates:
mean of x
4.341044e-20

Histograma

> # histograma
> hist.mod1<- hist(u.hat, freq = FALSE)

Q-QPlot

> car::qqPlot(mod1)

http://rpubs.com/amrofi/example_greene_F3_1 5/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)

[1] 1 13

> JB.mod1<-tseries::jarque.bera.test(u.hat)
> JB.mod1

## Jarque Bera Test

data: u.hat
X-squared = 0.59194, df = 2, p-value = 0.7438

> library(nortest)
> # Testes
> t1.2 <- ks.test(u.hat, "pnorm") # KS
> t2.2 <- lillie.test(u.hat) # Lilliefors
> t3.2 <- cvm.test(u.hat) # Cramér-von Mises
> t4.2 <- shapiro.test(u.hat) # Shapiro-Wilk
> t5.2 <- sf.test(u.hat) # Shapiro-Francia
> t6.2 <- ad.test(u.hat) # Anderson-Darling
> testes <- c(t1.2\$method, t2.2\$method, t3.2\$method, t4.2\$method, t5.2\$method,
+ t6.2\$method)
> estt <- as.numeric(c(t1.2\$statistic, t2.2\$statistic, t3.2\$statistic,
+ t4.2\$statistic, t5.2\$statistic, t6.2\$statistic))

http://rpubs.com/amrofi/example_greene_F3_1 6/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)
> valorp <- c(t1.2\$p.value, t2.2\$p.value, t3.2\$p.value, t4.2\$p.value, t5.2\$p.value,
+ t6.2\$p.value)

Estatística valor-prob
One-sample Kolmogorov-Smirnov test 0.49683 0.0006048
Lilliefors (Kolmogorov-Smirnov) normality test 0.15500 0.4301853
Cramer-von Mises normality test 0.04203 0.6184573
Shapiro-Wilk normality test 0.94105 0.3957908
Shapiro-Francia normality test 0.95238 0.4796082
Anderson-Darling normality test 0.31601 0.5073463

## Outros testes de normalidade dos resíduos

Estatística valor-prob

## 2.6 Teste de Heterocedasticidade de White

> #teste de White
> # mod1 <- lm(y~year+g+interest+p, data=tsdata )
> m <- mod1
> #rotina do teste com base em m e data
> u2 <- m\$residuals^2
> #sem termos cruzados, no cross-terms
> reg.auxiliar <- lm(u2 ~ year+g+interest+p+
+ I(year^2)+I(g^2)+I(interest^2)+I(p^2))
> summary(reg.auxiliar)

Call:
lm(formula = u2 ~ year + g + interest + p + I(year^2) + I(g^2) +
I(interest^2) + I(p^2))

Residuals:
Min 1Q Median 3Q Max
-3.720e-05 -2.096e-05 6.030e-07 1.640e-05 4.690e-05

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.969e+00 8.571e+00 0.463 0.660
year -4.017e-03 8.675e-03 -0.463 0.660
g 4.534e-04 4.469e-03 0.101 0.923
interest -1.420e-05 6.021e-05 -0.236 0.821
p -7.437e-05 1.256e-04 -0.592 0.575
I(year^2) 1.016e-06 2.194e-06 0.463 0.660
I(g^2) -1.562e-04 1.653e-03 -0.094 0.928
I(interest^2) 6.332e-07 3.162e-06 0.200 0.848
I(p^2) 6.122e-06 8.386e-06 0.730 0.493

## Residual standard error: 3.916e-05 on 6 degrees of freedom

http://rpubs.com/amrofi/example_greene_F3_1 7/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)
Multiple R-squared: 0.4839, Adjusted R-squared: -0.2043
F-statistic: 0.7031 on 8 and 6 DF, p-value: 0.686

## > Ru2<- summary(reg.auxiliar)\$r.squared

> LM <- nrow(data)*Ru2
> #obtendo o numero de regressores menos o intercepto
> k <- length(coefficients(reg.auxiliar))-1
> k # O TESTE TEM k TERMOS REGRESSORES EM reg.auxiliar

[1] 8

## > p.value <- 1-pchisq(LM, k)

> #c("LM","p.value")
> c(LM, p.value)

## [1] 7.2579369 0.5090762

> # pelo pacote lmtest, o bptest dará o mesmo resultado, desde que
> # especifique a mesma regressão auxiliar usada no White acima
> library(lmtest)
> bptest(m,~year+g+interest+p+I(year^2)+I(g^2)+I(interest^2)+I(p^2))

## studentized Breusch-Pagan test

data: m
BP = 7.2579, df = 8, p-value = 0.5091

## 2.7 Correção de White

Não precisa, pois aceitou a homocedasticidade dos resíduos. Mas fiz a correção para ilustrar.

> vcov.white0<-hccm(mod1,type=c("hc1"))
> coeftest(mod1,vcov.white0)

t test of coefficients:

## Estimate Std. Error t value Pr(>|t|)

(Intercept) -5.0907e-01 3.4020e-02 -14.9639 3.578e-08 ***
index -1.6590e-02 1.3905e-03 -11.9304 3.086e-07 ***
g 6.7030e-01 3.3943e-02 19.7481 2.429e-09 ***
interest -2.4282e-03 1.1451e-03 -2.1205 0.05997 .
p 6.3897e-05 1.2446e-03 0.0513 0.96007
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## 2.8 Investigação da Multicolinearidade das variáveis Explicativas

2.8.1 Variance Inflation Factor (VIF)=Fator de Inflação da Variância (FIV)
> # library(car)
> reg1.vif<-vif(mod1)
> reg1.vif

index g interest p
24.138403 24.113602 3.654118 2.141294

## 2.8.2 regressões auxiliares para a regra de Klein

> reg1.index <- lm(index~g+interest+p, data=tsdata )
> summary(reg1.index)

http://rpubs.com/amrofi/example_greene_F3_1 8/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)

Call:
lm(formula = index ~ g + interest + p, data = tsdata)

Residuals:
Min 1Q Median 3Q Max
-1.26201 -0.72377 -0.09786 0.46658 1.82371

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -26.31751 2.84076 -9.264 1.58e-06 ***
g 26.16778 2.90406 9.011 2.07e-06 ***
interest 0.07354 0.18523 0.397 0.699
p 0.01253 0.20606 0.061 0.953
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Residual standard error: 1.027 on 11 degrees of freedom

Multiple R-squared: 0.9586, Adjusted R-squared: 0.9473
F-statistic: 84.84 on 3 and 11 DF, p-value: 6.885e-08

## > reg1.g <- lm(g~index+interest+p, data=tsdata )

> summary(reg1.g)

Call:
lm(formula = g ~ index + interest + p, data = tsdata)

Residuals:
Min 1Q Median 3Q Max
-0.055715 -0.019970 0.006032 0.017044 0.049755

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.9953314 0.0360281 27.627 1.63e-11 ***
index 0.0336554 0.0037350 9.011 2.07e-06 ***
interest 0.0024341 0.0066499 0.366 0.721
p 0.0006912 0.0073883 0.094 0.927
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Residual standard error: 0.03683 on 11 degrees of freedom

Multiple R-squared: 0.9585, Adjusted R-squared: 0.9472
F-statistic: 84.75 on 3 and 11 DF, p-value: 6.924e-08

## > reg1.interest <- lm(interest~index+g+p, data=tsdata )

> summary(reg1.interest)

Call:
lm(formula = interest ~ index + g + p, data = tsdata)

Residuals:
Min 1Q Median 3Q Max
-2.36627 -1.03928 -0.00877 1.21104 2.33681

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.8159 13.5732 -0.281 0.784
index 0.1921 0.4839 0.397 0.699
g 4.9437 13.5062 0.366 0.721
p 0.5063 0.2961 1.710 0.115

## Residual standard error: 1.66 on 11 degrees of freedom

Multiple R-squared: 0.7263, Adjusted R-squared: 0.6517
F-statistic: 9.732 on 3 and 11 DF, p-value: 0.001986

http://rpubs.com/amrofi/example_greene_F3_1 9/10
02/01/2019 RPubs - Econometria: exercício Tabela F3.1, investimento de Greene (2012,7ed.,p.28-29 e 1109)

## > reg1.p <- lm(p~index+g+interest, data=tsdata )

> summary(reg1.p)

Call:
lm(formula = p ~ index + g + interest, data = tsdata)

Residuals:
Min 1Q Median 3Q Max
-2.5409 -0.5644 -0.2925 0.4927 3.2182

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.86426 12.31724 0.151 0.882
index 0.02683 0.44102 0.061 0.953
g 1.15028 12.29468 0.094 0.927
interest 0.41486 0.24257 1.710 0.115

## Residual standard error: 1.502 on 11 degrees of freedom

Multiple R-squared: 0.533, Adjusted R-squared: 0.4056
F-statistic: 4.185 on 3 and 11 DF, p-value: 0.03328

## 2.8.3 Retirando a variável index

> reg2 <- lm(y~g+interest+p, data=tsdata )
> summary(reg2)

Call:
lm(formula = y ~ g + interest + p, data = tsdata)

Residuals:
Min 1Q Median 3Q Max
-0.031352 -0.004970 0.003501 0.009404 0.020617

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.072471 0.050213 -1.443 0.176812
g 0.236190 0.051332 4.601 0.000763 ***
interest -0.003648 0.003274 -1.114 0.288942
p -0.000144 0.003642 -0.040 0.969163
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Residual standard error: 0.01815 on 11 degrees of freedom

Multiple R-squared: 0.7776, Adjusted R-squared: 0.7169
F-statistic: 12.82 on 3 and 11 DF, p-value: 0.0006529

> reg2.vif<-vif(reg2)
> reg2.vif

g interest p
2.877086 3.602503 2.140574

http://rpubs.com/amrofi/example_greene_F3_1 10/10