xtdpdml:如何绘制交互图

时间:2021-04-14 04:35:16

标签: panel stata

我有一个 IV、一个 DV、一个调节器和两个控制变量。

面板数据与 5 年高度平衡。

有没有办法画出xtdpdml结果的交互图?

我已经尝试过常用的方法,(iv:自变量,值为 1 到 6;mo:moderator,值为 1 到 6)

egen iv = rowmean (q1 q2 q3 q4 q5 q6)
egen dv = rowmean (qd1 qd2 qd3 qd4 qd5 qd6)
egen mo = rpwmean (qm1 qm2 qm3 qm4 qm5 qm6)
egen im = iv * dv

xtdpdml dv, inv(gender birthyear) pre(iv mo im) fiml
 
summarize mo

global moa = round(r(mean) + r(sd),0.1)

global mo = round(r(mean),0.1)

global mob = round(r(mean) - r(sd),0.1)

margins, at(iv=(1(1)6) mo=($moa $mo $mob))

并且错误消息显示为“iv ambiguous abbreviation”。

1 个答案:

答案 0 :(得分:0)

EDIT 这个答案是对使用完全不同的变量名称的问题的先前版本的回应。它只解决了一个附带问题,即如何显示四舍五入到所需小数位数的数字结果。

你的代码没有提到 pnv,所以很难评论。

我明白你想做什么,但这样做很尴尬,而且容易出错。问题在于 Stata 以二进制形式运行,并且只能精确地保存几个十进制小数 0.01(0.01)0.99,特别是 0.25 0.50 0.75。那是 99 个中的 3 个;其余的必须保持为近似值。其他 Stata 代码意味着您不会总是看到近似值,但不能保证。我会试试这个,这使得四舍五入成为真正的格式问题:

summarize sns
local snsa : di %2.1f r(mean) + r(sd)
local sns: di %2.1f r(mean) 
local snsb: di %2.1f r(mean) - r(sd)

margins, at(priv=(0(1)6) sns=(`snsa' `sns' `snsb'))

我不能排除代码其他部分的真正问题。