与えられた 2 つのベクトル:
x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)
効果サイズのコーエンの d を計算する方法は?
たとえば、pwr パッケージを使用して、分散が等しくない t 検定の検出力を推定したいのですが、Cohen の d が必要です。
与えられた 2 つのベクトル:
x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)
効果サイズのコーエンの d を計算する方法は?
たとえば、pwr パッケージを使用して、分散が等しくない t 検定の検出力を推定したいのですが、Cohen の d が必要です。
このリンクとウィキペディアに従うと、コーエンの 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
コーエンのdを計算するための関数を提供するいくつかのパッケージがあります。たとえば、パッケージからcohensD
関数を使用できます。lsr
library(lsr)
set.seed(45)
x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)
cohensD(x,y)
# [1] 0.5199662
別のより最近のオプションは、effectsize
非常に柔軟で、信頼区間も返す を使用することです:
https://easystats.github.io/effectsize/reference/cohens_d.html
library(effectsize)
x <- rnorm(10, 10, 1)
y <- rnorm(10, 5, 5)
# for independent measures design
cohens_d(x, y)
#> Cohen's d | 95% CI
#> -------------------------
#> 0.77 | [-0.15, 1.67]
#>
#> - Estimated using pooled SD.
# in case design is paired
cohens_d(x, y, paired = TRUE)
#> Cohen's d | 95% CI
#> -------------------------
#> 0.49 | [-0.19, 1.20]
reprex パッケージ(v2.0.0)により 2021-06-29 に作成