我试图重现SPSS输出的重要性,即当不假定均等方差时,均值之间呈线性趋势。 我非常感激地使用了http://www-personal.umich.edu/~gonzo/coursenotes/file3.pdf中的代码来创建一个用于计算单独方差的函数,根据我的搜索,我将其理解为SPSS中的“未假定等方差”输出。
我的问题/目标: 我只是在评估多项式正交趋势(大部分是线性的)。我想修改创建函数的代码,以便使对比度参数可以采用预制的对比度矩阵,而不是每次都手动指定系数(输入错字的空间!)。
...我已经尝试了那些确切的命令,但是收到Error in contrast %*% means : non-conformable arguments
。我已经试过了代码,但是无法正常工作。
sepvarcontrast <- function(dv, group, contrast) {
means <- c(by(dv, group, mean))
vars <- c(by(dv, group, var))
ns <- c(by(dv, group, length))
ihat <- contrast %*% means
t.denominator <- sqrt(contrast^2 %*% (vars/ns))
t.welch <- ihat/ t.denominator
num.contrast <- ifelse(is.null(dim(contrast)),1,dim(contrast)[1])
df.welch <- rep(0, num.contrast)
if (is.null(dim(contrast))) contrast <- t(as.matrix(contrast))
for (i in 1:num.contrast) {
num <- (contrast[i,]^2 %*% (vars))^2
den <- sum((contrast[i,]^2 * vars)^2 / (ns-1))
df.welch[i] <- num/den
}
p.welch <- 2*(1- pt(abs(t.welch), df.welch))
result <- list(ihat = ihat, se.ihat = t.denominator, t.welch = t.welch,
df.welch = df.welch, p.welch = p.welch)
return(result)
}
我希望能够使用如下功能:
# Create a polynomial contrast matrix for 5 groups, then save
contr.mat5 <- contr.poly(5)
# Calculate separate variance
sepvarcontrast(dv, group, contrast = contr.mat5)
我已经尝试过使用那些确切的命令来查看它们是否可以工作,但是会收到Error in contrast %*% means : non-conformable arguments
。
感谢所有建议!我仍在学习如何创建reprex ...