楼主: chuanyan
70053 22

[数据管理求助] 如何在输出相关性检验的时候加星号 [推广有奖]

21
17829299732 发表于 2023-2-2 12:57:59
974437876 发表于 2019-12-18 20:57
我也有这个问题,请问楼主解决了么
麻烦问下这个问题楼主怎么解决的

22
折叠不下的超级幻想家 发表于 2024-5-14 11:06:51
974437876 发表于 2019-12-18 20:57
我也有这个问题,请问楼主解决了么
logout, save ("D:\....") word replace: pwcorr_a 变量

23
赵安豆 发表于 2024-6-27 21:32:13
在Stata中,`pwcorr`命令本身并不直接支持输出星号表示显著性水平。但是可以通过一些技巧实现这个目标,并将结果导出到Word文档。

对于加星号的需求,你需要先计算相关系数矩阵,然后使用自定义的宏或程序来添加星号。具体步骤如下:

1. **计算相关系数**:首先使用`pwcorr`命令不输出任何显著性标志。
```stata
pwcorr y x central lev mb roe turnover size, sig bonferroni star(0.05) noobs
```
但是,此命令将不会添加星号。

2. **保存结果到矩阵**:使用`return list`查看`pwcorr`返回的结果,并将其保存为一个矩阵。
```stata
mat list_r = r(C)
```

3. **创建宏或程序来添加星号**:
   你可以在输出中手动添加星号,例如,如果相关系数是显著的,则在相应的值后面加上星号。

4. **导出到Word文档**:使用`outreg2`或`esttab`命令将结果格式化并保存为文本文件,然后在Word中导入这个文本文件。但直接从Stata导出至Word并不像Excel那样直观,可能需要额外的步骤或者使用插件。

对于添加星号和导出到Word的具体实现,你可能会需要写一个循环来检查相关系数是否显著,并根据其显著性水平添加适当的星号(*、**或***),然后将处理后的结果保存为文本文件。再使用`outreg2`的命令加载这个文本文件并输出到Word:

```stata
capture program drop add_stars
program define add_stars, rclass
    version 17.0
    syntax varlist, matrix(string)
    local rows : rowsof(`matrix')
    local cols : colsof(`matrix')
   
    foreach i of numlist 1(1)`rows' {
        foreach j of numlist `i'+1(1)`cols' {
            if el(`matrix',`i',`j') < 0.01 {
                return scalar star_`i'_`j'= "***"
            } else if el(`matrix',`i',`j') < 0.05 {
                return scalar star_`i'_`j'= "**"
            } else if el(`matrix',`i',`j') < 0.1 {
                return scalar star_`i'_`j'= "*"
            }
        }
    }
end

pwcorr y x central lev mb roe turnover size, sig bonferroni noobs
mat list_r = r(C)
add_stars `list_r'

outreg2 using output.txt, replace text add("y", "x", "central", "lev", "mb", "roe", "turnover", "size") ///
                                      add("x", "central", "lev", "mb", "roe", "turnover", "size") ///
                                      add("central", "lev", "mb", "roe", "turnover", "size") ///
                                      add("lev", "mb", "roe", "turnover", "size") ///
                                      add("mb", "roe", "turnover", "size") ///
                                      add("roe", "turnover", "size") ///
                                      add("turnover", "size")

eststo clear
foreach v in y x central lev mb roe turnover size {
    eststo : mat list_r[`v',1], star(0.05) star2(0.01) star3(0.001)
}
esttab using output_with_stars.txt, replace

// 将output_with_stars.txt导入Word
```

请注意,上述代码需要根据实际情况调整,尤其是`outreg2`和`eststo`部分的使用可能需要根据你具体的需求进行修改。同时,`add_stars`程序只是一个示例,并未完全实现星号添加功能,你可能需要根据返回的显著性值进一步完善这个过程。

此外,Stata的插件或工具如`outreg2`, `esttab`, 或者其他社区提供的命令可能会提供更直接和灵活的方式来导出结果到Word并自动包含星号。这些工具通常需要先安装(例如使用`ssc install outreg2`命令),并在你的脚本中适当调用它们以实现所需的功能。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

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