Я пытаюсь воспроизвести вывод 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
.
Все предложения приветствуются! Я все еще учусь создавать репер ...