Gllamm,gllapred和正确的绘制结果的方式?

时间:2015-01-20 00:53:41

标签: stata

我正在尝试使用命令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

但情节看起来不一样! 我的主要问题是;我的数据有问题,还是我重新排列语法或数据?我的情节实际上说了什么?有没有办法让我获得一条漂亮流畅的线条?

1 个答案:

答案 0 :(得分:1)

margins对所有其他变量的值进行平均。由于iv1iv2从观察到观察不同,因此您的线条是晃动的。您可能希望在gllapred之前替换剩余的变量(当然,备份原始值)。