估计科恩的效果大小

Kev*_*vin 13 statistics r

给出两个向量:

x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)
Run Code Online (Sandbox Code Playgroud)

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

例如,我想使用pwr包来估计具有不等方差的t检验的功效,并且它需要Cohen的d.

Aru*_*run 29

按照这个链接维基百科,科恩的t测试似乎是:

在此输入图像描述

其中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
Run Code Online (Sandbox Code Playgroud)


jub*_*uba 26

有几个软件包提供了计算Cohen的功能.例如,您可以使用cohensD函数形式的lsr包:

library(lsr)
set.seed(45)
x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)
cohensD(x,y)
# [1] 0.5199662
Run Code Online (Sandbox Code Playgroud)

  • 你可以设置种子说45并再次计算并粘贴结果吗?(为了再现性) (2认同)
  • 其他包含 Cohen 函数的包是:_effsize_ 和 _pwr_(参见 https://cran.r-project.org/web/packages/) (2认同)