Омега в квадраті для вимірювання ефекту в R?


10

Книга зі статистикою, яку я читаю, рекомендує омегу в квадраті для вимірювання ефектів моїх експериментів. Я вже довів, використовуючи розділений сюжетний дизайн (поєднання дизайну всередині суб'єктів та між суб'єктами), що мої фактори в межах суб'єктів є статистично значущими з p <0,001 та F = 17.

Зараз я дивлюсь, наскільки велика різниця ... чи існує реалізація омеги, яка розміщена десь за R (або python? Я знаю ... можна мріяти;) Пошук в Інтернеті речей, пов'язаних з R - це болю * , я не знаю, як мені вдається знайти речі з C.

Дякую!


3
Я не знаю такої функції, але, можливо, хтось міг би подивитися на формули в Olejnik and Algina (2003) cps.nova.edu/marker/olejnik2003.pdf і написати функцію
Jeromy Anglim

3
@Jeromy Приємна довідка! Це один варто подивитися також: Рекомендовані статистичні дані Розмірний ефект для повторних вимірів конструкцій (BRM 2005 37 (3)), j.mp/cT9uEQ
хл

2
@chl Дякую Мабуть, ezANOVA () в пакеті ez у R-звітах узагальнено ета-квадратом.
Джеромі Англім

Відповіді:


7

Функцію для обчислення омеги в квадраті просто записати. Ця функція приймає об'єкт, повернутий тестом aov, і обчислює, повертає і розміщується омега в квадраті:

omega_sq <- function(aovm){
    sum_stats <- summary(aovm)[[1]]
    SSm <- sum_stats[["Sum Sq"]][1]
    SSr <- sum_stats[["Sum Sq"]][2]
    DFm <- sum_stats[["Df"]][1]
    MSr <- sum_stats[["Mean Sq"]][2]
    W2 <- (SSm-DFm*MSr)/(SSm+SSr+MSr)
    return(W2)
}

редагувати: оновлена ​​функція для n-way aov моделей:

omega_sq <- function(aov_in, neg2zero=T){
    aovtab <- summary(aov_in)[[1]]
    n_terms <- length(aovtab[["Sum Sq"]]) - 1
    output <- rep(-1, n_terms)
    SSr <- aovtab[["Sum Sq"]][n_terms + 1]
    MSr <- aovtab[["Mean Sq"]][n_terms + 1]
    SSt <- sum(aovtab[["Sum Sq"]])
    for(i in 1:n_terms){
        SSm <- aovtab[["Sum Sq"]][i]
        DFm <- aovtab[["Df"]][i]
        output[i] <- (SSm-DFm*MSr)/(SSt+MSr)
        if(neg2zero & output[i] < 0){output[i] <- 0}
    }
    names(output) <- rownames(aovtab)[1:n_terms]

    return(output)
}

3

Нещодавно мені довелося повідомити про .ω2

partialOmegas <- function(mod){
    aovMod <- mod
    if(!any(class(aovMod) %in% 'aov')) aovMod <- aov(mod)
    sumAov     <- summary(aovMod)[[1]]
    residRow   <- nrow(sumAov)
    dfError    <- sumAov[residRow,1]
    msError    <- sumAov[residRow,3]
    nTotal     <- nrow(model.frame(aovMod))
    dfEffects  <- sumAov[1:{residRow-1},1]
    ssEffects  <- sumAov[1:{residRow-1},2]
    msEffects  <- sumAov[1:{residRow-1},3]
    partOmegas <- abs((dfEffects*(msEffects-msError)) /
                  (ssEffects + (nTotal -dfEffects)*msError))
    names(partOmegas) <- rownames(sumAov)[1:{residRow-1}]
    partOmegas
}

Це безладна функція, яку легко можна прибрати. Він обчислює часткове , і, ймовірно, його слід використовувати лише на факторних конструкціях між суб'єктами.ω2


2

Я б припустив, що узагальнений квадрат квадрата вважається ( ref , ref ) більш відповідним показником розміру ефекту. Він включений у вихід ANOVA в пакеті ez для R.


5
Власне, ета-квадрат є дуже позитивно упередженою статистикою. Отже, у цій ситуації набагато гірше, ніж омега-квадрат, хоча через його простоту він користується більшою популярністю.

Я згоден з користувачем вище. Ось посилання для резервного копіювання. daniellakens.blogspot.nl/2015/06/…
Deleet


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.