El dia de hoy, realizaremos ejercicios prácticos para estimar los coeficientes de regresión por medio del método MCO. Para esto analizaremos el siguiente conjunto de datos.
La metodología es simple, cada estudiante tendrá a disposición el código en R, el cual puede ir ejecutándolo paso a paso para entender de mejor manera el ejercicio.
En primer lugar, analizaremos la base de datos:
# Con este comando limpiamos memoria, es decir eliminamos todos los objetos que estén guardados.
rm(list=ls())
# Cargamos data cars
data("cars")
# Guardamos la data para el analisis.
attach(cars)
# Imprimimos parte de la base de datos para saber como importó.
head(cars)
## speed dist
## 1 4 2
## 2 4 10
## 3 7 4
## 4 7 22
## 5 8 16
## 6 9 10
Podemos darnos cuenta que la base de datos tiene 50 registros (filas) y 2 campos (columnas). Ahora bien, nos interesa analizar la siguiente relación: la distancia recorrida depende de la velocidad con que se desplaza un vehículo. En este caso, asumiremos que la velocidad sera nuestra variable predictora \(X\) y la distancia recorrida será nuestra variable de respuesta \(Y\).
# Ahora graficamos estos puntos
plot(cars$speed,cars$dist, xlab = "Velocidad", ylab= "Distancia", main= "Grafico de puntos")
En la última sesión, concluimos que \(b_{0}\) y \(b_{i}\) son estimadores para los coeficientes de regresión \(\beta_{0}\) y \(\beta_{i}\) y que aplicando MCO podemos definir que se calculan de la siguiente manera:
\[b_{i}=\frac{\sum{(X_{i}-\bar{X})(Y_{i}-\bar{Y})}}{\sum{(X_{i}-\bar{X})^2}}\] \[b_{0}=\bar{Y}-b_{i}\bar{X}\]
El siguiente código permite hacer el calculo de estos valores:
# Variables auxiliares para guardar sumas.
aux<- sample(0,replace=T,dim(cars)[1])
aux2<-sample(0,replace=T,dim(cars)[1])
for (i in 1:dim(cars)[1]){
nume<-(cars$speed[i]-mean(cars$speed))*(cars$dist[i]-mean(cars$dist))
aux[i]<- nume
deno<-(cars$speed[i]-mean(cars$speed))^2
aux2[i]<- deno
}
# Calculamos bi
b_i <- sum(aux)/sum(aux2)
b_i
## [1] 3.932409
# Calculamos bo
b_o<-mean(cars$dist)-b_i*mean(cars$speed)
b_o
## [1] -17.57909
Ahora bien, ya tenemos calculados los estimadores, podemos construir la recta de regresión.
\[Y=-17.5790+3.93X\]
y podemos graficarla.
y=-17.5790+(3.93*cars$speed)
# Ahora graficamos
plot(cars$speed,cars$dist, xlab = "Velocidad", ylab= "Distancia", main= "Grafico de puntos")
lines(cars$speed,y, col="red")
El parámetro \(\sigma^2\) determina la cantidad de variabilidad inherente a un modelo de regresión. Un valor grande o elevado de este parámetro, conducirá que las observaciones estén muy dispersas en torno a la linea de regresión verdadera.En cambio, un valor pequeño \(\sigma^2\) define que las observaciones tenderán a quedar cerca a la linea de regresión verdadera.
Ahora bien, definamos dos conceptos básicos: Valores Ajustados y Residuos. Los valores ajustados son aquellos valores \(\hat{y_{i}}\) obtenidos al reemplazar los valores de \(x_{i}\) en la ecuación de regresión. Los residuos, se calculan realizando la diferencia entre los valores observados de \(y_{i}\) y \(\hat{y_{i}}\).
Se espera, que cuando se obtenga un ajuste de una recta de regresión, la suma de los residuos tenderán a 0, comprobemoslos.
Con el mismo ejemplo inicial, calculemos los valores ajustados \(\hat{y_{i}}\)
# Calculomos los valores ajustados a partir de la recta de regresion
y=b_o+(b_i*cars$speed)
y
## [1] -1.849460 -1.849460 9.947766 9.947766 13.880175 17.812584 21.744993
## [8] 21.744993 21.744993 25.677401 25.677401 29.609810 29.609810 29.609810
## [15] 29.609810 33.542219 33.542219 33.542219 33.542219 37.474628 37.474628
## [22] 37.474628 37.474628 41.407036 41.407036 41.407036 45.339445 45.339445
## [29] 49.271854 49.271854 49.271854 53.204263 53.204263 53.204263 53.204263
## [36] 57.136672 57.136672 57.136672 61.069080 61.069080 61.069080 61.069080
## [43] 61.069080 68.933898 72.866307 76.798715 76.798715 76.798715 76.798715
## [50] 80.731124
# Ahora graficamos
plot(cars$speed,cars$dist, xlab = "Velocidad", ylab= "Distancia", main= "Grafico de puntos", pch=19)
# Graficamos la recta de regresion.
lines(cars$speed,y, col="red")
# Añadimos valores ajustados en verde
points(cars$speed,y, col="green", pch=19)
# Calculamos los residuos
residuos <- cars$dist-y
# Mostramos los residuos
residuos
## [1] 3.849460 11.849460 -5.947766 12.052234 2.119825 -7.812584
## [7] -3.744993 4.255007 12.255007 -8.677401 2.322599 -15.609810
## [13] -9.609810 -5.609810 -1.609810 -7.542219 0.457781 0.457781
## [19] 12.457781 -11.474628 -1.474628 22.525372 42.525372 -21.407036
## [25] -15.407036 12.592964 -13.339445 -5.339445 -17.271854 -9.271854
## [31] 0.728146 -11.204263 2.795737 22.795737 30.795737 -21.136672
## [37] -11.136672 10.863328 -29.069080 -13.069080 -9.069080 -5.069080
## [43] 2.930920 -2.933898 -18.866307 -6.798715 15.201285 16.201285
## [49] 43.201285 4.268876
# Realizamos la suma de los residuos
sum(residuos)
## [1] 1.847411e-13
Efectivamente, comprobamos que la suma de los residuos cuando se ajusta una recta por medio de MCO tiende a 0.
Ahora, bien la estimación de la varianza se obtiene elevando al cuadros los residuos y sumarlos, lo que se conoce como Suma Cuadrados Error ó SCE y este resultado dividirlo sobre los grados de libertar \(n-2\), por la tanto tenemos que:
\[\sigma^2=s^2= \frac{SCE}{n-2}= \frac{\sum{(y_{i}-\hat{y_{i}})^2}}{n-2}\] Donde la desviación estándar o \(\sigma\) no es mas que \[\sigma=s=\sqrt{\sigma}\]. Calculemos los valores para \(\sigma^2\) e interpretemos su resultado.
# Elevamos al cuadrado los residuos
residuos_cua<-(residuos)^2
# Mostramos resultados obtenido
residuos_cua
## [1] 14.8183412 140.4096988 35.3759254 145.2563342 4.4936573
## [6] 61.0364678 14.0249703 18.1050871 150.1852039 75.2972961
## [11] 5.3944640 243.6661751 92.3484524 31.4699707 2.5914889
## [16] 56.8850671 0.2095635 0.2095635 155.1963080 131.6670817
## [21] 2.1745270 507.3923956 1808.4072861 458.2612116 237.3767736
## [26] 158.5827298 177.9407997 28.5096756 298.3169411 85.9672769
## [31] 0.5301966 125.5355043 7.8161466 519.6456357 948.3774313
## [36] 446.7588835 124.0254528 118.0119054 845.0114290 170.8008597
## [41] 82.2482173 25.6955750 8.5902903 8.6077564 355.9375236
## [46] 46.2225301 231.0790557 262.4816250 1866.3509973 18.2233016
# Calculamos SCE
SCE= sum(residuos_cua)
#Mostramos resultados
SCE
## [1] 11353.52
# Calculamos la Varianza estimada
sigma_cua <-SCE/(dim(cars)[1]-2)
# Mostramos resultado
sigma_cua
## [1] 236.5317
# Calculamos desviacion estimada
desvia<- sqrt(sigma_cua)
desvia
## [1] 15.37959
Como se observó anteriormente la SCE podría interpretarse como la suma de cuadrados SCE del error puede ser interpretada como una medida de cuánta variación de \(y\) permanece sin ser explicada por el modelo, es decir, cuánta no puede ser atribuida a una relación lineal.
El coeficiente de determinación \(r^2\) se interpreta como la proporción de variación \(y\) observada que puede ser explicada por el modelo de regresión lineal simple (atribuida a una relación lineal aproximada entre \(y\) y \(x\)).
Se calcula de la siguiente manera:
\[r^2= 1- \frac{SCE}{STC}\]
El término suma total de los cuadrados ó STC, es una medida que analiza los \(y\) observados versus la media de muestral de los estos valores.
\[STC= \sum(y_{i}- \hat{y})^2\]
Entre mas alto sea el valor de \(r^2\), mejor se considera el ajustes de la recta de regresión.
Calculen el valor de \(r^2\).