Statalist


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

st: Re: Code erroring out because of "no observations" - revisited


From   "Martin Weiss" <martin.weiss1@gmx.de>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: Re: Code erroring out because of "no observations" - revisited
Date   Sat, 27 Jun 2009 01:48:45 +0200

The last wave of nlswork.dta is number 15. However, if you do decide to drop missings, that shrinks to twelve. Note that your -drop- instruction chucks out any _individual_ missing value on union, while you may want to bear with a couple of missings on any panel unit. Type

***
webuse nlswork, clear
xtdes
***

to see the participation pattern.

If you want to see why you drop to 12 (not 11, not 13, either) type

***
webuse nlswork, clear
by idcode, sort : egen float nonmiss = count(union)
su nonmiss
***

BTW, even with these problems, your code runs fine for me...

HTH
Martin
_______________
----- Original Message ----- From: "Ariel Linden, DrPH" <ariel.linden@gmail.com>
To: <statalist@hsphsun2.harvard.edu>
Sent: Saturday, June 27, 2009 1:31 AM
Subject: st: Code erroring out because of "no observations" - revisited


Hi Again,

I reran the updated code (as per Howie's suggestion, see below), and it ran fine. However, when I first dropped all individuals where union ==. the code failed at the last wave (12). Stata gave an error r(9777); which has no help associated with it.

I think it has something with how it reads the last wave (12), because when I set the code to run only through 11 waves it works fine. Again, all help is welcome:

**** start code****

*webuse nlswork, clear

bysort idcode (year):gen wave = _n

tsset idcode wave

drop if union==.

logit  union  ln_wage age collgrad tenure hours if wave==`i'

predict ps1 if e(sample)

sum wave
local max = r(max)
forvalues i=2/`max' {
logit  union  l.ln_wage l.age l.collgrad l.tenure l.hours if wave==`i'
predict ps`i' if wave == `i'
}

egen psfinal = rowmax(ps*)

***** end code******




Date: Thu, 25 Jun 2009 16:44:26 -0400
From: Howard Lempel <HLempel@brookings.edu>
Subject: st: RE: Code erroring out because of  "no observations"

Hi Ariel,

In your loop, _N represents the number of total observations, not the total number of waves. There are only 15 waves of data, so when i gets to 16, you get an error - there are no observations for which wave==16.

I think you want to change your loop to the following:

forvalues i=2/15 {
logit  union  l.ln_wage l.age l.collgrad l.tenure l.hours if wave==`i'
predict pred`i' if wave == `i'
}

If you don't want to stick 15 in as a magic number, you could to the following:

sum wave
local max = r(max)
forvalues i=2/`max' {
logit  union  l.ln_wage l.age l.collgrad l.tenure l.hours if wave==`i'
predict pred`i' if wave == `i'
}

Hope this helps.
Howie

From: Ariel Linden, DrPH [mailto:ariel.linden@gmail.com]
Sent: Wednesday, June 24, 2009 2:40 PM
To: 'owner-statalist@hsphsun2.harvard.edu'
Subject: Code erroring out because of "no observations"

Hi All,

I am running some code in the nlswork file in which I use lagged values in the present period’s logit model. Since there are individuals in the file that don’t have more than one period (wave), the code errors with “no observations.” As a result, the code cannot continue to the last line I have below which generates a variable with the max of all the waves.

I tried using “capture” but the loop never ends.

I’d appreciate it if someone could tell me how to override the error and continue on to the next line of code? (if my poor coding could be improved as well, I’d appreciate that as well) ☺

Thanks in advance

Ariel

***** start of code**********
webuse nlswork, clear

sort idcode year
bysort idcode: egen wave = seq()

tsset idcode wave

logit union age collgrad tenure hours if wave==1

predict pred1 if e(sample)

forvalues i=2/`=_N' {
logit  union  l.ln_wage l.age l.collgrad l.tenure l.hours if wave==`i'
predict pred`i' if wave == `i'
}

egen predfinal = rowmax( pred*)

***** end of code*************



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



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