Я не совсем уверен, какова причина проблемы в вашем примере (возможно, кто-то еще может прокомментировать здесь), но если вы посмотрите на примеры в разделе ?cohen.d
, есть несколько различных методов для его вычисления:
treatment = rnorm(100,mean=10)
control = rnorm(100,mean=12)
d = (c(treatment,control))
f = rep(c("Treatment","Control"),each=100)
## compute Cohen's d
## treatment and control
cohen.d(treatment,control)
## data and factor
cohen.d(d,f)
## formula interface
cohen.d(d ~ f)
Если вы используете первый пример cohen.d(treatment, control)
и измените его на cohen.d(control, treatment)
, вы получите следующее:
cohen.d(treatment, control)
Cohen's d
d estimate: -1.871982 (large)
95 percent confidence interval:
inf sup
-2.206416 -1.537547
cohen.d(control, treatment)
Cohen's d
d estimate: 1.871982 (large)
95 percent confidence interval:
inf sup
1.537547 2.206416
Итак, используя двухвекторный метод из примеров с вашими данными, мы можем сделать:
a1 <- a[a$Diet == 1,"weight"]
a2 <- a[a$Diet == 2,"weight"]
cohen3a <- cohen.d(a1, a2)
cohen3b <- cohen.d(a2, a1)
Я заметил, что f
в примерах ?cohen.d
является не фактором, а вектором символов. Я попытался поиграть с методом cohen.d(d, f)
, но не нашел решения. Хотелось бы узнать, есть ли у кого-то еще что-нибудь об этом.