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
#===================================================================