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.

LS0tDQp0aXRsZTogIkFuYWxpc2lzIExvbmdpdHVkaW5hbCBkZSBOaXZlbCBkZSBMZWN0dXJhIg0KYXV0aG9yOiAiTHVjYXMgTHVzaWVsbGkiDQpkYXRlOiAiMjAyNC0wMy0xNSINCm91dHB1dDogDQogICBodG1sX2RvY3VtZW50Og0KICAgIHRoZW1lOiAiY29zbW8iDQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFIA0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCiAgICBudW1iZXItc2VjdGlvbnM6IFRSVUUNCiAgICBkZl9wcmludDogcGFnZWQNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChtZXNzYWdlID0gRiwgd2FybmluZyA9IEYpDQpgYGANCg0KYGBge3IsIHJlc3VsdHM9J2hvbGQnfQ0KDQpsaWJyYXJ5KHN0YXRzKQ0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkocnN0YXRpeCkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGxtZTQpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmRhdG9zPC1yZWFkX3RhYmxlKCJkYXRvcy50eHQiLCBuYT0iLTk5IikNCmRhdG9zDQpzdW1tYXJ5KGRhdG9zKQ0KDQpgYGANCg0KDQoNCmBgYHtyfQ0KDQojIFBpdm90ZWFyIGRhdG9zDQoNCmRhdG9zX2xvbmcgPC0gcGl2b3RfbG9uZ2VyKGRhdG9zLCBjb2xzID0gc3RhcnRzX3dpdGgoInJlYWQiKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc190byA9ICJUZ3JhZGUiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX3ByZWZpeCA9ICJyZWFkLiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAicmVhZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNfZHJvcF9uYSA9IFRSVUUpDQpkYXRvc19sb25nDQoNCmRhdG9zX2xvbmckVGdyYWRlIDwtIGZhY3RvcihkYXRvc19sb25nJFRncmFkZSkNCg0KYGBgDQoNCjItIEdlbmVyYXIgdW5hIHZhcmlhYmxlIGZhY3RvciBhIHBhcnRpciBkZSBsYSB2YXJpYWJsZSBSaXNrLCBxdWUgdGVuZ2EgZG9zIG1vZGFsaWRhZGVzIChhdmVudGFqYWRvcyB5IG5vIGF2ZW50YWphZG9zKQ0KMy0gQ2FsY3VsYXIgbWVkaWEgeSBkZXN2w61vIGRlIGxhIHZhcmlhYmxlIHJlYWQNCmBgYHtyfQ0KIzIgUmVjb2RpZmljYXIgdmFyaWFibGUgUmlzaw0KZGF0b3NfbG9uZyRSaXNrX2ZhY3RvciA8LSBmYWN0b3IoaWZlbHNlKGRhdG9zX2xvbmckcmlzayA9PSAiQURWIiwgImF2ZW50YWphZG9zIiwgIm5vX2F2ZW50YWphZG9zIikpDQoNCiNNZWRpYSB5IGRlc3ZpbyBkZSByZWFkDQptZWFuKGRhdG9zX2xvbmckcmVhZCkNCnNkKGRhdG9zX2xvbmckcmVhZCkNCg0KDQpgYGANCg0KDQoNCg0KNC0gUmVhbGl6YXIgbG9zIGdyw6FmaWNvcyBsb25naXR1ZGluYWxlcyBwYXJhIGxhIHZhcmlhYmxlIHJlYWQNCg0KYGBge3J9DQojNCBHcsOhZmljbyBkZSBsw61uZWFzIHBhcmEgbGEgdmFyaWFibGUgcmVhZCBwb3IgZ3JhZG8NCmdncGxvdChkYXRvc19sb25nLCBhZXMoeCA9IFRncmFkZSwgeSA9IHJlYWQsIGdyb3VwID0gc3ViaWQsIGNvbG9yID0gUmlza19mYWN0b3IpKSArDQogIGdlb21fbGluZSgpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgbGFicyh4ID0gIkdyYWRvIiwgeSA9ICJQdW50YWplIGRlIGxlY3R1cmEiLCBjb2xvciA9ICJSaWVzZ28iKSArDQogIGxhYnModGl0bGUgPSAiRXZvbHVjacOzbiBkZSBsYSBWYXJpYWJsZSAnUmVhZCcgcG9yIEdyYWRvIiwNCiAgICAgICB4ID0gIkdyYWRvIiwNCiAgICAgICB5ID0gIlB1bnRhamUgZGUgTGVjdHVyYSIpICsNCiAgdGhlbWVfYncoKQ0KDQojIEdyw6FmaWNvIGRlIGzDrW5lYXMgcG9yIHN1amV0bw0KZ2dwbG90KGRhdG9zX2xvbmcsIGFlcyh4ID0gVGdyYWRlLCB5ID0gcmVhZCwgZ3JvdXAgPSBzdWJpZCkpICsNCiAgZ2VvbV9saW5lKCkgKyANCiAgZ2VvbV9wb2ludCgpICsgDQogIGxhYnModGl0bGUgPSAiRXZvbHVjacOzbiBkZSBsYSBWYXJpYWJsZSAnUmVhZCcgcG9yIFN1amV0byB5IEdyYWRvIiwNCiAgICAgICB4ID0gIkdyYWRvIiwNCiAgICAgICB5ID0gIlB1bnRhamUgZGUgTGVjdHVyYSIpICsNCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgZmFjZXRfd3JhcCh+IHN1YmlkLCBzY2FsZXMgPSAiZnJlZV95IikrDQogIHRoZW1lX2J3KCkNCg0KYGBgDQoNCjUtIEFqdXN0YXIgdW4gbW9kZWxvIGRlIHJlZ3Jlc2nDs24gbGluZWFsIGEgbGEgdmFyaWFibGUgcmVhZCB1dGlsaXphbmRvIGNvbW8gcHJlZGljdG9yIGEgbGEgdmFyaWFibGUgcmVhZC4gIyMgQXN1bW8gcXVlIGZ1ZSB1biBlcnJvciB5IHNlIHJlcXVpZXJlIHJlYWxpemFyIHBvciBncmFkZS4NCg0KDQoNCmBgYHtyfQ0KIzUgTW9kZWxvIGRlIHJlZ3Jlc2nDs24gbGluZWFsIGEgbGEgdmFyaWFibGUgcmVhZCB1dGlsaXphbmRvIGNvbW8gcHJlZGljdG9yIGEgbGEgdmFyaWFibGUgcmVhZC4gDQpsbS4xIDwtIGxtKHJlYWR+VGdyYWRlLCBkYXRhPWRhdG9zX2xvbmcpDQpzdW1tYXJ5KGxtLjEpDQpgYGANCg0KNi0gQWp1c3RhciB1biBtb2RlbG8gZGUgcmVncmVzacOzbiBsaW5lYWwgamVyw6FycXVpY2EgY29uIGxhcyBtaXNtYXMgdmFyaWFibGVzDQoNCmBgYHtyfQ0KDQpsbWVyLjEgPC0gbG1lcihyZWFkIH4gVGdyYWRlICsgKDEgfCBzdWJpZCksIGRhdGEgPSBkYXRvc19sb25nKQ0Kc3VtbWFyeShsbWVyLjEpDQoNCg0KDQoNCg0KYGBgDQoNCkVuIHJlc3VtZW4sIGVzdGUgbW9kZWxvIHN1Z2llcmUgcXVlIGV4aXN0ZSB1bmEgcmVsYWNpw7NuIHNpZ25pZmljYXRpdmEgZW50cmUgZWwgcHVudGFqZSBkZSBsZWN0dXJhIChyZWFkKSB5IGVsIGdyYWRvIChUZ3JhZGUpLCBkZXNwdcOpcyBkZSBjb250cm9sYXIgcG9yIGVsIGVmZWN0byBhbGVhdG9yaW8gZGVsIGlkZW50aWZpY2Fkb3Igc3ViaWQuIEVzcGVjw61maWNhbWVudGUsICBsb3MgY29lZmljaWVudGVzIGluZGljYW4gcXVlLCBlbiBwcm9tZWRpbywgbG9zIGVzdHVkaWFudGVzIGVuIGVsIGdyYWRvIDggKFRncmFkZTMpIHRpZW5lbiB1biBwdW50YWplIGRlIGxlY3R1cmEgIGFwcm94aW1hZGFtZW50ZSAzMS45MzIgcHVudG9zIG3DoXMgYWx0byBxdWUgbG9zIGVzdHVkaWFudGVzIGVuIGVsIGdyYWRvIDUgKG5pdmVsIGJhc2UpLCBkZXNwdcOpcyBkZSBjb250cm9sYXIgcG9yIGVsIGVmZWN0byBhbGVhdG9yaW8uTGEgaW5jbHVzacOzbiBkZWwgZWZlY3RvIGFsZWF0b3JpbyBwZXJtaXRlIHF1ZSBlbCBpbnRlcmNlcHRvIHZhcsOtZSBlbnRyZSBsb3MgZGlmZXJlbnRlcyB2YWxvcmVzIGRlIHN1YmlkLCBsbyBxdWUgYXl1ZGEgYSBjb250cm9sYXIgbGEgY29ycmVsYWNpw7NuIGVudHJlIGxhcyBvYnNlcnZhY2lvbmVzIGRlbCBtaXNtbyBlc3R1ZGlhbnRlLg==