Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

Re: st: Pseudo R2 after "mi estimate:logit"


From   Nick Cox <[email protected]>
To   [email protected]
Subject   Re: st: Pseudo R2 after "mi estimate:logit"
Date   Mon, 14 Mar 2011 21:26:31 +0000

Sorry, but I don't have much idea about M = 30, 300, 3000 or whatever.

I would have answered this question earlier on one of its several
outings if I had anything useful to say.

In general there is no notion of "adequate" independent of your
problem, your data and your resources.

However, it is manifest that in 1987 computing resources were much
less than now and so there was a temptation to compromise on a small
number of imputations. Now, if you care about a computation, letting
it run in the background for a day or a week is not an outrageous
expectation.

More crucially in terms of my question, ln(x) also maps 0 to missing
so I doubt you have changed anything, let alone improved it. You are
throwing your observations with x3 == 0 out of the model. Only you can
say whether that matters.

Nick

On Mon, Mar 14, 2011 at 9:12 PM, Aggie Chidlow
<[email protected]> wrote:
> Thank you Nick.
>
> My ".di mindouble()" is the same as yours.
> Thank you for this... I use it follwoing the information I have read
> regarding ineligible missing values.
>
> I have just gen lnx = ln(x) and the results are better.
>
> Would you mind telling me how do I know that  for example 30
> imputations (M=30) is the adequate
> number? I am asking because according to Rubin (1987) only 3-10
> imputations may be needed?
>
> On Mon, Mar 14, 2011 at 8:38 PM, Nick Cox <[email protected]> wrote:

>> Not at all the question you asked, but my eye fell on
>>
>> cond(x==0, mindouble(), log(x3))
>>
>> This transformation I guess, arises because you feel you should take logs, but there are zeros in your data. But what is mindouble()? In my Stata
>>
>> . di mindouble()
>> -8.99e+307
>>
>> It is negative and massive! Clearly, I don't know what other values you have in your data, but even if they are of the order of 1e6 or 1e9, that introduced value will still be relatively much larger.
>>
>> So, if there really are zeros, it looks as if you intend to introduce massive outliers into your data.
>>
>> To be sure, log 0 is indeterminate and logarithms of very small numbers << 1 are large and negative, but it is hard to believe that this way of dealing won't dominate that variable and very likely the whole model results.
>>
>> All that said, unless you have elsewhere
>>
>> . set type double
>>
>> you are generating this variable as a -float-, but a -float- can't hold -mindouble()- and the result would just be missing in those observations.
>>
>> Nick
>> [email protected]
>>
>> Aggie Chidlow
>>
>> My do-file is:
>>
>> mi set mlong
>> mi query
>> mi describe
>> mi misstable sum
>> generate lnx = cond(x==0, mindouble(), log(x3))
>> mi register imputed lnx
>> set seed 29390
>> mi describe
>> mi impute mvn lnx = x1 x2 x3 x4 x5 x6 x7,add(30)
>> mi estimate: logit x1 x2 x3 x4 x5 x6 x7 lnx
>> mi xeq 0 1 30: logit x1 x2 x3 x4 x5 x6 x7 lnx
>>
>> For example from "mi xeq 30:logit x1 x2 x3 x4 x5 x6 x7 lnx" I can see
>> Wald test.However, from "mi estimate: logit x1 x2 x3 x4 x5 x6 x7 lnx"
>> I can only see F test. So, how can I get Wald test from "mi estimate:
>> logit"?
>>
>> Further, how do I know that 30 imputations (M=30) is the adequate
>> number? I am asking because according to Rubin (1987) only 3-10
>> imputations may be needed?

*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index