Estimate Cohen's d for effect size

前端 未结 3 881
北恋
北恋 2021-02-01 08:24

given two vectors:

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

How to calculate Cohen\'s d for effect size?

For example, I want to

相关标签:
3条回答
  • 2021-02-01 08:47

    Another option is to use the effsize package.

    library(effsize) 
    set.seed(45) x <- rnorm(10, 10, 1) 
    y <- rnorm(10, 5, 5) 
    cohen.d(x,y)
    # Cohen's d
    # d estimate: 0.5199662 (medium)
    # 95 percent confidence interval:
    #        inf        sup 
    # -0.4353393  1.4752717
    
    0 讨论(0)
  • 2021-02-01 08:48

    There are several packages providing a function for computing Cohen's d. You can for example use the cohensD function form the lsr package :

    library(lsr)
    set.seed(45)
    x <- rnorm(10, 10, 1)
    y <- rnorm(10, 5, 5)
    cohensD(x,y)
    # [1] 0.5199662
    
    0 讨论(0)
  • 2021-02-01 09:01

    Following this link and wikipedia, Cohen's d for a t-test seems to be:

    enter image description here

    Where sigma (denominator) is:

    enter image description here

    So, with your data:

    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
    
    0 讨论(0)
提交回复
热议问题