860 1

[问答] Stata如何计算Cohen’s+d [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
28.4211
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10 点
帖子
0
精华
0
在线时间
0 小时
注册时间
2025-1-17
最后登录
2025-1-17

楼主
制度经济学21810 发表于 2025-1-17 10:52:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在 Stata 中,**Cohen's d** 是一种用于衡量两组均值差异的标准化效应量指标,通常用于独立样本或配对样本的均值比较(例如 t 检验)。Cohen’s d 的计算公式如下:
**Cohen's d 的公式**
1. **独立样本的 Cohen's d**:
   \[
   d = \frac{\bar{X}_1  \bar{X}_2}{s_p}
   \]
    \( \bar{X}_1 \) 和 \( \bar{X}_2 \):两组数据的均值。
    \( s_p \):两组的合并标准差(pooled standard deviation),计算公式为:
     \[
     s_p = \sqrt{\frac{(n_1  
1)s_1^2 + (n_2  
1)s_2^2}{n_1 + n_2  2}}
     \]
      \( n_1, n_2 \):两组样本的大小。
      \( s_1, s_2 \):两组样本的标准差。
2. **配对样本的 Cohen's d**:
   \[
   d = \frac{\bar{D}}{s_D}
   \]
    \( \bar{D} \):配对样本的均值差。
    \( s_D \):配对样本差值的标准差。
**如何在 Stata 中计算 Cohen's d**
**1. 独立样本的 Cohen’s d**
假设我们有一个变量 `score`,和一个分组变量 `group`(值为 1 和
2),以下是手动计算 Cohen's d 的步骤:
**(Step
1)** 描述性统计
我们需要分别计算两组的均值、标准差和样本大小:
```stata
tabstat score, by(group) statistics(mean sd n)
```
输出结果中可以找到:
两组的均值(\(\bar{X}_1, \bar{X}_2\))。
标准差(\(s_1, s_2\))。
样本大小(\(n_1, n_2\))。
**(Step
2)** 计算合并标准差
用 Stata 的 `display` 命令计算合并标准差 \(s_p\):
```stata
display sqrt(((n11)*s1^2 + (n21)*s2^
2) / (n1 + n2  
2))
```
将 `n1, n2, s1, s2` 替换为上一步中的具体值。
**(Step
3)** 计算 Cohen’s d
继续用 `display` 计算 Cohen's d:
```stata
display (mean1  mean2) / sp
```
这里的 `mean1`、`mean2` 和 `sp` 分别是两组均值和合并标准差。
**2. 配对样本的 Cohen’s d**
在配对样本中,例如同一组人在两个时间点的测量值(变量为 `score1` 和 `score2`),以下是 Cohen’s d 的计算方法:
**(Step
1)** 计算差值
创建一个新变量表示两个测量值之间的差值:
```stata
gen diff = score1  score2
```
**(Step
2)** 计算均值差和标准差
计算差值的均值和标准差:
```stata
summarize diff
```
输出中可以找到:
差值的均值 \(\bar{D}\)。
差值的标准差 \(s_D\)。
**(Step
3)** 计算 Cohen’s d
用 `display` 计算 Cohen's d:
```stata
display mean_diff / sd_diff
```
这里的 `mean_diff` 和 `sd_diff` 分别是差值的均值和标准差。
**3. 使用社区贡献的 ado 文件**
如果不想手动计算 Cohen's d,可以使用 Stata 的社区贡献程序(`cohen_d`),它会自动计算效应量。以下是安装和使用方法:
**(Step
1)** 安装 `cohen_d`
运行以下命令安装:
```stata
ssc install cohen_d
```
**(Step
2)** 使用 `cohen_d` 计算 Cohen’s d:
1. **独立样本**:
   ```stata
   cohen_d score, by(group)
   ```
    `score` 是要计算的变量。
    `group` 是分组变量。
2. **配对样本**:
   ```stata
   cohen_d score1 score2
   ```
    `score1` 和 `score2` 是配对变量。
**(Step
3)** 查看结果
运行命令后,Stata 会直接输出 Cohen’s d 以及其他效应量的相关信息。
**4. 自定义计算 Cohen's d 的脚本**
如果需要频繁计算 Cohen's d,可以创建一个简单的自定义脚本:
**独立样本的脚本**
```stata
program define cohen_d_ind
    syntax varname, by(varname)
    preserve
    sort `by'
    by `by', sort: summarize `varlist'
    local mean1 = r(mean) if `by'==1
    local mean2 = r(mean) if `by'==2
    local sd1 = r(sd) if `by'==1
    local sd2 = r(sd) if `by'==2
    local n1 = r(N) if `by'==1
    local n2 = r(N) if `by'==2
    local sp = sqrt(((n11)*sd1^2 + (n21)*sd2^
2) / (n1+n22))
    local d = (mean1  mean2) / sp
    di "Cohen's d = " `d'
    restore
end
```
**配对样本的脚本**
```stata
program define cohen_d_paired
    syntax varlist(min=2 max=2)
    gen diff = `1'  `2'
    summarize diff
    local d = r(mean) / r(sd)
    di "Cohen's d = " `d'
end
```
运行脚本后:
对于独立样本:`cohen_d_ind varname, by(group)`
对于配对样本:`cohen_d_paired var1 var2`
**效应量的解释**
根据 Cohen(1988)的建议,Cohen’s d 的效应量可以解释为:
**小效应**:\( d = 0.2 \)
**中等效应**:\( d = 0.5 \)
**大效应**:\( d = 0.8 \)
**总结**
1. **手动方法**:通过 `summarize` 和 `tabstat` 计算均值、标准差和样本大小,然后用公式计算 Cohen’s d。
2. **自动方法**:使用社区贡献的 `cohen_d` ado 文件快速计算。
3. **自定义脚本**:适合需要批量或频繁计算的场景。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Cohen Stata tata Statistics summarize

沙发
地方性知识28136 发表于 2025-1-18 10:56:30

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 09:12