【发布时间】:2018-01-26 09:49:13
【问题描述】:
我正在尝试编写一个模拟程序。但是,由于我是 Stata 的新手,所以我一次又一次地慢慢完成每一步,以了解 Stata 的工作原理。一旦我对 Stata 有了更多了解,就会进行调整。
这个想法是创建一个向量/数字列表(一些特定的和其他随机的)并将该向量作为参数传递给mvrs 命令。然后我将运行一个模拟来找到具有较小 AIC 的结的模式。更多信息可以在 Spika 等人中找到。 BMC Cancer (2017) 论文。
感谢 StackOverflow 社区,我能够生成随机数(请参阅 question)。但是之后我在导入 Excel 文件时遇到了问题。 有没有办法保留创建的随机数并打开 Excel 文件?当我尝试运行代码时,我在尝试导入 Excel 文件后得到no; data in memory would be lost r(4);。
这是我目前的代码:
* Create list of specified knots
local spec_knots 0.5 1 2 84.5
* Create random knots between 3 and 50
set obs 3
gen vals = floor(3 + 47 * runiform())
* Save levelsof vals and save to local to join specified and random knots
levelsof vals, local(values)
* Join specified and random knots to include in the mvrs command
local list_knots `spec_knots' `values'
import excel file, sheet("Analysis") firstrow
mvrs glm deaths age, family(poisson) exposure(population) all scale(1) alpha(1) knots(`list_knots')
我的计划是将上述代码包含在程序中,然后运行模拟。大致如下:
simulate aic=aic bic=bic dev=dev, reps(10) nodots: knots_location
在程序结束前使用scalar aic = e(aic)。
感谢任何保存随机数和导入文件的指针。
【问题讨论】: