\(\textbf{Regresión}\) es un método que nos permite estudiar la \(\textbf{relación}\) entre una variable \(\textbf{respuesta Y}\) y ciertas \(\textbf{covariables X}\). El término \(\textbf{Regresión}\) se debe a \(Sir\ Francis\ Galthon\) (1822-1911), quien notó que los hombres altos y bajos tienden a tener hijos con alturas cercanas a la media. Llamó a esto “\(regresión \ hacia\ la\ media\)”.

\(\textbf{X}\) denota las covariables, también conociadas como variables explicativas, regresoras o predictoras, y su forma general es de tipo matricial; para efecto de nuestro estudio asumiremos que \(\textbf{X}\) es una matriz de dimensión \(\textbf{n}\times\textbf{1}\) y \(\textbf{Y}\) será un vector columna de dimensión \(\textbf{n}\).

Es decir:

\[ \begin{equation*} X= \left( \begin{array}{c} X_{1} \\ X_{2} \\ \vdots \\ X_{n}\\ \end{array} \right),\ \ \ \ Y= \left( \begin{array}{c} Y_{1} \\ Y_{2} \\ \vdots \\ Y_{n}\\ \end{array} \right)\ \ \ \ \end{equation*} \] Dicho de otra manera, asumiremos en primera instancia que tenemos datos del tipo:

\[(Y_1,X_1),...,(Y_n,X_n)\] Una manera de resumir la \(\textbf{relación}\) entre \(\textbf{X}\) y \(\textbf{Y}\) es a través de la \(\textbf{función de regresión}\)

\[r(x)=E[Y|X=x]=\int yf(y|x)dy\]

De la expresión anterior se puede escribir libros completos acerca de sus diversas formas (relaciones/funciones). No obstante vamos paso a paso y comenzaremos con la forma(relación) más sencilla:

\[r(x)=\beta_{0}+\beta_{1}x\]

Regresión Lineal Simple

Como se ha visto, la idea del modelo de \(\textbf{Regresión Lineal Simple}\) es \(\textbf{ajustar una línea recta}\) a una nube de datos, los cuales están dados de la forma \((y_1,x_1),...,(y_n,x_n)\) donde \(\textbf{y}\) es la variable repuesta y \(\textbf{x}\) es la variable regresora.

Problema

Una empresa sin fines de lucro desea tener un modelo de los ingresos en la sociedad mexicana, esto para diferentes regiones ya que dicha empresa considera que cada estado tiene diferentes preocupaciones presupuestales. Esto debe hacerse mediante La Encuesta Nacional de Ingreso-Gasto de hogares 2018 del INEGI la cual contiene los montos que cada hogar gasta en diferentes conceptos. El objetivo de dicho modelo es determinar que conceptos impactan más en el gasto de los hogares de dichas regiones, así como una buena estimación del ingreso en años posteriores a los de la captura de información.

Usted es el analista de dichos datos… Nuestra base será para el Estado de Aguascalientes…

library(readxl)
D1<- read_excel("Ingreso_Gasto 2018 (Aguascalientes).xlsx")
summary(D1)
##     entidad    edad_jefe       sexo_jefe       tot_integ       percep_ing    
##  Min.   :1   Min.   :16.00   Min.   :1.000   Min.   : 1.00   Min.   : 0.000  
##  1st Qu.:1   1st Qu.:37.00   1st Qu.:1.000   1st Qu.: 2.00   1st Qu.: 1.000  
##  Median :1   Median :47.00   Median :1.000   Median : 4.00   Median : 2.000  
##  Mean   :1   Mean   :48.65   Mean   :1.249   Mean   : 3.91   Mean   : 2.471  
##  3rd Qu.:1   3rd Qu.:60.00   3rd Qu.:1.000   3rd Qu.: 5.00   3rd Qu.: 3.000  
##  Max.   :1   Max.   :96.00   Max.   :2.000   Max.   :16.00   Max.   :12.000  
##     ing_cor          alimentos        vestido           calzado       
##  Min.   :   1874   Min.   :    0   Min.   :    0.0   Min.   :    0.0  
##  1st Qu.:  27415   1st Qu.: 6239   1st Qu.:    0.0   1st Qu.:    0.0  
##  Median :  43175   Median : 9681   Median :  332.6   Median :  273.9  
##  Mean   :  57622   Mean   :11299   Mean   : 1044.0   Mean   :  681.5  
##  3rd Qu.:  67359   3rd Qu.:14149   3rd Qu.: 1261.9   3rd Qu.:  893.9  
##  Max.   :2310762   Max.   :76603   Max.   :26421.7   Max.   :11739.1  
##     vivienda        limpieza           salud             transporte    
##  Min.   :    0   Min.   :    0.0   Min.   :     0.00   Min.   :     0  
##  1st Qu.: 1040   1st Qu.:  720.7   1st Qu.:     0.00   1st Qu.:  1936  
##  Median : 1760   Median : 1277.6   Median :    63.58   Median :  4447  
##  Mean   : 2662   Mean   : 2196.8   Mean   :  1257.52   Mean   :  7506  
##  3rd Qu.: 3060   3rd Qu.: 2492.0   3rd Qu.:   665.21   3rd Qu.:  8923  
##  Max.   :70664   Max.   :40309.6   Max.   :184800.25   Max.   :353942  
##    personales         educacion      esparcimiento       paq_turist     
##  Min.   :     0.0   Min.   :     0   Min.   :    0.0   Min.   :    0.0  
##  1st Qu.:   917.5   1st Qu.:     0   1st Qu.:    0.0   1st Qu.:    0.0  
##  Median :  1749.7   Median :     0   Median :  170.4   Median :    0.0  
##  Mean   :  2787.7   Mean   :  2788   Mean   : 1074.3   Mean   :  644.8  
##  3rd Qu.:  3275.6   3rd Qu.:  3048   3rd Qu.: 1043.0   3rd Qu.:    0.0  
##  Max.   :113246.1   Max.   :160801   Max.   :40726.2   Max.   :58695.7
D1$sexo_jefe<-as.factor(D1$sexo_jefe)
boxplot(D1)

