【发布时间】:2016-01-06 08:03:17
【问题描述】:
我想在 Stata 中生成 5 个相关变量。四个具有特定均值和标准差的正态分布,一个服从伯努利概率为 0.60。
我尝试遵循帖子中给出的建议: How to generate correlated Uniform[0,1] variables
我的代码如下:
matrix C = (1, /// ///
2*sin(0.05*_pi/6), 1, ///
2*sin(-0.45*_pi/6), 2*sin(0.44*_pi/6), 1, ///
2*sin(0.22*_pi/6), 2*sin(0.33*_pi/6), 2*sin(-0.54*_pi/6), 1, ///
2*sin(0.45*_pi/6), 2*sin(0.32*_pi/6), 2*sin(-0.22*_pi/6), 2*sin(-0.13*_pi/6), 1)
matrix B = (40, 26, 13, 146, 0.35)
matrix A = (9, 11, 5, 2, 1)
corr2data var1 var2 var3 var4 var5, n(10000) corr(C) means(B) sds(A) cstorage(lower)
replace var1 = rnormal(var1)
replace var2 = rnormal(var2)
replace var3 = rnormal(var3)
replace var4 = rnormal(var4)
replace var5 = normal(var5)
replace var5 = rbinomial(1,var5)
我或多或少地得到了我想要的东西,因为生成的变量所具有的值符合预期。
但是,我的方法正确吗?如果不是,您将如何修改代码以在科学合理的同时正确给出预期的结果?
【问题讨论】:
标签: variables random stata correlation