Estadística inferencial

Clase 1.12
Distribuciones bidimensionales
Regresión lineal

Msc. Roberto Trespalacios

Universidad Tecnológica de Bolivar

2024-01-29

Tabla de contenido

  • Distribuciones bidimensionales
    • Relación funcional bidimensional
    • Relación estadística bidimensional
    • Tipos de relación
      • Determinística
      • No determinística
      • Lineal
      • No lineal
      • Ausencia de relación
  • 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:50
g = 9.8
h = 0.5*g*t^2

df1 = 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.

Code
library(magrittr)
library(knitr)
library(kableExtra)
require(plyr)
library(readr)

datos <- read_table("/home/rober/Documents/utb_2024/est_prob/clase_est_prob/datos/grasa.txt")

datos %>% 
    kable %>%
    kable_styling("striped", full_width = F) %>% 
   scroll_box(width = "500px", height = "300px")
peso edad grasa
84 46 354
73 20 190
65 52 405
70 30 263
76 57 451
69 25 302
63 28 288
72 36 385
79 57 402
75 44 365
89 31 290
65 52 346
57 23 254
59 60 395
69 48 434
60 34 220
79 51 374
75 50 308
82 34 220
59 46 311
67 23 181
85 37 274
55 40 303
63 30 244
Code
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:40
y = 1.8*x + 32

df2 = 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.

\[ \begin{align*} f (x) =& \beta_0 + 0 x + \varepsilon \\ = & \beta_0 + \varepsilon \\ = & 71.2 + \varepsilon \end{align*} \]

Code
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:

\[R_{xy}={\frac{{\displaystyle \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)} \left(y_{i}-\bar{y}\right)}{n-1}}= \frac{\displaystyle \sum_{i=1}^{n} x_i y_i - n\bar{x}\bar{y}}{\displaystyle n-1}\]

  • 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}\):

\[r_{xy} = \frac{R_{xy}}{s_xs_y}\]

donde

  • \(\displaystyle s^2_x= \frac{\sum_{i=1}^{n}(x_{i}-\bar{x})^2}{n-1}\)
  • \(\displaystyle s^2_y= \frac{\sum_{i=1}^{n}(y_{i}-\bar{y})^2}{n-1}\)

\[-1 \leqslant r_{xy} \leqslant 1\]

El modelo de regresión lineal simple

El modelo de regresión lineal simple supone que,

\[Y_i = \beta_0 + \beta_1X_i + \varepsilon_i\]

donde:

  • \(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:

  1. Encontrar estimaciones de los parámetros \(\beta_0\) y \(\beta_1\).
  2. 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.
  3. Estime la cantidad de grasa tendría una persona de 70 años.
  4. Construir el gráfico de la recta de regresión lineal y los puntos.

Solución (1a)

  1. Encontrar estimaciones de los parámetros \(\beta_0\) y \(\beta_1\).

Manualmente

\[ \begin{align*} \hat{\beta}_1 &= \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} \\ & = \frac{318026 - 300470.2}{41284 - 37921.5} \\ & = 5.22 \end{align*} \] \[ \begin{align*} \hat{\beta}_0 &= \bar{y}-\hat{\beta}_1\bar{x} \\ & = 314.96 - 207.54 \\ & = 107.42 \end{align*} \]

En R (construyendo el código)

Code
x = datos$edad
y = datos$grasa
n = 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$edad
y = datos$grasa

mod = 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)

  1. 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$edad
y = datos$grasa

covxy = 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$edad
y = datos$grasa

rxy = 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)

  1. 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$edad
y = datos$grasa
edad = 70 # edad del individuo
mod = lm(y ~ x) # modelo de regresion lineal

hbeta1 = mod$coefficients[2] # estimado de beta1
hbeta0 = mod$coefficients[1] # estimado de beta0
yest = hbeta0 + hbeta1*edad # valor estimado de y

cat("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$edad
y = datos$grasa
edad = data.frame(x = 70) # edad del individuo
mod = lm(y ~ x) # modelo de regresion lineal


yest = round(predict(mod, edad), 2) # valor estimado de y

cat("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)

  1. 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)\).