问题描述
我有一些从诊断工具自动导出的两组不同患者的数据。
变量由诊断工具自动指定(例如L1DensityWholeImage, L1WholeImageSHemi, L1WholeImageIHemi , L1WholeETDRS ,[...], DeepL2StartLayer, L2Startoffsetum, L2EndLayer, [...], Perimeter, AcircularityIndex
)
我必须按组对所有变量(>80)进行秩和检验(或Mann-WhitneyU检验)。
通常,我应该这样写每个分析:
ranksum L1DensityWholeImage, by(Group)
ranksum L1WholeImageSHemi, by(Group)
ranksum L1WholeImageIHemi, by(Group)
ranksum L1WholeETDRS, by(Group)
有没有办法或代码用varlist编写命令?可能只得到一个p值全部的输出结果?
例如:ranksum L1DensityWholeImage L1WholeImageSHemi L1WholeImageIHemi L1WholeETDRS, DeepL2StartLayer L2Startoffsetum L2EndLayer Perimeter AcircularityIndex, by(Group)
推荐答案
简短答案是编写循环并定制输出。
这里是一个您可以运行的令牌示例。
sysuse auto, clear
foreach v of var mpg price weight length displacement {
quietly ranksum `v', by(foreign) porder
scalar pval = 2*normprob(-abs(r(z)))
di "`v'{col 14}" %05.3f pval " " %6.4e pval " " %05.3f r(porder)
}
输出为
mpg 0.002 1.9e-03 0.271
price 0.298 3.0e-01 0.423
weight 0.000 3.8e-07 0.875
length 0.000 9.4e-07 0.862
displacement 0.000 1.1e-08 0.921
备注:
如果变量名较长,则需要更多空间。
显示具有固定小数位数的P-值不会使您为所有显示的数字都为零的情况做好准备。该代码举例说明了两种输出形式。
第一组的值超过第二组的概率对解释非常有帮助。还可以添加进一步的汇总统计数据。
自然,一个可呈现的表格需要更多的标题行,最好使用
display
。
这篇关于Stata上的自行车Ranksum的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!