hist(D1$edad_jefe)

boxplot(D1$edad_jefe~D1$sexo_jefe)

boxplot(D1$ing_cor)

boxplot(D1$alimentos)

boxplot(D1$calzado)

Coeficiente de Correlación de Pearson

El coeficiente de correlación es la medida específica que cuantifica la intensidad de la relación lineal entre dos variables en un análisis de correlación. En los informes de correlación, este coeficiente se simboliza con la r.

\[r=\frac{\sum[(x_{i}-\overline{x})(y_{i}-\overline{y})]}{\sqrt{\sum{(x_{i}-\overline{x})^2 \ \ * \ \ \sum{(y_{i}-\overline{y})^2}}}}\]

¿Qué nos quiere decir los valores de r?

El coeficiente de correlación puede tomar un rango de valores de +1 a -1.

Un valor de 0 indica que no hay asociación entre las dos variables.

Un valor mayor que 0 indica una asociación positiva. Es decir, a medida que aumenta el valor de una variable, también lo hace el valor de la otra.

Un valor menor que 0 indica una asociación negativa; es decir, a medida que aumenta el valor de una variable, el valor de la otra disminuye.

D2<-D1[D1$ing_cor!=0 & D1$ing_cor<1000000,]
boxplot(D2$ing_cor)

plot(D2$ing_cor,D2$transporte)

plot(D2$ing_cor,log(D2$transporte))

cor(D2$ing_cor,D2$transporte)
## [1] 0.3906778
cor(D2[,c(-1,-3)])
##                 edad_jefe    tot_integ  percep_ing    ing_cor  alimentos
## edad_jefe      1.00000000 -0.100154207 0.087929980 0.02820353 -0.1015198
## tot_integ     -0.10015421  1.000000000 0.672455900 0.14900498  0.2353993
## percep_ing     0.08792998  0.672455900 1.000000000 0.23339401  0.2288589
## ing_cor        0.02820353  0.149004982 0.233394010 1.00000000  0.4961477
## alimentos     -0.10151982  0.235399291 0.228858939 0.49614769  1.0000000
## vestido       -0.09890470  0.097488897 0.134341069 0.34254384  0.3026380
## calzado       -0.13741354  0.215449771 0.184312587 0.27522095  0.3180965
## vivienda      -0.04893548 -0.001486430 0.018980460 0.23934433  0.2343888
## limpieza      -0.02515623  0.030827638 0.062957656 0.47438565  0.3983447
## salud          0.07699173 -0.016601663 0.004861161 0.17407775  0.1000061
## transporte    -0.02088066  0.082674025 0.095178002 0.39067776  0.3380292
## personales    -0.02275087  0.125045325 0.133390095 0.40454845  0.3398283
## educacion     -0.08837080  0.178243857 0.145315406 0.29264492  0.2824145
## esparcimiento -0.08697397 -0.020227163 0.050124305 0.42370043  0.3504103
## paq_turist    -0.03194988 -0.002814831 0.028824931 0.29996302  0.2211624
##                  vestido     calzado    vivienda    limpieza        salud
## edad_jefe     -0.0989047 -0.13741354 -0.04893548 -0.02515623  0.076991729
## tot_integ      0.0974889  0.21544977 -0.00148643  0.03082764 -0.016601663
## percep_ing     0.1343411  0.18431259  0.01898046  0.06295766  0.004861161
## ing_cor        0.3425438  0.27522095  0.23934433  0.47438565  0.174077747
## alimentos      0.3026380  0.31809651  0.23438884  0.39834470  0.100006125
## vestido        1.0000000  0.58994465  0.14695679  0.36342358  0.102067879
## calzado        0.5899446  1.00000000  0.10713767  0.29553386  0.085259190
## vivienda       0.1469568  0.10713767  1.00000000  0.23038857  0.114553394
## limpieza       0.3634236  0.29553386  0.23038857  1.00000000  0.099940992
## salud          0.1020679  0.08525919  0.11455339  0.09994099  1.000000000
## transporte     0.2482604  0.22607832  0.15358715  0.39018700  0.069656360
## personales     0.3520381  0.28309876  0.16538126  0.37835178  0.118304275
## educacion      0.2678620  0.29837646  0.15195469  0.30737741  0.067585056
## esparcimiento  0.3312395  0.28151023  0.20925965  0.39753882  0.046862524
## paq_turist     0.2290419  0.15575316  0.08226618  0.20540083  0.026096608
##                transporte  personales   educacion esparcimiento   paq_turist
## edad_jefe     -0.02088066 -0.02275087 -0.08837080   -0.08697397 -0.031949876
## tot_integ      0.08267402  0.12504532  0.17824386   -0.02022716 -0.002814831
## percep_ing     0.09517800  0.13339009  0.14531541    0.05012431  0.028824931
## ing_cor        0.39067776  0.40454845  0.29264492    0.42370043  0.299963016
## alimentos      0.33802924  0.33982827  0.28241449    0.35041034  0.221162365
## vestido        0.24826041  0.35203813  0.26786205    0.33123952  0.229041941
## calzado        0.22607832  0.28309876  0.29837646    0.28151023  0.155753159
## vivienda       0.15358715  0.16538126  0.15195469    0.20925965  0.082266185
## limpieza       0.39018700  0.37835178  0.30737741    0.39753882  0.205400826
## salud          0.06965636  0.11830428  0.06758506    0.04686252  0.026096608
## transporte     1.00000000  0.30897349  0.16592168    0.28272381  0.162308626
## personales     0.30897349  1.00000000  0.21803795    0.30041258  0.147792617
## educacion      0.16592168  0.21803795  1.00000000    0.31506279  0.095553780
## esparcimiento  0.28272381  0.30041258  0.31506279    1.00000000  0.193653698
## paq_turist     0.16230863  0.14779262  0.09555378    0.19365370  1.000000000

