## Calculating Marginal Effects in Zero-Inflated Beta Model

libname data 'c:\projects\sgf14\data'; ods output parameterestimates = _parms; proc nlmixed data = data.full tech = trureg alpha = 0.01; parms a0 = 0 a1 = 0 a2 = 0 a3 = 0 a4 = 0 a5 = 0 a6 = 0 a7 = 0 b0 = 0 b1 = 0 b2 = 0 b3 = 0 b4 = 0 b5 = 0 b6 = 0 b7 = 0 c0 = 1 c1 = 0 c2 = 0 c3 = 0 c4 = 0 c5 = 0 c6 = 0 c7 = 0; xa = a0 + a1 * x1 + a2 * x2 + a3 * x3 + a4 * x4 + a5 * x5 + a6 * x6 + a7 * x7; xb = b0 + b1 * x1 + b2 * x2 + b3 * x3 + b4 * x4 + b5 * x5 + b6 * x6 + b7 * x7; xc = c0 + c1 * x1 + c2 * x2 + c3 * x3 + c4 * x4 + c5 * x5 + c6 * x6 + c7 * x7; mu_xa = 1 / (1 + exp(-xa)); mu_xb = 1 / (1 + exp(-xb)); phi = exp(xc); w = mu_xb * phi; t = (1 - mu_xb) * phi; if y = 0 then lh = 1 - mu_xa; else lh = mu_xa * (gamma(w + t) / (gamma(w) * gamma(t)) * (y ** (w - 1)) * ((1 - y) ** (t - 1))); ll = log(lh); model y ~ general(ll); *** calculate components for marginal effects ***; _mfx_a = exp(xa) / ((1 + exp(xa)) ** 2); _mfx_b = exp(xb) / ((1 + exp(xb)) ** 2); _p_a = 1 / (1 + exp(-xa)); _p_b = 1 / (1 + exp(-xb)); predict _mfx_a out = _marg1 (rename = (pred = _mfx_a) keep = id pred y); predict _p_a out = _marg2 (rename = (pred = _p_a) keep = id pred); predict _mfx_b out = _marg3 (rename = (pred = _mfx_b) keep = id pred); predict _p_b out = _marg4 (rename = (pred = _p_b) keep = id pred); run; data _null_; set _parms; call symput(parameter, put(estimate, 20.15)); run; data _marg5; merge _marg1 _marg2 _marg3 _marg4; by id; _marg_x1 = _mfx_a * &a1 * _p_b + _mfx_b * &b1 * _p_a; _marg_x2 = _mfx_a * &a2 * _p_b + _mfx_b * &b2 * _p_a; _marg_x3 = _mfx_a * &a3 * _p_b + _mfx_b * &b3 * _p_a; _marg_x4 = _mfx_a * &a4 * _p_b + _mfx_b * &b4 * _p_a; _marg_x5 = _mfx_a * &a5 * _p_b + _mfx_b * &b5 * _p_a; _marg_x6 = _mfx_a * &a6 * _p_b + _mfx_b * &b6 * _p_a; _marg_x7 = _mfx_a * &a7 * _p_b + _mfx_b * &b7 * _p_a; run; proc means data = _marg5 mean; var _marg_x:; run; /* Variable Mean ------------------------ _marg_x1 -0.0037445 _marg_x2 0.0783118 _marg_x3 0.0261884 _marg_x4 -0.3105482 _marg_x5 0.000156693 _marg_x6 -0.000430756 _marg_x7 -0.0977589 ------------------------ */

Advertisements