library(readr)
Practica_2 <- read_csv("Practica_2.csv")
head(Practica_2, n=5)
## # A tibble: 5 x 3
## Y X1 X2
## <dbl> <dbl> <dbl>
## 1 320 50 7.4
## 2 450 53 5.1
## 3 370 60 5.1
## 4 470 63 3.9
## 5 420 69 1.4
library(readxl)
Practica_2 <- read_excel("Practica_2.xlsx")
head(Practica_2,n=6)
## # A tibble: 6 x 3
## Y X1 X2
## <dbl> <dbl> <dbl>
## 1 320 50 7.4
## 2 450 53 5.1
## 3 370 60 4.2
## 4 470 63 3.9
## 5 420 69 1.4
## 6 500 82 2.2
#Correr Modelo
library(stargazer)
modelo_clase<-lm(formula = Y~X1+X2+I(X1*X2), data = Practica_2)
# Usando Summary
summary(modelo_clase)
##
## Call:
## lm(formula = Y ~ X1 + X2 + I(X1 * X2), data = Practica_2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -108.527 -37.595 -2.745 52.292 102.808
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 303.50401 71.54695 4.242 0.000621 ***
## X1 2.32927 0.47698 4.883 0.000166 ***
## X2 -25.07113 11.48487 -2.183 0.044283 *
## I(X1 * X2) 0.28617 0.07681 3.726 0.001840 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 67.68 on 16 degrees of freedom
## Multiple R-squared: 0.9634, Adjusted R-squared: 0.9566
## F-statistic: 140.4 on 3 and 16 DF, p-value: 1.054e-11
#Usando stargazer
stargazer(modelo_clase,title = "Practica_2",type = "text",digits = 6)
##
## Practica
## ===============================================
## Dependent variable:
## ---------------------------
## Y
## -----------------------------------------------
## X1 2.329275***
## (0.476982)
##
## X2 -25.071130**
## (11.484870)
##
## I(X1 * X2) 0.286169***
## (0.076813)
##
## Constant 303.504000***
## (71.546950)
##
## -----------------------------------------------
## Observations 20
## R2 0.963414
## Adjusted R2 0.956554
## Residual Std. Error 67.677750 (df = 16)
## F Statistic 140.440600*** (df = 3; 16)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
mat_x<-model.matrix(modelo_clase)
#Matriz X'X
mat_xx<-t(mat_x)%*%mat_x
print(mat_xx)
## (Intercept) X1 X2 I(X1 * X2)
## (Intercept) 20.0 3036.0 121.20 18754.2
## X1 3036.0 574618.0 18754.20 3537032.8
## X2 121.2 18754.2 999.94 152648.7
## I(X1 * X2) 18754.2 3537032.8 152648.68 27682881.9
# Matriz A
solve(mat_xx)%*%t(mat_x)->mat_A
print(mat_A)
## 1 2 3 4
## (Intercept) -0.0269643876 2.178606e-01 0.294409235 0.3152011324
## X1 0.0003999215 -1.025487e-03 -0.001444105 -0.0015490795
## X2 0.0388047049 -6.536309e-03 -0.022176619 -0.0266881805
## I(X1 * X2) -0.0002334413 2.923967e-05 0.000116450 0.0001404267
## 5 6 7 8
## (Intercept) 0.5227546767 0.3904003745 2.028464e-02 9.313148e-02
## X1 -0.0026669364 -0.0018298820 9.025813e-05 -2.321165e-04
## X2 -0.0659240840 -0.0449422757 1.799521e-02 3.797334e-03
## I(X1 * X2) 0.0003536128 0.0002236575 -9.921704e-05 -3.296119e-05
## 9 10 11 12
## (Intercept) -0.2653043830 -0.2622967332 0.0443152123 -0.0545535472
## X1 0.0011696748 0.0005835039 0.0002043562 0.0012880664
## X2 0.0665768143 0.0616052800 0.0015591322 0.0122720018
## I(X1 * X2) -0.0002833581 -0.0001595452 -0.0000370955 -0.0001763267
## 13 14 15 16
## (Intercept) -0.072917817 -1.500641e-02 -0.2239786763 -0.3262481783
## X1 0.001143413 4.212596e-04 0.0024639940 0.0033485820
## X2 0.010376875 -4.020606e-03 0.0315412720 0.0476387398
## I(X1 * X2) -0.000121078 2.711295e-05 -0.0003105392 -0.0004487073
## 17 18 19 20
## (Intercept) -0.1381839072 0.1833273040 0.2993764155 0.0043929480
## X1 0.0015362166 -0.0014987044 -0.0025763624 0.0001734280
## X2 0.0122853632 -0.0478476959 -0.0696793809 -0.0166375793
## I(X1 * X2) -0.0001273987 0.0004096502 0.0006014359 0.0001280827
# Matriz P
mat_xx%*%mat_A->mat_P
print(mat_P)
## 1 2 3 4 5 6 7 8 9 10 11
## (Intercept) 1.0 1.0 1.0 1.0 1.0 1.0 1 1.0 1.0 1.0 1.0
## X1 50.0 53.0 60.0 63.0 69.0 82.0 100 104.0 113.0 130.0 150.0
## X2 7.4 5.1 4.2 3.9 1.4 2.2 7 5.7 13.1 16.4 5.1
## I(X1 * X2) 370.0 270.3 252.0 245.7 96.6 180.4 700 592.8 1480.3 2132.0 765.0
## 12 13 14 15 16 17 18 19 20
## (Intercept) 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
## X1 181.0 202.0 217.0 229.0 240.0 243.0 247.0 249.0 254.0
## X2 2.9 4.5 6.2 3.2 2.4 4.9 8.8 10.1 6.7
## I(X1 * X2) 524.9 909.0 1345.4 732.8 576.0 1190.7 2173.6 2514.9 1701.8
#Martiz M
mat_M<-diag(x=20,nrow = 4,ncol = 20)-mat_P
print(mat_M)
## 1 2 3 4 5 6 7 8 9
## (Intercept) 19.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1 -1.0 -1.0
## X1 -50.0 -33.0 -60.0 -63.0 -69.0 -82.0 -100 -104.0 -113.0
## X2 -7.4 -5.1 15.8 -3.9 -1.4 -2.2 -7 -5.7 -13.1
## I(X1 * X2) -370.0 -270.3 -252.0 -225.7 -96.6 -180.4 -700 -592.8 -1480.3
## 10 11 12 13 14 15 16 17 18
## (Intercept) -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0
## X1 -130.0 -150.0 -181.0 -202.0 -217.0 -229.0 -240.0 -243.0 -247.0
## X2 -16.4 -5.1 -2.9 -4.5 -6.2 -3.2 -2.4 -4.9 -8.8
## I(X1 * X2) -2132.0 -765.0 -524.9 -909.0 -1345.4 -732.8 -576.0 -1190.7 -2173.6
## 19 20
## (Intercept) -1.0 -1.0
## X1 -249.0 -254.0
## X2 -10.1 -6.7
## I(X1 * X2) -2514.9 -1701.8
Practica_2$Y->mat_Y
print(mat_Y)
## [1] 320 450 370 470 420 500 570 640 670 780 690 700 910 930 940
## [16] 1070 1160 1210 1450 1220
#Vector de coeficiente estimado β
modelo_clase$coefficients
## (Intercept) X1 X2 I(X1 * X2)
## 303.5040143 2.3292746 -25.0711288 0.2861686
#Matriz Varianza-covarianza de los parametros V[β]
var_covar<-vcov(modelo_clase)
print(var_covar)
## (Intercept) X1 X2 I(X1 * X2)
## (Intercept) 5118.96645 -31.10997447 -722.8989902 4.493190281
## X1 -31.10997 0.22751204 4.5755139 -0.033223456
## X2 -722.89899 4.57551391 131.9021598 -0.822206343
## I(X1 * X2) 4.49319 -0.03322346 -0.8222063 0.005900226
#Intervalos de confianza
confint(object = modelo_clase,level = .95)
## 2.5 % 97.5 %
## (Intercept) 151.8312499 455.1767786
## X1 1.3181175 3.3404318
## X2 -49.4179582 -0.7242993
## I(X1 * X2) 0.1233324 0.4490047
#Valores Ajustados Y
plot(modelo_clase$fitted.values,main = "Valores Ajustados",ylab = "Y",xlab = "Casos")
library(dplyr)
modelo_clase$fitted.values %>%as.matrix()
## [,1]
## 1 340.3238
## 2 376.4442
## 3 410.0762
## 4 422.7825
## 5 456.7683
## 6 490.9729
## 7 561.2516
## 8 572.4839
## 9 661.8956
## 10 805.2546
## 11 743.9514
## 12 802.6063
## 13 921.3246
## 14 1038.5268
## 15 966.3846
## 16 967.1923
## 17 1087.4101
## 18 1280.2249
## 19 1349.9604
## 20 1214.1649
#Residuos del modelo
plot(modelo_clase$residuals,main = "Residuos",ylab = "Residuos",xlab = "casos")
library(dplyr)
modelo_clase$residuals %>%matrix()
## [,1]
## [1,] -20.323767
## [2,] 73.555820
## [3,] -40.076233
## [4,] 47.217467
## [5,] -36.768268
## [6,] 9.027138
## [7,] 8.748419
## [8,] 67.516125
## [9,] 8.104393
## [10,] -25.254613
## [11,] -53.951414
## [12,] -102.606335
## [13,] -11.324647
## [14,] -108.526815
## [15,] -26.384626
## [16,] 102.807683
## [17,] 72.589856
## [18,] -70.224936
## [19,] 100.039646
## [20,] 5.835106