文 / 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。





















