\(\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\]
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.
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)
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}}}}\]
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…