library(stats)
library(readr)
library(rstatix)
library(dplyr)
library(lme4)
library(tidyverse)
datos<-read_table("datos.txt", na="-99")
datos
summary(datos)
## subid read.5 read.6 read.7
## Min. : 1.00 Min. :149.0 Min. :154.0 Min. :174.0
## 1st Qu.: 6.25 1st Qu.:199.0 1st Qu.:201.2 1st Qu.:206.5
## Median :11.50 Median :202.5 Median :212.5 Median :215.0
## Mean :11.50 Mean :205.1 Mean :211.5 Mean :215.7
## 3rd Qu.:16.75 3rd Qu.:218.0 3rd Qu.:225.2 3rd Qu.:231.8
## Max. :22.00 Max. :237.0 Max. :241.0 Max. :248.0
##
## read.8 risk gen eth
## Min. :177.0 Length:22 Length:22 Length:22
## 1st Qu.:213.2 Class :character Class :character Class :character
## Median :218.5 Mode :character Mode :character Mode :character
## Mean :218.0
## 3rd Qu.:233.0
## Max. :246.0
## NA's :8
## ell sped att
## Min. :0.0000 Length:22 Min. :0.8500
## 1st Qu.:0.0000 Class :character 1st Qu.:0.9525
## Median :0.0000 Mode :character Median :0.9700
## Mean :0.1364 Mean :0.9564
## 3rd Qu.:0.0000 3rd Qu.:0.9800
## Max. :1.0000 Max. :1.0000
##
# Pivotear datos
datos_long <- pivot_longer(datos, cols = starts_with("read"),
names_to = "Tgrade",
names_prefix = "read.",
values_to = "read",
values_drop_na = TRUE)
datos_long
datos_long$Tgrade <- factor(datos_long$Tgrade)
2- Generar una variable factor a partir de la variable Risk, que tenga dos modalidades (aventajados y no aventajados) 3- Calcular media y desvío de la variable read
#2 Recodificar variable Risk
datos_long$Risk_factor <- factor(ifelse(datos_long$risk == "ADV", "aventajados", "no_aventajados"))
#Media y desvio de read
mean(datos_long$read)
## [1] 212.025
sd(datos_long$read)
## [1] 19.97275
4- Realizar los gráficos longitudinales para la variable read
#4 Gráfico de líneas para la variable read por grado
ggplot(datos_long, aes(x = Tgrade, y = read, group = subid, color = Risk_factor)) +
geom_line() +
geom_point() +
labs(x = "Grado", y = "Puntaje de lectura", color = "Riesgo") +
labs(title = "Evolución de la Variable 'Read' por Grado",
x = "Grado",
y = "Puntaje de Lectura") +
theme_bw()
# Gráfico de líneas por sujeto
ggplot(datos_long, aes(x = Tgrade, y = read, group = subid)) +
geom_line() +
geom_point() +
labs(title = "Evolución de la Variable 'Read' por Sujeto y Grado",
x = "Grado",
y = "Puntaje de Lectura") +
theme_minimal() +
facet_wrap(~ subid, scales = "free_y")+
theme_bw()
5- Ajustar un modelo de regresión lineal a la variable read utilizando como predictor a la variable read. ## Asumo que fue un error y se requiere realizar por grade.
#5 Modelo de regresión lineal a la variable read utilizando como predictor a la variable read.
lm.1 <- lm(read~Tgrade, data=datos_long)
summary(lm.1)
##
## Call:
## lm(formula = read ~ Tgrade, data = datos_long)
##
## Residuals:
## Min 1Q Median 3Q Max
## -57.455 -8.182 0.273 14.034 32.318
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 205.136 4.212 48.698 <2e-16 ***
## Tgrade6 6.318 5.957 1.061 0.2922
## Tgrade7 10.545 5.957 1.770 0.0807 .
## Tgrade8 12.864 6.755 1.904 0.0607 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 19.76 on 76 degrees of freedom
## Multiple R-squared: 0.05855, Adjusted R-squared: 0.02139
## F-statistic: 1.576 on 3 and 76 DF, p-value: 0.2022
6- Ajustar un modelo de regresión lineal jerárquica con las mismas variables
lmer.1 <- lmer(read ~ Tgrade + (1 | subid), data = datos_long)
summary(lmer.1)
## Linear mixed model fit by REML ['lmerMod']
## Formula: read ~ Tgrade + (1 | subid)
## Data: datos_long
##
## REML criterion at convergence: 565.6
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -1.85146 -0.58222 -0.04728 0.61187 1.96284
##
## Random effects:
## Groups Name Variance Std.Dev.
## subid (Intercept) 350.31 18.717
## Residual 30.34 5.509
## Number of obs: 80, groups: subid, 22
##
## Fixed effects:
## Estimate Std. Error t value
## (Intercept) 205.136 4.160 49.316
## Tgrade6 6.318 1.661 3.804
## Tgrade7 10.545 1.661 6.349
## Tgrade8 14.988 1.950 7.687
##
## Correlation of Fixed Effects:
## (Intr) Tgrad6 Tgrad7
## Tgrade6 -0.200
## Tgrade7 -0.200 0.500
## Tgrade8 -0.170 0.426 0.426
En resumen, este modelo sugiere que existe una relación significativa entre el puntaje de lectura (read) y el grado (Tgrade), después de controlar por el efecto aleatorio del identificador subid. Específicamente, los coeficientes indican que, en promedio, los estudiantes en el grado 8 (Tgrade3) tienen un puntaje de lectura aproximadamente 31.932 puntos más alto que los estudiantes en el grado 5 (nivel base), después de controlar por el efecto aleatorio.La inclusión del efecto aleatorio permite que el intercepto varíe entre los diferentes valores de subid, lo que ayuda a controlar la correlación entre las observaciones del mismo estudiante.