PARTE 1
Carga de datos
library(readr)
library(dplyr)
ejemplo_regresion <- read_csv("C:/Users/ariel/Downloads/ejemplo_regresion.csv")
head(ejemplo_regresion,n = 6)
## # A tibble: 6 x 3
##      X1    X2     Y
##   <dbl> <dbl> <dbl>
## 1  3.92  7298  0.75
## 2  3.61  6855  0.71
## 3  3.32  6636  0.66
## 4  3.07  6506  0.61
## 5  3.06  6450  0.7 
## 6  3.11  6402  0.72
 
 
Ejemplo de regresión lineal
library(stargazer)
options(scipen = 9999)
mod_lineal<-lm(formula = Y~X1+X2,data = ejemplo_regresion)
summary(mod_lineal)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = ejemplo_regresion)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.085090 -0.039102 -0.003341  0.030236  0.105692 
## 
## Coefficients:
##                Estimate  Std. Error t value            Pr(>|t|)    
## (Intercept)  1.56449677  0.07939598  19.705 0.00000000000000182 ***
## X1           0.23719747  0.05555937   4.269            0.000313 ***
## X2          -0.00024908  0.00003205  -7.772 0.00000009508790794 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0533 on 22 degrees of freedom
## Multiple R-squared:  0.8653, Adjusted R-squared:  0.8531 
## F-statistic: 70.66 on 2 and 22 DF,  p-value: 0.000000000265
stargazer(mod_lineal,title = "Ejemplo de Regresión Multiple",type = "text",digits = 8)
## 
## Ejemplo de Regresión Multiple
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                                  Y             
## -----------------------------------------------
## X1                         0.23719750***       
##                            (0.05555937)        
##                                                
## X2                        -0.00024908***       
##                            (0.00003205)        
##                                                
## Constant                   1.56449700***       
##                            (0.07939598)        
##                                                
## -----------------------------------------------
## Observations                    25             
## R2                          0.86529610         
## Adjusted R2                 0.85305030         
## Residual Std. Error    0.05330222 (df = 22)    
## F Statistic         70.66057000*** (df = 2; 22)
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01
 
Objetos dentro del modelo lineal
Vector de Coeficientes estimados:
options(scipen = 999)
mod_lineal$coefficients
##   (Intercept)            X1            X2 
##  1.5644967711  0.2371974748 -0.0002490793
 
Matriz de Varianza - Covarianza de los parámetros
var_covar1<-vcov(mod_lineal)
print(var_covar1)
##                  (Intercept)              X1                 X2
## (Intercept)  0.0063037218732  0.000240996434 -0.000000982806321
## X1           0.0002409964344  0.003086843196 -0.000001675537651
## X2          -0.0000009828063 -0.000001675538  0.000000001027106
 
 
Intérvalos de confianza
confint(object = mod_lineal,level = .95)
##                     2.5 %        97.5 %
## (Intercept)  1.3998395835  1.7291539588
## X1           0.1219744012  0.3524205485
## X2          -0.0003155438 -0.0001826148
 
Valores Ajustados
plot(mod_lineal$fitted.values,main = "Valores Ajustados",ylab = "Y",xlab = "casos")

mod_lineal$fitted.values %>% as.matrix()
##         [,1]
## 1  0.6765303
## 2  0.7133412
## 3  0.6991023
## 4  0.6721832
## 5  0.6837597
## 6  0.7075753
## 7  0.7397638
## 8  0.7585979
## 9  0.7943078
## 10 0.7935605
## 11 0.7984347
## 12 0.8272778
## 13 0.8021665
## 14 0.7992462
## 15 0.7544349
## 16 0.7339716
## 17 0.7048866
## 18 0.6930338
## 19 0.6350898
## 20 0.6127185
## 21 0.5701215
## 22 0.4796371
## 23 0.4374811
## 24 0.3953981
## 25 0.3773799
 
