我正在尝试使用命令gllamm
运行随机截距,随机系数(通常称为随机斜率)多级logit模型,以获得Stata中跨层次交互的横截面数据。所以,我的代码就是这样的;
> gen cons = 1
> gen inter = cons
> gen slope = IV3
> gllamm dv iv1 iv2 iv3 iv3iv4 iv4, i(country) link(logit) family(binomial) adapt nrf(2) eqs(inter slope)
其中iv1 - iv3
是第1级变量,iv3
是二分的,其斜率/系数可以变化,iv4
是第2级变量,iv3iv4
是跨层次的互动。
运行gllamm
后,我真正想要的就是Stata命令
> margins, dydx (iv3) at(iv4=(1(10)100))
会这样做。如果我是正确的,可以使用命令
获得类似的东西> gllapred prob, mu marg
然而,问题出现了。当我想使用代码分别为两个二分法iv4
绘制边际预测概率作为我的等级2 iv3
的函数
> twoway (line prob iv4 if iv3==0, sort) (line prob iv4 if iv3==1, sort),
> ytitle(Predicted marginal probability) xtitle(iv4)
> legend(order(1 "no" 2 "yes"))
我获得的并不是一个带有平滑曲线的漂亮情节,而是在iv4
的每个值上都有一条线上下移动!
我看到有人使用
> sort
在gllapred
之后和twoway
之前的命令,但我不确定我是否理解它是如何工作的。不过,我试过了
> sort iv3 country iv4
然后
> twoway
但情节看起来不一样! 我的主要问题是;我的数据有问题,还是我重新排列语法或数据?我的情节实际上说了什么?有没有办法让我获得一条漂亮流畅的线条?
答案 0 :(得分:1)
margins
对所有其他变量的值进行平均。由于iv1
和iv2
从观察到观察不同,因此您的线条是晃动的。您可能希望在gllapred
之前替换剩余的变量(当然,备份原始值)。