Características generales del curso

Evaluación

Notas sobre la evaluación

Temas por cubrir en el curso.

¿De qué trata el tema de regresión lineal simple?

Tenemos acceso a un conjunto de \(n\) observaciones

\[z_1, ..., z_n.\]

Cada observación es un vector de dos variables, es decir,

\(z_i=(y_i, x_i), i=1,...,n\).

Por ejemplo. Supongamos que se tiene acceso a un conjunto de 32 datos medidos en automóviles; en donde \(y_i\) corresponde a las millas por galón que recorre el auto \(i-ésimo\) y \(x_i\) a su peso. Supongamos que queremos comprar un auto, pero quisieramos saber si es posible reducir costos en gasolina a partir de las características del automóvil. Algunas preguntas que se pueden derivar de estos datos son:

  1. ¿A mayor peso del auto se gasta más gasolina? ¿En qué magnitud?
  2. ¿La relacion entre el peso del auto y el gasto de gasolina es lineal?

Veamos qué nos dicen los datos!

str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
require(ggplot2)
require(ggiraph)
require(ggiraphExtra)

ggPoints(aes(x=wt,y=mpg),data=mtcars,method="lm",interactive=TRUE)

La linea azul corresponde a una recta parametrizada como

\[Y=\beta_1+\beta_2 X\]

Preguntas a resolver durante el curso:

  1. ¿Cómo estimar los parámetros de la regresión lineal, \(\beta_1, \beta_2\)?
  2. ¿Cómo verificar que realmente a mayor peso mayor gasto de gasolina?
  3. ¿Cómo interpretar los parámetros? ¿Qué propiedades tienen?

En general se puede observar lo siguiente en cuanto a la interpretación de la recta:

¿Qué herramientas computacionales podemos usar?

Python

Sólo se mostrarán funciones básicas.

import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
model = smf.ols('mpg ~ wt', data = r.mtcars).fit()
print(model.summary())
##                             OLS Regression Results                            
## ==============================================================================
## Dep. Variable:                    mpg   R-squared:                       0.753
## Model:                            OLS   Adj. R-squared:                  0.745
## Method:                 Least Squares   F-statistic:                     91.38
## Date:                Wed, 16 Sep 2020   Prob (F-statistic):           1.29e-10
## Time:                        23:17:53   Log-Likelihood:                -80.015
## No. Observations:                  32   AIC:                             164.0
## Df Residuals:                      30   BIC:                             167.0
## Df Model:                           1                                         
## Covariance Type:            nonrobust                                         
## ==============================================================================
##                  coef    std err          t      P>|t|      [0.025      0.975]
## ------------------------------------------------------------------------------
## Intercept     37.2851      1.878     19.858      0.000      33.450      41.120
## wt            -5.3445      0.559     -9.559      0.000      -6.486      -4.203
## ==============================================================================
## Omnibus:                        2.988   Durbin-Watson:                   1.252
## Prob(Omnibus):                  0.225   Jarque-Bera (JB):                2.399
## Skew:                           0.668   Prob(JB):                        0.301
## Kurtosis:                       2.877   Cond. No.                         12.7
## ==============================================================================
## 
## Warnings:
## [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

R

También se mostrarán sólo las funciones básicas y será lo prioritario durante las prácticas.

modelinR = lm('mpg ~ wt', data = mtcars)
print(summary(modelinR))
## 
## Call:
## lm(formula = "mpg ~ wt", data = mtcars)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -4.543 -2.365 -0.125  1.410  6.873 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   37.285      1.878   19.86  < 2e-16 ***
## wt            -5.344      0.559   -9.56  1.3e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3 on 30 degrees of freedom
## Multiple R-squared:  0.753,  Adjusted R-squared:  0.745 
## F-statistic: 91.4 on 1 and 30 DF,  p-value: 1.29e-10

En cualquier caso, el objetivo principal es interpretar las salidas.

Regresión lineal múltiple

¿Se pueden incluir más variables para analizar el gasto de gasolina?

Por ejemplo, ¿se podría incluir la variable caballos de fuerza del automóvil (hp)?

pairs(mtcars[,c("mpg", "wt", "hp")])

Si se incluye una variable categórica, ¿cómo usarla? ¿cómo se interpreta?

Por ejemplo, si se conoce el tipo de transmisión del automóvil ¿se podría concluir que dada ésta la relación lineal es la misma?

ggPoints(aes(x=wt,y=mpg,color=am),data=mtcars,method="lm",interactive=TRUE)

Bibliografía