In [1]:
# rm(list=ls())
options(OutDec = ",")
#===================================================================
# Multicolinearidade
# O modelo:
# y representa emprego.
# y = beta0+beta1*ano+beta2*preco+beta3*PIB+beta4*militar+epsilon
#===================================================================
dataxy <- read.table("../dados/exemplo_09.txt",header=T)
print(cor(dataxy))
Employ Price GNP Armed Year Employ 1,0000000 0,9708985 0,9835516 0,4573074 0,9713295 Price 0,9708985 1,0000000 0,9915892 0,4647442 0,9911492 GNP 0,9835516 0,9915892 1,0000000 0,4464368 0,9952735 Armed 0,4573074 0,4647442 0,4464368 1,0000000 0,4172451 Year 0,9713295 0,9911492 0,9952735 0,4172451 1,0000000
In [2]:
#===================================================================
# Ajuste com 15 dados.
#===================================================================
ajuste1 <- lm(Employ~Year+Price+GNP+Armed,data=dataxy[1:15,])
print(summary(ajuste1))
Call:
lm(formula = Employ ~ Year + Price + GNP + Armed, data = dataxy[1:15,
])
Residuals:
Min 1Q Median 3Q Max
-760,49 -281,76 -16,70 82,24 1182,69
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1,459e+06 7,142e+05 2,043 0,06825 .
Year -7,218e+02 3,700e+02 -1,951 0,07965 .
Price -1,811e+02 1,355e+02 -1,336 0,21101
GNP 9,107e-02 2,026e-02 4,495 0,00115 **
Armed -7,494e-02 2,611e-01 -0,287 0,77999
---
Signif. codes: 0 ‘***’ 0,001 ‘**’ 0,01 ‘*’ 0,05 ‘.’ 0,1 ‘ ’ 1
Residual standard error: 561,6 on 10 degrees of freedom
Multiple R-squared: 0,9798, Adjusted R-squared: 0,9717
F-statistic: 121 on 4 and 10 DF, p-value: 2,006e-08
In [3]:
#===================================================================
# Ajuste com 16 dados.
#===================================================================
ajuste2 <- lm(Employ~Year+Price+GNP+Armed,data=dataxy)
summary(ajuste2)
Call:
lm(formula = Employ ~ Year + Price + GNP + Armed, data = dataxy)
Residuals:
Min 1Q Median 3Q Max
-905,8 -342,7 -107,6 216,8 1437,7
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1,169e+06 8,359e+05 1,399 0,18949
Year -5,765e+02 4,335e+02 -1,330 0,21049
Price -1,977e+01 1,389e+02 -0,142 0,88940
GNP 6,439e-02 1,995e-02 3,227 0,00805 **
Armed -1,015e-02 3,086e-01 -0,033 0,97436
---
Signif. codes: 0 ‘***’ 0,001 ‘**’ 0,01 ‘*’ 0,05 ‘.’ 0,1 ‘ ’ 1
Residual standard error: 667,3 on 11 degrees of freedom
Multiple R-squared: 0,9735, Adjusted R-squared: 0,9639
F-statistic: 101,1 on 4 and 11 DF, p-value: 1,346e-08
In [4]:
#===================================================================
# Verificando o número de condição de XtX.
#===================================================================
X <- cbind(rep(1,16),as.matrix(dataxy[,2:5]))
XtX <- t(X)%*%X
for(i in 1:5) XtX[,i] <- XtX[,i]/sqrt(sum(XtX[,i]^2))
raizcar <- svd(XtX)$d
ncond <- sqrt(max(raizcar)/min(raizcar))
print(ncond)
[1] 5570620
In [5]:
#===================================================================
# Fim
#===================================================================