Podemos ayudarnos de una herramienta llamada \(\textbf{Scatterplot}\) mejor conocido como gráfica de dispersión para empezar a hacer nuestro análisis, recordando que éste se hace por parejas…

D2<-D1[D1$ing_cor!=0 & D1$ing_cor<1000000,]
boxplot(D2$ing_cor)

plot(D2$ing_cor,D2$transporte)

plot(D2$ing_cor,log(D2$transporte))

attach(D1)

D1vars=data.frame(D1$ing_cor,D1$edad_jefe,D1$tot_integ,D1$percep_ing)
pairs(D1vars,main="Matriz de dispersión",labels=c("Ingreso Corriente","Edad jefe","Total de integrantes","Integrantes con Percepciones"),pch=21,bg="pink")

D2vars=data.frame(D1$ing_cor,D1$alimentos,D1$vestido,D1$calzado)
pairs(D2vars,main="Matriz de dispersión",labels=c("Ingreso Corriente","Alimentos","Vestido","Calzado"),pch=21,bg="pink")

D3vars=data.frame(D1$ing_cor,D1$vivienda,D1$limpieza,D1$salud)
pairs(D3vars,main="Matriz de dispersión",labels=c("Ingreso Corriente","Vivienda","Limpieza", "Salud"),pch=21,bg="pink")

D4vars=data.frame(D1$ing_cor,D1$transporte,D1$personales,D1$educacion)
pairs(D4vars,main="Matriz de dispersión",labels=c("Ingreso Corriente","Transporte","Personales","Educación"),pch=21,bg="pink")

D5vars=data.frame(D1$ing_cor,D1$esparcimiento,D1$paq_turist)
pairs(D5vars,main="Matriz de dispersión",labels=c("Ingreso Corriente","Esparciemiento","PaquetesTuristicos"),pch=21,bg="pink")

library(psych) 
pairs.panels(D5vars, pch=21,main="Matriz de Dispersión, Histograma y Correlación",labels=c("Ingreso Corriente","Esparcimiento", "Paquete Turistico"))

Ya que tenemos alguna idea de las variables que podrían ajustarse a nuestro modelo de regresion lineal podemos aplicar un modelo inicial…

modelo.ini=lm(ing_cor~esparcimiento,data=D1)
summary(modelo.ini)
## 
## Call:
## lm(formula = ing_cor ~ esparcimiento, data = D1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -240123  -25296  -11152   10635 2152015 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   4.650e+04  1.472e+03   31.60   <2e-16 ***
## esparcimiento 1.035e+01  5.458e-01   18.97   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 64820 on 2304 degrees of freedom
## Multiple R-squared:  0.135,  Adjusted R-squared:  0.1347 
## F-statistic: 359.7 on 1 and 2304 DF,  p-value: < 2.2e-16
modelo.2=lm(esparcimiento~ing_cor,data=D1)
summary(modelo.2)
## 
## Call:
## lm(formula = esparcimiento ~ ing_cor, data = D1)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -19625   -842   -551     43  36971 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.226e+02  6.218e+01   5.188 2.32e-07 ***
## ing_cor     1.305e-02  6.878e-04  18.967  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2301 on 2304 degrees of freedom
## Multiple R-squared:  0.135,  Adjusted R-squared:  0.1347 
## F-statistic: 359.7 on 1 and 2304 DF,  p-value: < 2.2e-16

Pero podríamos utilizar otro método…