Residuos del Modelo
plot(mod_lineal$residuals,main = "Residuos",ylab = "Residuos",xlab = "casos")

mod_lineal$residuals %>% matrix()
##               [,1]
##  [1,]  0.073469743
##  [2,] -0.003341163
##  [3,] -0.039102258
##  [4,] -0.062183196
##  [5,]  0.016240338
##  [6,]  0.012424659
##  [7,]  0.030236216
##  [8,] -0.018597878
##  [9,]  0.105692240
## [10,]  0.026439478
## [11,] -0.048434733
## [12,] -0.057277771
## [13,] -0.022166535
## [14,]  0.040753758
## [15,]  0.035565142
## [16,] -0.033971640
## [17,] -0.024886579
## [18,]  0.026966239
## [19,] -0.085089833
## [20,]  0.017281530
## [21,] -0.010121525
## [22,] -0.069637086
## [23,]  0.072518915
## [24,]  0.074601871
## [25,] -0.057379932
 
PARTE 1.1 PRUEBAS DE NORMALIDAD
Ajuste de los residuos a la distribución normal
library(fitdistrplus)
library(stargazer)
fit_normal<-fitdist(data = mod_lineal$residuals,distr = "norm")
plot(fit_normal)

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##                        estimate  Std. Error
## mean 0.000000000000000007770748 0.010000382
## sd   0.050001911895951975384200 0.007058615
## Loglikelihood:  39.41889   AIC:  -74.83778   BIC:  -72.40002 
## Correlation matrix:
##      mean sd
## mean    1  0
## sd      0  1
 
 
Prueba de Normalidad de Jarque - Bera
library(normtest) 
library(psych)
jb.norm.test(mod_lineal$residuals) 
## 
##  Jarque-Bera test for normality
## 
## data:  mod_lineal$residuals
## JB = 0.93032, p-value = 0.5035
Se rechaza Ho por lo que los residuos no tienen distribucion normal
qqnorm(mod_lineal$residuals)
qqline(mod_lineal$residuals)

hist(mod_lineal$residuals,main = "Histograma de los residuos",xlab = "Residuos",ylab = "frecuencia") 

 
 
Prueba de Normalidad de Kolmogorov - Smirnov
library(nortest)  
lillie.test(mod_lineal$residuals) 
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  mod_lineal$residuals
## D = 0.082345, p-value = 0.9328
No se rechaza Ho por lo que los residuos tienen distribucion normal
qqnorm(mod_lineal$residuals)
qqline(mod_lineal$residuals)

hist(mod_lineal$residuals,main = "Histograma de los residuos",xlab = "Residuos",ylab = "frecuencia") 

 
 
