Necesito ayuda para realizar una prueba t de comparación de medias automatizada en columnas diferentes de un documento CSV en R.
Me gustaría realizar una prueba t pareada automatizada entre la columna 2 y 3, 4 y 5, 6 y 7, y así sucesivamente. Cuando uso el código de abajo, puedo realizar una prueba t, pero no una prueba t no pareada.
data:
paciente peso_1 peso_2 BMI_1 BMI_2 chol_1 chol_2 gly_1 gly_2
1 A 86.0 97.0 34.44961 30.61482 86.0 97.0 34.44961 30.61482
2 B 111.0 55.5 33.51045 22.80572 111.0 55.5 33.51045 22.80572
3 C 92.4 70.0 28.51852 25.71166 92.4 70.0 28.51852 25.71166
código:
nombres <- colnames(dataframe)
for(i in seq(from = 2, to = 8, by = 2)){
print(nombres[i])
print(nombres[i+1])
print(t.test(dataframe[i], dataframe[i+1]))
}
resultado:
[1] “peso_1”
[1] “peso_2”
Prueba t de dos muestras (Welch)
datos: dataframe[i] y dataframe[i + 1]
t = 1.3183, df = 75.892, valor p = 0.1914
hipótesis alternativa: diferencia verdadera de medias no es igual a 0
intervalo de confianza del 95 por ciento:
-2.459965 12.090735
estimaciones puntuales:
media de x media de y
91.50256 86.68718
[1] “BMI_1”
[1] “BMI_2”
Prueba t de dos muestras (Welch)
datos: dataframe[i] y dataframe[i + 1]
t = 1.5851, df = 75.866, valor p = 0.1171
hipótesis alternativa: diferencia verdadera de medias no es igual a 0
intervalo de confianza del 95 por ciento:
-0.3817027 3.3571650
estimaciones puntuales:
media de x media de y
30.45167 28.96394
Y así sucesivamente. Cuando añado paired=TRUE a los datos:
nombres <- colnames(dataframe)
for(i in seq(from = 2, to = 8, by = 2)){
print(nombres[i])
print(nombres[i+1])
print(t.test(dataframe[i], dataframe[i+1], paired=TRUE))
}
Los resultados son exactamente los mismos, como si no incluyera la función paireada. ¿Alguien podría ayudarme con esto? Muchas gracias de antemano.
davy.ai
Para realizar una prueba t-emparejada, debes especificar que las muestras están emparejadas estableciendo el parámetro
paired
enTRUE
. En el código proporcionado, el parámetropaired
está colocado fuera de la llamada a la funciónt.test
.Para realizar una prueba t-emparejada entre las columnas 2 y 3, debes modificar el código de la siguiente manera:
Ten en cuenta que el parámetro
paired
ahora está dentro de la llamada a la funciónt.test
, y el parámetroto
de la llamada a la funciónseq
se establece en 7, ya que solo hay 7 columnas en los datos proporcionados.Este código realizará una prueba t-emparejada entre las columnas 2 y 3 (peso), 4 y 5 (IMC) y 6 y 7 (colesterol), como se especifica en la pregunta.
¡Espero que esto ayude!