文 / Chuck Huber, Director of Statistical Outreach at StataCorp
导读
在上一篇文章中,作者向您展示了如何使用蒙特卡罗模拟计算t检验的功效。在这篇文章中,将向您展示如何将您的模拟集成到 Stata 的power
命令中,以便您可以轻松地为一系列参数值创建自定义表格和图形。
在规划科学研究时,统计学家很少计算一组假设的power。我们通常计算一系列参数值的功效,并选择一组在参数值和逻辑上可行的现实假设。例如,下面我使用power onemean
来计算从 50 到 100 以 10 为增量的样本大小的功效。该表显示了假设的参数值,包括 alpha 水平、零假设和替代假设下的均值、标准化每个样本数量的均值 (delta)、标准差和功效之间的差异。
我还使用了下面的graph
选项来绘制样本大小范围内的功效。然后,我可以使用表格和图表来选择满足我的研究功效要求的样本量。
「图 1:n = 50 到 100 的估计功效,增量为 10」
除了样本数量之外,power
命令还允许您输入其他参数的值范围,例如标准差、均值或 alpha 水平。而power
可将结果创建为表格和图表。
还可以将自己的方法添加到强大的命令套件中。让我们将上一篇文章中的t测试模拟程序添加到power
中,看看它是如何工作的。
回想一下我上一篇文章,我们创建了一个名为simttest
的程序来计算t检验的功效。该程序接受五个输入参数, 创建一个伪随机数据集,检验原假设,并返回假设检验的结果。
我们使用simulate
多次运行程序并将结果保存到一个名为reject
的变量中。
然后,我们将power 计算为原假设被拒绝的次数比例。
您可以通过创建名为power_cmd_ mymethod
的程序将此模拟方法添加到power
,其中mymethod
是 power
命令的名称。让我们调用程序power_cmd_simttest
。
下面的代码块定义了power_cmd_simttest
。请注意它与我们的simttest
程序相似。它从capture program drop
开始,然后是program
,然后是version 15.1
。接下来,我们使用syntax
定义输入参数,就像我们在simttest
中所做的那样。在这里,我添加了一个名为reps()
的新输入参数,它是模拟的重复次数。
程序的中间部分运行模拟并总结结果。simulate
和summarize
都是quietly
状态的,这抑制它们输出的显示。这里模拟运行程序simttest
并将结果保存到变量reject
,就像以前一样。请注意,simulate
和simttest
中的所有输入参数都是使用syntax定
义的本地宏。summary
计算reject
的平均值并将其存储在标量r(mean)
中。
代码块的底部返回power
和其他参数。power
返回变量reject
的平均值,其他参数只是从syntax
传递过来的局部宏。
现在您可以通过输入power simttest
来运行模拟。
成功了!我们也可以为一系列样本量制作表格和图表。
「图 2:n = 50 到 100 的模拟功效,增量为 10」
如果您希望为其他参数(例如m0
、ma
和sd
)输入一系列值,则需要再编写一个小程序。该程序必须命名为power_cmd_ mymethod _init
。
下面的代码块定义了power_cmd_simttest_init
并以capture program drop
和program
开始,就像我们的其他程序一样。请注意,程序定义以选项sclass
开头。sreturn local pss_colnames
这行代码在双引号中列出的参数输出表初始化列。sreturn local pss_numopts
这行代码允许您指定放置在双引号中的参数numlists
。
现在,您可以使用power simttest
来计算假设不同替代假设的一系列均值的功效。您甚至可以针对不同的样本量执行此操作。
您可以通过在graph
选项中指定xdimension
来绘制功效分析的结果。
「图 3:假设 n=75 和 n=100 ,ma =72(1)75 的模拟功率」
本文向您展示了如何使用 Monte Carlo 模拟计算功率以及如何将这些模拟集成到power
中。我从一个简单的t测试示例开始,以便我们可以专注于编程并使用power onemean
检查我们的工作。
Stata软件订购:
如需订购Stata V17全新版软件,请联系Stata中国授权经销商及合作伙伴北京友万信息科技有限公司(www.uone-tech.cn)。我司拥有强大的售后服务团队,聚合国内一线Stata行业专家为客户提供优质的技术支持服务,并帮助中国用户建立完善的软件服务体系。手机/微信:18610597626 邮箱:crystal@uone-tech.cn。
专注分享商业数据分析、金融数据分析、应用统计分析、知识图谱、机器学习、计量经济、人工智能、网络爬虫、自动化报告与可重复研究等热门技术内容。定向培养Stata、Python、R语言数据人才,助力产学研政企商协同发展,为中国大数据产业蓄能。合作热线:010-56548231 邮箱:info@uone-tech.cn。