在Stata骑自行车Ranksum

时间:2018-04-15 16:31:26

标签: stata

我有一些数据,其中两个不同的患者组自动从诊断工具中导出。

变量由诊断工具自动提名(例如L1DensityWholeImage, L1WholeImageSHemi, L1WholeImageIHemi , L1WholeETDRS ,[...], DeepL2StartLayer, L2Startoffsetum, L2EndLayer, [...], Perimeter, AcircularityIndex

我必须按组执行所有变量(> 80)的秩和检验(或Mann-Whitney U 检验)。

通常,我应该像这样编写每个单独的分析:

ranksum L1DensityWholeImage, by(Group)

ranksum L1WholeImageSHemi, by(Group)

ranksum L1WholeImageIHemi, by(Group)

ranksum L1WholeETDRS, by(Group)

是否有任何方法或代码用 varlist 编写命令?并且可能仅获得具有所有p值的1个输出结果?

例如:ranksum L1DensityWholeImage L1WholeImageSHemi L1WholeImageIHemi L1WholeETDRS, DeepL2StartLayer L2Startoffsetum L2EndLayer Perimeter AcircularityIndex, by(Group)

1 个答案:

答案 0 :(得分:1)

简短的回答是写一个循环并自定义输出。

以下是您可以运行的令牌示例。

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

注意:

  1. 如果您的变量名称较长,则需要更多空间。

  2. 显示带有固定小数位数的 P - 值将无法满足所有显示的数字为零的情况。该代码举例说明了两种输出形式。

  3. 第一组的值超过第二组的概率非常有助于解释。可以添加进一步的摘要统计。

  4. 当然,一个可呈现的表需要更多的标题行,最好用display给出。