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)
| 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")
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)
