给定两个向量:

x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)


如何计算效果大小的科恩d?

例如,我想使用pwr package估计方差不相等的t检验的功效,它需要Cohen d。

最佳答案

this linkwikipedia之后,Cohen进行t检验的d似乎是:



其中sigma(分母)是:



因此,根据您的数据:

set.seed(45)                        ## be reproducible
x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)

cohens_d <- function(x, y) {
    lx <- length(x)- 1
    ly <- length(y)- 1
    md  <- abs(mean(x) - mean(y))        ## mean difference (numerator)
    csd <- lx * var(x) + ly * var(y)
    csd <- csd/(lx + ly)
    csd <- sqrt(csd)                     ## common sd computation

    cd  <- md/csd                        ## cohen's d
}
> res <- cohens_d(x, y)
> res
# [1] 0.5199662

关于r - 估计Cohen的效果大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15436702/

10-12 19:16