2013-03-15 9 views

Odpowiedz

28

Following this link i wikipedia, d Cohena dla testu t wydaje się być:

enter image description here

Gdzie sigma (mianownik) jest:

enter image description here

Tak, z twoimi danymi:

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

+1, wspaniała odpowiedź. – juba

25

Istnieje kilka pakietów zapewniających funkcję obliczania współczynnika Cohena. Można na przykład użyć funkcji cohensD tworzą pakiet lsr:

library(lsr) 
set.seed(45) 
x <- rnorm(10, 10, 1) 
y <- rnorm(10, 5, 5) 
cohensD(x,y) 
# [1] 0.5199662 
+2

Czy możesz ustawić seed, aby powiedział 45 i obliczyć go ponownie i wkleić wynik? (dla odtwarzalności) – Arun

+0

@Arun Tak, dobry pomysł, dzięki. – juba

+1

Inne pakiety, które zawierają funkcję Cohena to: _effsize_ i _pwr_ (zobacz https://cran.r-project.org/web/packages/) – Tapper

Powiązane problemy