PARTE 2
Carga de datos
library(readr)
library(dplyr)
options(scipen=9999)
regresion <- read_csv("C:/Users/ariel/OneDrive/Documentos/matriz_1.csv")
head(regresion,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
 
 
Construcción de matriz añadiendo X3
regresion %>% mutate(X3=X1*X2) %>% dplyr ::select("Y","X1","X2","X3")->regresion
regresion
## # A tibble: 20 x 4
##        Y    X1    X2     X3
##    <dbl> <dbl> <dbl>  <dbl>
##  1   320    50   7.4  370  
##  2   450    53   5.1  270. 
##  3   370    60   4.2  252  
##  4   470    63   3.9  246. 
##  5   420    69   1.4   96.6
##  6   500    82   2.2  180. 
##  7   570   100   7    700  
##  8   640   104   5.7  593. 
##  9   670   113  13.1 1480. 
## 10   780   130  16.4 2132  
## 11   690   150   5.1  765  
## 12   700   181   2.9  525. 
## 13   910   202   4.5  909  
## 14   930   217   6.2 1345. 
## 15   940   229   3.2  733. 
## 16  1070   240   2.4  576  
## 17  1160   243   4.9 1191. 
## 18  1210   247   8.8 2174. 
## 19  1450   249  10.1 2515. 
## 20  1220   254   6.7 1702.
 
Ingreso Modelo lineal
library(stargazer)
options(scipen=9999)
modelo_lineal<-lm(formula=Y~X1+X2+X3, data=regresion)
summary(modelo_lineal)
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = regresion)
## 
## 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 *  
## X3            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: 0.00000000001054
stargazer(modelo_lineal, title = "Regresion multiple",xlab="Casos", ylab="Y", type = "text", digits = 8)
## 
## Regresion multiple
## ================================================
##                         Dependent variable:     
##                     ----------------------------
##                                  Y              
## ------------------------------------------------
## X1                         2.32927500***        
##                             (0.47698220)        
##                                                 
## X2                         -25.07113000**       
##                            (11.48487000)        
##                                                 
## X3                         0.28616860***        
##                             (0.07681293)        
##                                                 
## Constant                  303.50400000***       
##                            (71.54695000)        
##                                                 
## ------------------------------------------------
## Observations                     20             
## R2                           0.96341370         
## Adjusted R2                  0.95655370         
## Residual Std. Error    67.67775000 (df = 16)    
## F Statistic         140.44060000*** (df = 3; 16)
## ================================================
## Note:                *p<0.1; **p<0.05; ***p<0.01
## 
## Regresion multiple
## =====
## Casos
## -----
## 
## Regresion multiple
## =
## Y
## -
 
Objetos dentro del modelo lineal
Vector de Coeficientes estimados:
options(scipen = 999)
modelo_lineal$coefficients
## (Intercept)          X1          X2          X3 
## 303.5040143   2.3292746 -25.0711288   0.2861686
 
Matriz de Varianza - Covarianza de los parámetros
var_covarz<-vcov(modelo_lineal)
print(var_covarz)
##             (Intercept)           X1           X2           X3
## (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
## X3              4.49319  -0.03322346   -0.8222063  0.005900226
 
 
Intérvalos de confianza
confint(object = modelo_lineal,level = .95)
##                   2.5 %      97.5 %
## (Intercept) 151.8312499 455.1767786
## X1            1.3181175   3.3404318
## X2          -49.4179582  -0.7242993
## X3            0.1233324   0.4490047
 
Valores Ajustados
plot(modelo_lineal$fitted.values,main = "Valores Ajustados",ylab = "Y",xlab = "casos")

modelo_lineal$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_lineal$residuals,main = "Residuos",ylab = "Residuos",xlab = "casos")

modelo_lineal$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
 
Parte 2.1
library(fitdistrplus)
library(stargazer)
fit_normal<-fitdist(data = modelo_lineal$residuals,distr = "norm")
plot(fit_normal)

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##                       estimate Std. Error
## mean -0.0000000000000004440892  13.535551
## sd   60.5328216633827125292555   9.571082
## Loglikelihood:  -110.4425   AIC:  224.885   BIC:  226.8764 
## Correlation matrix:
##      mean sd
## mean    1  0
## sd      0  1
 
Prueba de Normalidad de Jarque - Bera
library(normtest) 
library(psych)
jb.norm.test(modelo_lineal$residuals) 
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_lineal$residuals
## JB = 0.58681, p-value = 0.652
No se rechaza Ho por lo que los residuos tienen distribucion normal
qqnorm(modelo_lineal$residuals)
qqline(modelo_lineal$residuals)

hist(modelo_lineal$residuals,main = "Histograma de los residuos",xlab = "Residuos",ylab = "frecuencia") 

 
 
Prueba de Normalidad de Kolmogorov - Smirnov
library(nortest)  
lillie.test(modelo_lineal$residuals) 
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_lineal$residuals
## D = 0.14222, p-value = 0.3594
No se rechaza Ho por lo que los residuos tienen distribucion normal
qqnorm(modelo_lineal$residuals)
qqline(modelo_lineal$residuals)

hist(modelo_lineal$residuals,main = "Histograma de los residuos",xlab = "Residuos",ylab = "frecuencia") 
