2013-03-15 3 views
12

与えられた二つのベクトル:推定Cohenの効果の大きさのためにD

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

効果の大きさのためにCohenのDを計算する方法は?

例えば、私はpwr packageを使用して、不等分散でのt検定の威力を見積もり、Cohen's dが必要です。

答えて

28

this linkwikipediaに続いて、t検定のためのコーエンのdがあると思われる:

enter image description here

sigma(分母)は:

enter image description here

あなたのデータで:

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です。 – juba

25

コーエンのdを計算するための関数を提供するいくつかのパッケージがあります。あなたlsrパッケージを形成例えばcohensD機能を使用することができます。

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

シードを45に設定して再度計算して結果を貼り付けることはできますか? (再現性のために) – Arun

+0

@ Arunはい、良いアイデア、ありがとう。 – juba

+1

Cohenの機能を含むその他のパッケージは、_effsize_と_pwr_(https://cran.r-project.org/web/packages/を参照) – Tapper

関連する問題