你好
我进行了单因素方差分析,比较了 3 组变量的平均值。我的论文审稿人要求使用 Cohen d 检验来测量效应大小。如何在 JMP 中获得此测量值?我使用的是 JMP pro V17
Cohen's d 在 JMP 17 中不可直接使用。但是,在 JMP 18 中,
分析=>用 X=>均值/方差分析/合并 t 拟合 Y
在 JMP 17 中,必须使用 JSL 进行计算。下面是一个示例脚本,它为所有组对生成 Cohen's d

或者

Names Default To Here( 1 );
dt = open("$SAMPLE_DATA/big class.jmp");
var = "height";
grp = "sex";
Eval(
Parse(
"Summarize(
dt,
bygp = by( :" || grp || " ),
stds = Std Dev( :" || var
|| " ),
ns = Count( :" || var || " ),
means = Mean( :" || var || " )
);"
)
);
nw = New Window( "Cohen's d", vlb = V List Box() );
For( i = 1, i <= N Items( bygp ) - 1, i++,
For( k = i + 1, k <= N Items( bygp ), k++,
pooled = Sqrt(
(stds[i] ^ 2 * (ns[i] - 1) + stds[k] ^ 2 * (ns[k] - 1)) / (ns[i] + ns[k] - 2)
);
dif = Abs( means[i] - means[k] );
cohen = (dif / pooled);
stats = Matrix( dif ) |/ Matrix( pooled ) |/ Matrix( cohen );
compare = {};
insert into( compare, bygp[i] || " vs. " || bygp[k]);
ob = Outline Box( grp || "=" || bygp[i] || " vs. " || grp || "=" || bygp[k],
Table Box(
String Col Box( "", compare ),
String Col Box( "", {"Difference", "Pooled Std Dev", "Cohen's d"} ),
Number Col Box( "", stats )
)
);
vlb << append( ob );
)
);
谢谢
这很有帮助。我想知道是否有办法在 JMP 18 中为 3 组而不是 2 组获取该值。合并 t 仅适用于比较 2 组中的平均值,但是,在我的例子中,我进行了单因素方差分析来比较 3 组的平均值
你好@萨米拉 ,
除了 2 个组之外,JMP 18 本身不支持此选项。您可以查看愿望清单,此需求已提出并得到承认: Cohen 的 d 表示“以 X 拟合 Y”
让我们期待未来 18.X 版本或 JMP 19 的发布。
你好@萨米拉 :FWIW,对于方差分析中的 2 个或更多组,RMSE(均方根误差)是合并的标准差。
谢谢
这对我手动计算 Cohen's d 有很大帮助。为了更清楚起见,我在拟合表摘要中找到了 RMSE。