Carga de datos

library(printr)
library(readxl)
ventas_empresa_1_ <- read_excel("C:/Users/Paniagua/Downloads/ventas_empresa (1).xlsx")

head(ventas_empresa_1_,n=10)
V C P M
607 197 173 110
590 208 152 107
543 181 150 99
558 194 150 102
571 192 163 109
615 196 179 114
606 203 169 113
593 200 166 113
582 198 159 115
646 221 206 119

Estimación del modelo

library(stargazer)
modelo_ventas<-lm(V ~ C + P + M, data = ventas_empresa_1_)
stargazer(modelo_ventas, type = "html",title = "Modelo de ventas")
Modelo de ventas
Dependent variable:
V
C 0.923***
(0.223)
P 0.950***
(0.156)
M 1.298***
(0.431)
Constant 107.444***
(18.057)
Observations 24
R2 0.980
Adjusted R2 0.977
Residual Std. Error 9.506 (df = 20)
F Statistic 323.641*** (df = 3; 20)
Note: p<0.1; p<0.05; p<0.01

calcular la matriz \(|X^tX|\)

X_mat<-model.matrix(modelo_ventas)
stargazer(head(X_mat,n=6),type = "html")
(Intercept) C P M
1 1 197 173 110
2 1 208 152 107
3 1 181 150 99
4 1 194 150 102
5 1 192 163 109
6 1 196 179 114
XX_matriz<-t(X_mat)%*%X_mat
stargazer(XX_matriz, type = "html")
(Intercept) C P M
(Intercept) 24 5,308 4,503 2,971
C 5,308 1,187,852 1,007,473 664,534
P 4,503 1,007,473 859,157 564,389
M 2,971 664,534 564,389 372,387

Normalización \(|X^tX|\)

Sn<-solve(diag(sqrt(diag(XX_matriz))))
stargazer(Sn,type = "html")
0.204 0 0 0
0 0.001 0 0
0 0 0.001 0
0 0 0 0.002
XX_norm<-(Sn%*%XX_matriz)%*%Sn
stargazer(XX_norm,type = "html",digits = 4)
1 0.9941 0.9917 0.9938
0.9941 1 0.9973 0.9992
0.9917 0.9973 1 0.9978
0.9938 0.9992 0.9978 1

Cálculo del indice de condición

lambdas<-eigen(XX_norm,symmetric = TRUE)
stargazer(lambdas$values,type = "html")
3.987 0.010 0.003 0.001
K<-sqrt(max(lambdas$values)/min(lambdas$values))
print(K)

[1] 71.16349

Calculo de \(|R|\)

Zn<-scale(X_mat[,-1])
stargazer(head(Zn,n=6),type = "html")
C P M
1 -0.983 -0.587 -0.975
2 -0.536 -1.430 -1.187
3 -1.634 -1.510 -1.753
4 -1.105 -1.510 -1.541
5 -1.186 -0.988 -1.046
6 -1.024 -0.346 -0.692
n<-nrow(Zn)
R<-(t(Zn)%*%Zn)*(1/(n-1))
stargazer(R,type = "html",digits = 4)
C P M
C 1 0.8205 0.9312
P 0.8205 1 0.8579
M 0.9312 0.8579 1
determinante_R<-det(R)
print(determinante_R)

[1] 0.03459107

Aplicando la prueba de Farrer Glaubar (Bartlett)

m<-ncol(X_mat[,-1])
n<-nrow(X_mat[,-1])
chi_FG<--(n-1-(2*m+5)/6)*log(determinante_R)
print(chi_FG)
## [1] 71.20805

Valor Critico

gl<-m*(m-1)/2
VC<-qchisq(p = 0.95,df = gl)
print(VC)
## [1] 7.814728
library(psych)
FG_test<-cortest.bartlett(X_mat[,-1])
print(FG_test)
## $chisq
## [1] 71.20805
## 
## $p.value
## [1] 0.000000000000002352605
## 
## $df
## [1] 3

Cálculando los VIF para el modelo estimado

print(R)
##           C         P        M
## C 1.0000000 0.8204521 0.931240
## P 0.8204521 1.0000000 0.857916
## M 0.9312400 0.8579160 1.000000
inversa_R<-solve(R)
print(inversa_R)
##            C          P         M
## C  7.6314513 -0.6223111 -6.572822
## P -0.6223111  3.8389114 -2.713943
## M -6.5728221 -2.7139427  9.449210
VIFs<-diag(inversa_R)
print(VIFs)
##        C        P        M 
## 7.631451 3.838911 9.449210
library(car)
VIFs_car<-vif(modelo_ventas)
print(VIFs_car)
##        C        P        M 
## 7.631451 3.838911 9.449210
library(mctest)
mc.plot(modelo_ventas,vif = 2)