Medidas de dependencia lineal - Covarianza y correlación
Regresión lineal
Estimadores de mínimos cuadrados
Ejemplos
Ejercicios
Distribuciones bidimensionales
Dos variables x e y están relacionadas funcionalmente cuando conocida la primera se puede saber con exactitud el valor de la segunda.
Ejemplo
Code
t =0:50g =9.8h =0.5*g*t^2df1 =data.frame(tiempo= t, altura = h)library(ggplot2)ggplot(df1, aes(x = tiempo, y = altura)) +#geom_smooth(method = lm, se = FALSE) +geom_point(color ="black", size =2)+labs(title="Altura vs. tiempo de caida libre",x="Tiempo(seg)",y ="Altura(m)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Si se deja caer una piedra, existe una fórmula que nos permite calcular exactamente, la altura a la que se encuentra en función del tiempo transcurrido.
\[h = \frac{1}{2}g t^2\]
Relación estadística bidimensional
Dos variables aleatorias \(X\) e \(Y\), están relacionadas estadísticamente cuando conocida la primera se puede estimar aproximadamente el valor de la segunda.
Variable estadística bidimensional
Una variable bidimensional es una variable en la que cada individuo está definido por un par de caracteres, \((X, Y)\).
Estos dos caracteres son a su vez variables estadísticas entre las que existe relación, una de las dos variables es la
\(X\): variable independiente o explicativa o exógena
\(Y\): variable dependiente o respuesta o endógena
Ejemplos
Cantidad de grasa corporal y la edad.
Ingresos y el gastos de una familia.
Producción y las ventas de una fábrica.
Gastos en publicidad y los beneficios de una empresa.
Tasa de paro y la edad.
Calificación obtenida y el número de horas de estudio.
Tiempo de computación de un programa y la velocidad del procesador.
Distribuciones bidimensionales
Son aquellas en las que a cada individuo le corresponden los valores de dos variables, las representamos por el par \((x_i, y_i)\).
Si representamos cada par de valores como las coordenadas de un punto, el conjunto de todos ellos se llama nube de puntos o diagrama de dispersión.
Sobre la nube de puntos puede trazarse una recta que se ajuste a ellos lo mejor posible, llamada recta de regresión, que veremos más tarde.
Ejemplo
Veamos la relación entre las variables cantidad de grasa corporal y la edad.
library(ggplot2)ggplot(datos, aes(x = edad, y = grasa)) +#geom_smooth(method = lm, se = FALSE) +geom_point(color ="blue", size =2)+labs(title="Cantidad de grasa corporal vs. edad",x="Edad",y ="Grasa") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Tipos de relación (Determinista)
Determinista: conociendo el valor de \(X\), valor de \(Y\) queda establecido.
\[y = f(x)\]
Ejemplo
La relación entre temperatura en grados centígrados (\(X\)) y Fahrenheit (\(Y\)) es:
\[y = 1.8x + 32\]
Code
x =0:40y =1.8*x +32df2 =data.frame(x, y)library(ggplot2)ggplot(df2, aes(x, y)) +#geom_smooth(method = lm, se = FALSE) +geom_point(color ="black", size =2)+labs(title="Relación entre grados centígrados y Fahrenheit",x="Grados centigrados",y ="Grados Fahrenheit") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=20))
Tipos de relación (No determinista)
No determinista: conocido el valor de \(X\), el valor de \(Y\) no queda perfectamente extablecido. Son del tipo:
\[y = f(x)+\varepsilon\]
donde \(\varepsilon\) es una perturbación desconocida o error (variable aleatoria).
Ejemplo
Veamos la relación entre las variables cantidad de grasa corporal \(Y\) y la edad \(X\).
\[y = 5.3x + 102.6 + \varepsilon\]
Code
library(ggplot2)ggplot(datos, aes(x = edad, y = grasa)) +#geom_smooth(method = lm, se = FALSE) +geom_point(color ="black", size =2)+labs(title="Cantidad de grasa corporal vs. edad",x="Edad (años)",y ="Grasa (mg/cm\u00b3)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Tipos de relación (lineal)
Lineal: cuando la función \(f(x)\) es lineal,
\[f (x) = \beta_0 + \beta_1 x\]
Si el intercepto: \(\beta_1 > 0\) hay relación lineal positiva.
Si el intercepto: \(\beta_0 < 0\) hay relación lineal negativa.
Ejemplo
Code
library(ggplot2)ggplot(datos, aes(x = edad, y = grasa)) +#geom_smooth(method = lm, se = FALSE) +geom_point(color ="black", size =2)+labs(title="Cantidad de grasa corporal vs. edad",x="Edad (años)",y ="Grasa (mg/cm\u00b3)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Code
library(ggplot2)ggplot(datos, aes(x = edad, y = grasa)) +geom_smooth(method = lm, se =FALSE, color ="blue") +geom_point(color ="black", size =2) +labs(title="Cantidad de grasa corporal vs. edad",x="Edad (años)",y ="Grasa (mg/cm\u00b3)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Tipos de relación (No lineal)
No lineal: cuando la función \(f(x)\) es no lineal. Algunas son de la forma: \(f(x) = \log(x)\), \(f(x) = x^2 + 3, \dots\).
Ejemplo
Si se deja caer una piedra, existe una fórmula que nos permite calcular exactamente, la altura a la que se encuentra en función del tiempo transcurrido.
\[h = \frac{1}{2}g t^2\]
donde
\(h\): altura
\(t\): tiempo
\(g\): valor de la gravedad
Code
library(ggplot2)ggplot(df1, aes(x = tiempo, y = altura)) +#geom_smooth(method = lm, se = FALSE) +geom_point(color ="black", size =2)+labs(title="Altura vs. tiempo de caida libre",x="Tiempo(seg)",y ="Altura(m)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Los datos no tienen un aspecto de linea recta (lineal).
Tipos de relación (Ausencia de relación explícita)
Ausencia de relación no hay una relación explícita entre las variables \(X\) e \(Y\): cuando la pendiente \(\beta_1 = 0\), es decir, si
\[f (x) = \beta_0 + 0 x + \varepsilon = \beta_0 + 0 x = \beta_0\] Por lo tanto, es una nube de puntos que se mueven al rededor de la constante eje \(\beta_0\).
Ejemplo
Veamos si la edad de una persona influye en el peso.
library(ggplot2)ggplot(datos, aes(x = edad, y = peso)) +# geom_smooth(method = lm, se = FALSE, color = "blue") +geom_point(color ="black", size =2) +geom_abline(intercept =71.2, slope =0, color ="blue", size =1) +xlim(20,60) +labs(title="Relación entre la edad y el peso",x="Edad (años)",y ="Peso (kg)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Medidas de dependencia lineal (La covarianza muestral)
La covarianza muestral \(Cov(x,y)\) o simplemente \(R_{xy}\): es una medida de la dependencia lineal. Su fórmula es:
Si \(R_{xy} > 0\), hay dependencia directa (positiva), es decir, a grandes valores de \(X\) corresponden grandes valores de \(Y\).
Si \(R_{xy} = 0\), se interpreta como la no existencia de una relación lineal entre las dos variables.
Si \(R_{xy} < 0\), hay dependencia inversa o negativa, es decir, a grandes valores de \(X\) corresponden pequeños valores de \(Y\).
Medidas de dependencia lineal (La correlación muestral)
Una medida de la dependencia lineal que no depende de las unidades de medida es el coeficiente de correlación lineal \(Cor(x,y)\) o simplemente \(r_{xy}\):
\(y_i\) representa el valor de la variable respuesta para la observación i-ésima.
\(x_i\) representa el valor de la variable explicativa para la observación i-ésima. \(e_i\) representa el error para la observación i-ésima que se asume normal,
\[\varepsilon_i \sim N(0, \sigma^2)\]
\(\beta_0\) y \(\beta_1\) son los coeficientes de regresión:
\(\beta_0\): intercepto
\(\beta_1\): pendiente
Los parámetros que se deben estimar son: \(\beta_0\) y \(\beta_1\).
El modelo de regresión lineal simple
El modelo de regresión lineal simple supone que,
El objetivo es obtener estimaciones \(\hat{\beta}_0\) y \(\hat{\beta}_1\) de \(\beta_0\) y \(\beta_1\) para calcular la recta de regresión:
\[\hat{y} = \hat{\beta}_0 + \hat{\beta}_1x\]
que se ajuste lo mejor posible a los datos.
Ejemplo
Supongamos que la recta de regresión del ejemplo anterior es:
\[Grasa = 102.6 + 5.3 Edad\]
Se estima que una persona de 35 años, entonces tendrá: \(\text{Grasa} = 102.6 + 5.3 \times 35 = 288.1 mg/cm^3\)
Code
library(ggplot2)ggplot(datos, aes(x = edad, y = grasa)) +geom_smooth(method = lm, se =FALSE, color ="blue") +geom_point(color ="black", size =2) +labs(title="Cantidad de grasa corporal vs. edad",x="Edad (años)",y ="Grasa (mg/cm\u00b3)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
La recta de regresión lineal
Estimadores de mínimos cuadrados
Gauss propuso en 1809 el método de mínimos cuadrados para obtener los valores \(\hat{\beta}_0\) y \(\hat{\beta}_1\) que mejor se ajustan a los datos:
\[\hat{y}_i = \hat{\beta}_0 + \hat{\beta}_1x_i\]
Ecuaciones para estimar los valores de \(\hat{\beta}_0\) y \(\hat{\beta}_1\). \[
\begin{align}
\hat{\beta}_1 &=\frac{R_{xy}}{s_x^2} =
\frac{\displaystyle \sum_{i=1}^{n}(x_i-\bar{x}) (y_{i}-\bar{y})}{\displaystyle \sum_{i=1}^{n}(x_i-\bar{x})^2}=
\frac{\displaystyle \sum_{i=1}^{n} x_i y_i - n\bar{x}\bar{y}}{\displaystyle \sum_{i=1}^{n}x_i^2-n\bar{x}^2} \\
\hat{\beta}_0 &=\bar{y}-\hat{\beta}_1\bar{x}
\end{align}
\]
Ejemplo 1
Para los datos de grasa vs. edad, realizar lo siguiente:
Encontrar estimaciones de los parámetros \(\beta_0\) y \(\beta_1\).
Calcular el coeficiente de correlación y concluir si la relación entre las variables es fuerte, media o débil y si es creciente o decreciente.
Estime la cantidad de grasa tendría una persona de 70 años.
Construir el gráfico de la recta de regresión lineal y los puntos.
Solución (1a)
Encontrar estimaciones de los parámetros \(\beta_0\) y \(\beta_1\).
x = datos$edady = datos$grasan =length(datos$grasa)hbeta1 = (sum(x*y) - n*mean(x)*mean(y))/(sum(x^2)-n*mean(x)^2)hbeta0 =mean(y) - hbeta1*mean(x)cat(" El valor estimado de beta1 es:", round(hbeta1, 2), "\n", "El valor estimado de beta0 es:", round(hbeta0, 2))
El valor estimado de beta1 es: 5.22
El valor estimado de beta0 es: 107.42
En R (usando lm de la librería stats)
Code
x = datos$edady = datos$grasamod =lm(y ~ x)hbeta1 =round(mod$coefficients[2],2)hbeta0 =round(mod$coefficients[1], 2)cat(" El valor estimado de beta1 es:", hbeta1, "\n", "El valor estimado de beta0 es:", hbeta0)
El valor estimado de beta1 es: 5.22
El valor estimado de beta0 es: 107.42
Solución (1b)
Calcular el coeficiente de correlación
\[
\begin{align*}
r_{xy} & = \frac{R_{xy}}{s_xs_y} \\
&= \frac{763.29}{12.09 \times 76.5} \\
& = 0.83
\end{align*}
\] Observamos que la correlación es 0.83, por lo cual, la relación entre grasa y edad es positiva(directa) y fuerte.
En R (construyendo el código)
Code
x = datos$edady = datos$grasacovxy =cov(x,y)sdx =sd(x)sdy =sd(y)rxy =round(covxy/(sdx*sd(y)), 3)cat("El valor estimado de la correlación: ", rxy)
El valor estimado de la correlación: 0.825
En R (usando cor de la librería stats)
Code
x = datos$edady = datos$grasarxy =round(cor(x,y),3)cat("El valor estimado de la correlación: ", rxy)
El valor estimado de la correlación: 0.825
Solución (1c)
Estime la cantidad de grasa tendría una persona de 70 años.
\[
\begin{align*}
\hat{y} &= \hat{\beta}_0 + \hat{\beta}_1 Edad \\
&= 107.42 + 5.22 \times 70\\
& = 472.82
\end{align*}
\] Por lo tanto, el nivel de grasa de una persona de 70 años, se estima en \(472.82 \ mg/cm^3\).
En R (construyendo el código)
Code
x = datos$edady = datos$grasaedad =70# edad del individuomod =lm(y ~ x) # modelo de regresion linealhbeta1 = mod$coefficients[2] # estimado de beta1hbeta0 = mod$coefficients[1] # estimado de beta0yest = hbeta0 + hbeta1*edad # valor estimado de ycat("El valor estimado de grasa corporal de una personad de 70 años es: ", yest)
El valor estimado de grasa corporal de una personad de 70 años es: 472.8948
En R (usando lm de la librería stats)
Code
x = datos$edady = datos$grasaedad =data.frame(x =70) # edad del individuomod =lm(y ~ x) # modelo de regresion linealyest =round(predict(mod, edad), 2) # valor estimado de ycat("El valor estimado de grasa corporal de una personad de 70 años es: ", yest)
El valor estimado de grasa corporal de una personad de 70 años es: 472.89
Solución (1d)
Construir el gráfico de la recta de regresión lineal y los puntos.
Code
library(ggplot2)ggplot(datos, aes(x = edad, y = grasa)) +geom_smooth(method = lm, se =FALSE, color ="blue") +geom_point(color ="black", size =2) +labs(title="Cantidad de grasa corporal vs. edad",x="Edad (años)",y ="Grasa (mg/cm\u00b3)") +theme(plot.title =element_text(hjust =0.5), text =element_text(size=22))
Ejercicio 1
Los datos de la producción de trigo en toneladas (\(X\)) y el precio del kilo de harina en pesetas (\(Y\)) en la década de los 80 en España fueron:
Producción de trigo
30
28
32
25
25
25
22
24
35
40
Precio de la harina
25
30
27
40
42
40
50
45
30
25
Ajusta la recta de regresión usando los estimadores \(\hat{\beta}_1\), \(\hat{\beta}_0\).
Grafica la recta de regresión con los puntos \((x,y)\).
Encuentre la correlación entre \(X\) e \(Y\),, ¿qué concluye?
Estimar el precio kilo de harina, cuando la producción es 50 toneladas.
Ejercicio 2
La siguiente tabla muestra el número de gérmenes patógenos por centímetro cúbico de un determinado cultivo según el tiempo transcurrido:
Nº de horas
0
1
2
3
4
5
Nº de gérmenes
20
26
33
41
47
53
Estime los parámetros \(\beta_0\) y \(\beta_1\) para la recta de regresión que predece el número de gérmenes por \(cm^3\) en función del tiempo.
¿Qué cantidad de gérmenes por \(cm^3\) es predecible encontrar cuando hayan transcurrido 6 horas? ¿Es buena esa predicción?
Encuentre la correlación entre \(X\) e \(Y\), ¿qué concluye?
Grafica la recta de regresión con los puntos \((x,y)\).