Taller de Regresión Lineal Simple: Aplicaciones en Biociencias y Salud

Instrucciones: El presente taller tiene como objetivo evaluar la relación funcional entre variables críticas en escenarios biológicos, toxicológicos y de ingeniería de alimentos. Para cada caso, el alumno deberá:

1. Cargar los datos en R.

2. Ajustar el modelo de regresión lineal simple (\(Y = \beta_0 + \beta_1x + \epsilon\)). 3. Generar un panel de 4 gráficas de diagnóstico para verificar los supuestos de Gauss-Markov.

4. Responder a las preguntas de análisis crítico.


Privación de Sueño

Contexto: En la neurofisiología moderna, se estudia la degradación de las funciones ejecutivas bajo condiciones de estrés circadiano. Este experimento busca cuantificar el umbral de fatiga neuronal.

df_sueno <- data.frame( x = c(8, 8, 12, 12, 16, 16, 20, 20, 24, 24), y = c(8, 6, 6, 10, 8, 14, 14, 12, 16, 12) )
# 1. Ajuste del modelo
modelo1 <- lm(y ~ x, data = df_sueno)
m1<-summary(modelo1)
print(m1)
## 
## Call:
## lm(formula = y ~ x, data = df_sueno)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -2.70  -2.00   0.35   1.45   3.40 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)   3.0000     2.1266   1.411  0.19602   
## x             0.4750     0.1253   3.791  0.00531 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.242 on 8 degrees of freedom
## Multiple R-squared:  0.6423, Adjusted R-squared:  0.5976 
## F-statistic: 14.37 on 1 and 8 DF,  p-value: 0.005308
# 2. Generación del Panel de Diagnóstico (4 gráficas en una)
par(mfrow = c(2, 2))
plot(modelo1)

par(mfrow = c(1, 1)) # Resetear panel

Potencia de Antibiótico vs Temp

Contexto: En Ingeniería de Alimentos y Farmacia, la estabilidad de un compuesto activo es función de la energía cinética del sistema. Según la ecuación de Arrhenius, la temperatura afecta la velocidad de reacción.

df_antibiotico <- data.frame( temp = rep(c(30, 50, 70, 90), each = 3), potencia = c(38, 43, 29, 32, 26, 33, 19, 27, 23, 14, 19, 21) )
modelo2 <- lm(potencia ~ temp, data = df_antibiotico)
m2<-summary(modelo2)
print(m2)
## 
## Call:
## lm(formula = potencia ~ temp, data = df_antibiotico)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -7.500 -3.667  1.500  2.917  6.500 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 46.00000    3.60640  12.755 1.64e-07 ***
## temp        -0.31667    0.05632  -5.622 0.000221 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.363 on 10 degrees of freedom
## Multiple R-squared:  0.7597, Adjusted R-squared:  0.7356 
## F-statistic: 31.61 on 1 and 10 DF,  p-value: 0.0002207
par(mfrow = c(2, 2))
plot(modelo2)

par(mfrow = c(1, 1)) # Resetear panel

Supervivencia de Peces

Contexto: Se aborda la contaminación térmica en ecosistemas acuáticos. Cuando una planta industrial descarga agua a altas temperaturas en un río, la homeostasis de los peces se ve comprometida.

df_peces_surv <- data.frame( tiempo = seq(0.10, 0.55, by = 0.05), sobrevivientes = c(1.00, 0.95, 0.95, 0.90, 0.85, 0.70, 0.65, 0.60, 0.55, 0.40) )
modelo3 <- lm(tiempo ~ sobrevivientes, data = df_peces_surv)
m3<-summary(modelo3)
print(m3)
## 
## Call:
## lm(formula = tiempo ~ sobrevivientes, data = df_peces_surv)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.046474 -0.028450  0.005272  0.023489  0.044224 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     0.87515    0.04187   20.90 2.88e-08 ***
## sobrevivientes -0.72868    0.05373  -13.56 8.39e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03278 on 8 degrees of freedom
## Multiple R-squared:  0.9583, Adjusted R-squared:  0.9531 
## F-statistic: 183.9 on 1 and 8 DF,  p-value: 8.393e-07
# 2. Generación del Panel de Diagnóstico (4 gráficas en una)
par(mfrow = c(2, 2))
plot(modelo3)

par(mfrow = c(1, 1)) # Resetear panel

Morfometría de Tortugas

Contexto: La alometría estudia las relaciones de proporción entre diferentes partes del cuerpo de un organismo durante su crecimiento. En tortugas, el diámetro y la altura del caparazón mantienen una relación geométrica rígida.

Contexto: La EPA (Environmental Protection Agency) utiliza la Concentración Letal Media (LC50) para regular vertidos industriales. Existen dos protocolos: el estático (agua estancada) y el de flujo (agua renovada). Este último es más costoso pero más realista.

df_tortugas <- data.frame( altura = c(78, 65, 77, 76, 72, 76, 75, 77, 69, 65), diametro = c(185, 194, 173, 200, 179, 213, 134, 191, 177, 199) )
modelo4 <- lm(altura ~ diametro, data = df_tortugas)
m4<-summary(modelo4)
print(m4)
## 
## Call:
## lm(formula = altura ~ diametro, data = df_tortugas)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -7.674 -3.490  1.899  3.885  5.017 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 79.33533   15.05294   5.270 0.000755 ***
## diametro    -0.03434    0.08109  -0.423 0.683131    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.233 on 8 degrees of freedom
## Multiple R-squared:  0.02192,    Adjusted R-squared:  -0.1003 
## F-statistic: 0.1793 on 1 and 8 DF,  p-value: 0.6831
# 2. Generación del Panel de Diagnóstico (4 gráficas en una)
par(mfrow = c(2, 2))
plot(modelo4)

par(mfrow = c(1, 1)) # Resetear panel

Ecotoxicología LC50

df_toxicologia <- data.frame( estatica = c(39, 37.5, 22.2, 17.5, 0.64, 0.45, 2.62, 2.36, 32, 0.77), flujo = c(23, 22.3, 9.4, 9.7, 0.15, 0.28, 0.75, 0.51, 28, 0.39) )
modelo5 <- lm(estatica ~ flujo, data = df_toxicologia)
m<-summary(modelo4)
print(m4)
## 
## Call:
## lm(formula = altura ~ diametro, data = df_tortugas)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -7.674 -3.490  1.899  3.885  5.017 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 79.33533   15.05294   5.270 0.000755 ***
## diametro    -0.03434    0.08109  -0.423 0.683131    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.233 on 8 degrees of freedom
## Multiple R-squared:  0.02192,    Adjusted R-squared:  -0.1003 
## F-statistic: 0.1793 on 1 and 8 DF,  p-value: 0.6831
# 2. Generación del Panel de Diagnóstico (4 gráficas en una)
par(mfrow = c(2, 2))
plot(modelo5)

par(mfrow = c(1, 1)) # Resetear panel