[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: predictnl - calculate mfx and s.e. - oprobit with interaction

From   Zohal Hessami <>
Subject   st: predictnl - calculate mfx and s.e. - oprobit with interaction
Date   Tue, 24 Feb 2009 00:09:01 +0100

Hello guys,

I am currently estimating an ordered probit model, where I have included an interaction term. The regression equation looks as follows:

oprobit lifesat male age age_sq income married divorced separated widowed ageeduc_1619 ageeduc_lt19 unempl school retired home self_empl govtexp expdecentral expdecexp, r

I have included the interaction term (expdecexp = expdecentral*govtexp) because I want to test whether the impact of government size on people's life satisfaction is more likely to be positive if there is a large extent of expenditure decentralization in this specific country. As you can see my dataset is generally a mixture of micro- and macro-level variables.

I am now trying to estimate the marginal effects for govtexp, expdecentral and the interaction term expdecexp. For this purpose I found the link very useful. In the middle section of this website, it is explained how this calculation is carried out in a binary probit setting with an interaction term. Accordingly, I have asked STATA to do the following:

local xb _b[male]*`meanmale' + _b[age]*`meanage' + _b[age_sq]*`meanagesq' + _b[income]*`meanincome' + _b[married]*`meanmarried' + _b[divorced]*`meandivorced' + _b[separated]*`meanseparated' + _b[widowed]*`meanwidowed' + _b[ageeduc_1619]*`meanageeduc_1619' + _b[ageeduc_lt19]*`meanageeduc_lt19' + _b[unempl]*`meanunempl' + _b[school]*`meanschool' + _b[retired]*`meanretired' + _b[home]*`meanhome' + _b[self_empl]*`meanself_empl' + _b[govtexp]*`meangovtexp' + _b[expdecentral]*`meanexpdecentral' + _b[expdecexp]*`meangovtexp'*`meanexpdecentral'

predictnl dydg = normalden(_b[/cut3] - `xb')*(_b[govtexp] + _b[expdecexp]*`meanexpdecentral') in 1, se(seg)

predictnl dyde = normalden(_b[/cut3] - `xb')*(_b[expdecentral] + _b[expdecexp]*`meangovtexp') in 1, se(see)

predictnl dydeg = normalden(_b[/cut3] - `xb')*(-(_b[/cut3] - `xb'))*(_b[govtexp] + _b[expdecexp]*`meanexpdecentral')*(_b[expdecentral] + _b[expdecexp]*`meangovtexp') + normalden(_b[/cut3] - `xb')*(_b[expdecexp]) in 1, se(seeg)

I know for sure that my derivations for the equations that I have used for the marginal effects are correct. Nevertheless, the value for the marginal effects is reported as ".", while the standard errors that I get are "0". Furthermore, I get the error messages >>> Warning: prediction doesn't vary with respect to e(b) <<< and >>> Warning: prediction constant over observations; perhaps you meant to run nlcom.<<<<

I also programmed the whole thing with nlcom as described on this website that I have mentioned above, but I still didn't get any results. When I did the same calculations when interacting govtexp and people's income the whole procedure worked perfectly and I got very convincing results. Apparently, the fact that I am interacting two macro-level variables is causing trouble. Can anyone help me solve this problem or tell me how to get the marginal effects that I need???

Thx in advance,
Zohal Hessami
University of Konstanz
Department of Economics

*   For searches and help try:

© Copyright 1996–2021 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index