R 中的多变量测试

问题描述 投票:0回答:1

我正在尝试运行一个多变量模型,其中我使用 lm 函数在 r 中有 3 个 dv 而没有 iv

我有这个 sas 代码:

    proc glm; 
    model a b c = / nouni; 
    repeated shoe / mean nouni; 
    run;

我正在尝试在 r 中复制这一点,但遇到了很多麻烦。我这样指定模型:mod <- lm(cbind(a, b, c) ~ 1, data = track_wi), and then used tried to use the Manova function in the "car" package, for example: Manova(mod). The problem is the output, the df r is outputting seem wrong. I have 6 participants and 3 variables, so df denominator should be 4, and df numerator should be 2. But R is outputting 3 for both df numerator and df denominator

以下是示例数据

track <- data.frame(ID = c(1, 2, 3, 4, 5, 6), 
                     a = c(20, 12, 18, 16, 21, 15),
                     b = c(18, 14, 19, 13, 19, 15),
                     c = c(10, 8, 14, 10, 15, 11))

这是我试图在 r 中复制的 sas 输出:sas's output using proc glm

r sas
1个回答
0
投票

Puedes usar la funcion manova,Esto te dará una salida 类似于 lo que obtendrías del procedimiento proc glm en SAS。

    # Carga el paquete car para la función Manova
library(car)
# Crea tus datos de muestra
track <- data.frame(ID = c(1, 2, 3, 4, 5, 6), 
                     a = c(20, 12, 18, 16, 21, 15),
                     b = c(18, 14, 19, 13, 19, 15),
                     c = c(10, 8, 14, 10, 15, 11))

# Ajusta el modelo multivariado
mod <- manova(cbind(a, b, c) ~ 1, data = track)
# Muestra el resumen del modelo
summary(mod)

o si lo quebuscas es extraer específicamente los grados de libertad del modelo, puedes hacerlo de la siguiente manera:

    # Extrae los grados de libertad
df_residual <- mod$stats$Residual[1]  # Grados de libertad residuales
df_total <- mod$stats$Totals[1]       # Grados de libertad totales
# Muestra los grados de libertad
df_residual
df_total
© www.soinside.com 2019 - 2024. All rights reserved.