numeral 1
options(scipen = 99999)
load("C:/Users/gusta_000/Desktop/Econometria/Guia/modelo_ventas.RData")
matriz_X <- model.matrix(modelo_ventas)
matriz_XX <- t(matriz_X)%*%matriz_X
#Calculo de la matriz A
matriz_A <- solve(matriz_XX)%*%t(matriz_X)
matriz_A[1:4,1:4]
## 1 2 3 4
## (Intercept) -0.01128647020 0.01410377973 0.0350639188 0.0004283381
## tv -0.00006704103 0.00003094914 -0.0006120193 -0.0002120642
## periodico 0.00139818182 -0.00190724690 -0.0025468816 0.0002293243
## radio -0.00058002134 0.00064866654 -0.0001093284 -0.0001899710
#Calculo de la matriz P
matriz_P <- matriz_X%*%matriz_A
matriz_P[1:4,1:4]
## 1 2 3 4
## 1 0.03181459 0.00370346 0.01758786 0.02250872
## 2 0.00370346 0.02460480 0.03447285 0.01212022
## 3 0.01758786 0.03447285 0.06766822 0.02641047
## 4 0.02250872 0.01212022 0.02641047 0.02031981
#Calculo de la matriz M
n <- nrow(matriz_X)
matriz_M <- diag(n)-matriz_P
matriz_M[1:4,1:4]
## 1 2 3 4
## 1 0.96818541 -0.00370346 -0.01758786 -0.02250872
## 2 -0.00370346 0.97539520 -0.03447285 -0.01212022
## 3 -0.01758786 -0.03447285 0.93233178 -0.02641047
## 4 -0.02250872 -0.01212022 -0.02641047 0.97968019
numeral 2
library(magrittr)
residuos_modelo_ventas <- modelo_ventas$residuals
datos_modelo <- modelo_ventas$model
residuos_matrices <- matriz_M%*%datos_modelo$ventas
cbind(residuos_matrices,residuos_modelo_ventas, residuos_modelo_ventas-residuos_matrices)%>%round(digits = 2) %>% as.data.frame() -> comparacion
names(comparacion) <- c("Por matrices", "En el modelo", "Diferencias")
head(comparacion, n = 10)
## Por matrices En el modelo Diferencias
## 1 -15.93 -15.93 0
## 2 19.33 19.33 0
## 3 38.02 38.02 0
## 4 -15.43 -15.43 0
## 5 5.16 5.16 0
## 6 80.22 80.22 0
## 7 -16.35 -16.35 0
## 8 -22.89 -22.89 0
## 9 -34.40 -34.40 0
## 10 46.09 46.09 0
numeral 3
eigen(x = matriz_XX, symmetric = TRUE) -> descomposicion
auto_valores <- descomposicion$values
print(auto_valores)
## [1] 311421698.6388 70252.5341 40973.4590 3714.3627 12.7735
print(auto_valores>0)
## [1] TRUE TRUE TRUE TRUE TRUE