Inicio › Foros › Etapa II – Analiza tus Datos › error anova friedman.test
- Este debate tiene 2 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 3 años por Jordi.
-
AutorEntradas
-
30 julio, 2021 a las 16:56 #11803Antonio JusticiaParticipante
Hola, estoy realizando el ejercicio de la tabla ANOVA con 3 factores, es decir el de ver el índice de discapacidad del mes 0 y el mes 1, en función del número de hernias discales del paciente.
Al ejecutar el test de friedman, me da este error:
> # –> TEST NO PARAMÉTRICO – FRIEDMAN TEST
> friedman.test(df[,1],group=df[,2],blocks = df[,3])
Error in friedman.test.default(df[, 1], group = df[, 2], blocks = df[, :
not an unreplicated complete block designEsta es la setencia que estoy ejecutanto en R (he probado el ejemplo 507 y si funciona, pero al copiar aqui me da error):
friedman.test(df[,1],group=df[,2],blocks = df[,3])parece que da error con la tercera columna de los IDS de los pacientes, pero vamos que lo he revisado y esta ok.
Alguna ayuda ¿?
Gracias y un saludo.2 agosto, 2021 a las 8:32 #11809Antonio JusticiaParticipanteHola, actualizo con el código en R, ya que he buscado en foros y demás y no veo donde esta el error, a ver si me puedes ayudar para así finalizar bien el ejercicio.
#leer el fichero Excel
library(readxl)
datos <- read_excel(«espalda.xlsx»)
#crear una nueva variable con la diferencia entre ODI_mes0 y ODI_mes1
diff_ODI <- datos$ODI_Mes0 – datos$ODI_Mes1
#añadir la variable al data frame
datos <- cbind(datos, diff_ODI)
# seleccionamos una variable 2 medidas pareadas
dfTOT <- datos
# Seleccionamos solo las filas de los valores del grupo 0
rowSel <- dfTOT[,11]==»0″
#crear un df con los valores del grupo 0, todas las filas de rowSel
dfTOT <- dfTOT[rowSel,c(9, 10,8)]
# creamos un data frame con las dos variables en la misma columna y un factor con el nombre de las variables
df <- data.frame(
Indice_Discapacidad = c(dfTOT[,1],dfTOT[,2]),
NHD = c(dfTOT[,3]),
#identificador de persona, la persona 1 se ha medido en el mes 0 y en el mes 1.
#es una secuencia desde 1 a la longitud del dataframe de 1 en 1.
ID = c(seq(1,length(dfTOT[,1])),seq(1,length(dfTOT[,1])))
)
library(lme4)
library(lmerTest)
# –> TEST PARAMÉTRICO – ANOVA DE MEDIDAS REPETIDAS (si son normales todas las variables)
#primero la variable de salida «Índice_Discapacidad» y luego las variables de entrada «NHD», «id»
rmaModel <- lmer(Indice_Discapacidad ~ NHD + (1|ID), data = df)
anova(rmaModel) #el resultado es un p-valor 4.738e-05 muy pequeño, se cumple la H1
#hacemos el test de normalidad, para saber si utilizamos
#el paramtrico y nos quedamos con el ANOVA o no parametrico que es el FRIEDMAN TEST
shapiro.test(residuals(rmaModel))
# –> TEST NO PARAMÉTRICO – FRIEDMAN TEST, ya que no es normal
friedman.test(df[,1],group=df[,2],blocks = df[,3])ESTE ES EL ERROR:
> friedman.test(df[,1],group=df[,2],blocks = df[,3])
Error in friedman.test.default(df[, 1], group = df[, 2], blocks = df[, :
not an unreplicated complete block designGracias y un saludo.
26 agosto, 2021 a las 9:50 #12005JordiSuperadministradorHola,
Te paso un vídeo con un ejemplo hecho y el porqué del error.
ESTE ES EL EJEMPLO QUE TE HABLO EN EL VÍDEO: https://stats.idre.ucla.edu/r/seminars/repeated-measures-analysis-with-r/
aBRAZOS,
-
AutorEntradas
- Debes estar registrado para responder a este debate.