Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

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

From |
Jennyfer Wolf <jennyfer.wolf@googlemail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: standard errors after xtmixed, predit.., fitted |

Date |
Mon, 26 Dec 2011 12:59:37 +0100 |

Dear Steve, thank you for your email and please: no need to apologize, it is absolutely great help that you offer!! I am actually wondering at the moment about the following thing:

I hope my question is understandable. Very good Christmas! Jennyfer Am 25.12.2011 16:45, schrieb Steve Samuels:

Jennyfer: On second thought, there is no need to add the term for the standard error of the survey point estimates (se_logit^2), nor for the error terms (se_error^2). So in my example, the equation should be: ************************************************ gen se_fitted= /// sqrt(se_fix^2 +sd_region^2 + sd_state^2 /// + (unemp*sd_state_u)^2 +unemp*2*cov) ************************************************ I apologize for the confusion. Steve Correction: If q = 1 - p se_logit = se_p/(p*q) se_logit^2 = (se_p/(p*q))^2 Steve Jennyfer. If there are not many different regions at your highest level, I doubt that you should be fitting each a random effect-in what sense are they random?; fixed effects for the highest levels would probably be better. In addition to a covariance term (below), you will need to add a term for the survey standard errors. If se_p is the estimated survey standard error for a proportion p, then the squared standard error for the logit to add would be: se_logit^2 = se_p^2/(p*(1-p)). And yes, compute interval endpoints on the logit scale and convert back with the invlogit() function. And no, back-transformed standard errors (or SDs) need not look like those for the original data. *********************** sysuse auto, clear gen lprice = log(price) mean price lprice di exp(0.0455814) ****************** You have an additional problem if the yearly estimates for a single country are correlated by virtue of the survey design. I would have considered adding a correlation structure to the residual s. Here is how to add the covariance contribution to the standard error ifor Stata -productivity- example. Note that the "atr" term is the hyperbolic arctangent, not the log, of the correlation. *********************************************** webuse productivity, clear xtmixed gsp private emp hwy water other unemp /// || region: || state: unemp, cov(unstructured) reml matrix list e(b) //names of terms scalar sd_err = exp([lnsig_e]_cons ) scalar sd_region = exp([lns1_1_1]_cons) scalar sd_state_u = exp([lns2_1_1]_cons) scalar sd_state = exp([lns2_1_2]_cons) scalar atrho = [atr2_1_1_2]_cons scalar rho = (exp(2*atrho)-1)/(exp(2*atrho)+1) scalar cov = rho*sd_state*sd_state_u scalar dir // check these quantities against results predict fitted, fitted predict se_fix, stdp gen se_fitted= /// sqrt(se_fix^2 +sd_region^2 + sd_state^2 /// + (unemp*sd_state_u)^2 +unemp*2*cov + sd_err^2) sum se_fit* ***************************************************** When you post in the future, please describe what you really did (Statalist FAQ Section 3.3). It will save a lot of time. Just to warn you: I'll have only infrequent looks at Statalist for the next 10 days. Steve sjsamuels@gmail.com On Dec 22, 2011, at 6:11 AM, Jennyfer Wolf wrote: Dear Steve, thanks again so much! I have data from different surveys (survey point estimates) and I use a term for unstructured covariance in my model: xtmixed wat_tot year_spline1*|| reg1: || reg2: || country2:year_cat, cov(unstructured). so I will add an error term for this in my calculation of the fitted standard error: scalar sd_cov = exp([atr3_1_1_2]_cons) Actually wat_tot (the dependent variable) is transformed with logit(), to restrict observations between 0 and 1 as I am modelling proportions. After "predict A, fitted" I use the inlogit() command to get the backtransformed estimates. However, I had problems to backtransform the standard errors because when I compared standard errors received without any transformation of the dependent variable and backtransformed standard errors received from a transformed dependent variable, these values were very different. Would you know a solution to this (is it correct to also backtransform the fitted standard error) and also (of course) I would like to restrict my confidence intervals to values between 0 and 1. One concern rests relating to the confidence intervals I calculate with the fitted standard errors: The model fits the individual country data very well and the predictions for the estimates and the fitted values seem very sensible, however, the standard error and the CIs calculated with the method you proposed for the fitted values are huge and actually take any sense away from making a prediction.. Does that mean I need to mak my model simpler? Thank you very much for the great support! Jennyfer 2011/12/22 Steve Samuels<sjsamuels@gmail.com>:Jennyfer, I misunderstood your request: my solution was for an observation chosen at random and it incorrectly omitted the residual SD term, to boot. Try this. ******************************************* webuse productivity, clear xtmixed gsp private emp hwy water other unemp /// || region: || state: unemp matrix list e(b) //names of terms scalar sd_res = exp([lnsig_e]_cons) predict se_fix, stdp predict se_region se_state_u se_state, reses des se* //check against variable labels gen se_fitted = /// sqrt(se_fix^2 +se_region^2 + se_state^2 /// + (unemp*se_state_u)^2 +sd_res^2) ******************************************* I think that in your case the last three statements will be: ****************************************************************** predict se_region1 se_region2 se_country_year se_country, rses des se* //check against variable labels sqrt(se_fix^2 +se_region1^2 + se_region2^2 + /// + se_country^2 + (year_cat*se_country_year)^2 +sd_res^2) ****************************************************************** Note that these statements assume that there is no correlation between the country and countryXyear random effects, which is what your model implies. If there is such correlation (and you can test for it), then a covariance term must be added to the estimated standard error. If you happen to have sample survey data, then be sure to read the section of Survey Data in the manual entry for -xtmixed-. Steve sjsamuels@gmail.com On Dec 21, 2011, at 10:01 AM, Jennyfer Wolf wrote: Thank you very much for your answer. I've tried it in many different variations but I guess there are problems with this approach: 1. the squared standard deviations that we are adding up are describing variation from the fixed effects but, when I understand right, not the error of the model 2. the CIs I need describe the uncertainty for the estimates for each country so countries with more datapoints have a narrower CI and also for future predictions the CI should get wider (which does not happen with the approach you suggested. I tried gllamm and used the "ci_marg_mu" command after "gllapred x, mu marg fsample" but this does not fit to my individual country data and still gives me the same CIs no matter how many survey points I have per country. Any more ideas on how to get confidence intervals after "xtmixed" and "predict x, fitted" for the predicted values in multilevel modeling? (Alternatively with gllamm) Thank you very, very much. Jennyfer 2011/12/17 Steve Samuels<sjsamuels@gmail.com>:Correction: I should not have included the SD for the error term, as it is not part of the fitted value. Here's an example more like yours, but with two levels, not three. I expect that you can take it from here ******************************************* webuse productivity, clear xtmixed gsp private emp hwy water other unemp || region: || state: unemp matrix list e(b) //names of terms scalar sd_region = exp([lns1_1_1]_cons) scalar sd_state_u = exp([lns2_1_1]_cons) scalar sd_state = exp([lns2_1_2]_cons) scalar dir // check these SDs against results predict se_fix, stdp gen se_fitted = /// sqrt(se_fix^2 +sd_region^2 + sd_state^2 + (unemp*sd_state_u)^2) ******************************************* Steve sjsamuels@gmail.com On Dec 16, 2011, at 11:34 AM, Jennyfer Wolf wrote: Dear Statalist, sorry for asking the question again, but we are a bit desperate so it would be great if anybody has a solution for my question: Is it possible to get standard errors for the fitted values of a multilevel-model (three levels, random slope and intercept) after xtmixed dep_var indep_var || region1: || region2: || country :year_cat predict var, fitted ? We would like to present the estimated values with a confidence interval? If it is not possible to get the standard errors for the predicted values from Stata, is it possible to calculate these values from the Standard Errors from the individual estimates? Thank you very very much. With kind regards, Jennyfer ** * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/* * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

* * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**Re: st: standard errors after xtmixed, predit.., fitted***From:*Steve Samuels <sjsamuels@gmail.com>

**References**:**Re: st: standard errors after xtmixed, predit.., fitted***From:*Steve Samuels <sjsamuels@gmail.com>

**Re: st: standard errors after xtmixed, predit.., fitted***From:*Steve Samuels <sjsamuels@gmail.com>

- Prev by Date:
**Re: st: standard errors after xtmixed, predit.., fitted** - Next by Date:
**st: loop within Mata to run several optimize() commands** - Previous by thread:
**Re: st: standard errors after xtmixed, predit.., fitted** - Next by thread:
**Re: st: standard errors after xtmixed, predit.., fitted** - Index(es):