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: RE: variable naming problem


From   Thomas <[email protected]>
To   [email protected]
Subject   Re: st: RE: variable naming problem
Date   Tue, 07 Sep 2010 10:43:03 +0100

the second loop (local i...) does not work.

The rest works fine. I modified the example for auto.dta:

sysuse auto, clear
 reg price mpg rep78

    foreach var of varlist mpg rep78{
    sum `var' if e(sample), meanonly
    local mmean`var' = `r(mean)'
    local m25`var' = 0.25*`r(mean)'
    local m50`var' = 0.5*`r(mean)'
    local m75`var' = 0.75*`r(mean)'
    local m2`var' = 2*`r(mean)'
    local m3`var' = 3*`r(mean)'
    local m4`var' = 4*`r(mean)'
}

foreach j in mean 25 50 75 2 3 4{
    local i m`j'mpg
      foreach q in mean 25 50 75 2 3 4{
        local p m`q'rep78
        gen c`j'_`q' = _b[_cons]+_b[mpg]*(`i')+_b[rep78]*(`p') if e(sample)
    }
}

Thomas

On 06/09/2010 17:05, Nick Cox wrote:
Something like this?

foreach var of varlist yU yD{
	sum `var' if e(sample), meanonly
	local mmean`var' = `r(mean)'
	local m25`var' = 0.25*`r(mean)'
	local m50`var' = 0.5*`r(mean)'
	local m75`var' = 0.75*`r(mean)'
	local m2`var' = 2*`r(mean)'
	local m3`var' = 3*`r(mean)'
	local m4`var' = 4*`r(mean)'
}

foreach j in mean 25 50 75 {
	local i m`j'yU
       foreach q in mean 25 50 75 {
		local p m`q'yD
		gen c`j'_`q' = _b[_cons]+_b[yU]*(`i')+_b[yU2]*((`i')^2/2) ///
		+_b[yD]*(`p')+_b[yD2]*((`p')^2/2) if e(sample)
	}
}

Nick
[email protected]

Thomas

respect to the things over which the loop runs.
And these things are numbers. I do not see how I can name differently.

To get a prediction at a specific point using -predict- I suppose I need
the if option. But as the model is quiet long and many variables drop
out -generate- involves less code.

On 06/09/2010 15:45, Nick Cox wrote:

Only decimal points are problematic. Integer digits are allowed in variable names after the first character. The remedy is to use evocative names rather than numbers nevertheless. Only you can decide which names are best for your purpose.

Why aren't you using -predict-?

Nick
[email protected]

Thomas

after a regression I would like to generate predictions for different
values of the original variables.

The first loop generate various scaled mean values.

The second and third loop then generate the predictions c* for the
various scaled means.

The problem is how to name c*. Now the names include numbers which Stata
does not accept (error: invalid name).

Any ideas how I can get around this?

________________

foreach var of varlist yU yD{
       sum `var' if e(sample)
       local m`var' = `r(mean)'
       local m25`var' = 0.25*`r(mean)'
       local m50`var' = 0.5*`r(mean)'
       local m75`var' = 0.75*`r(mean)'
       local m2`var' = 2*`r(mean)'
       local m3`var' = 3*`r(mean)'
       local m4`var' = 4*`r(mean)'
       }

       foreach i in `myU' `m25yU' `m50yU'{
           foreach p in `myD' `m25yD' `m50yD'{
               gen c`i'_`p' = _b[_cons]+_b[yU]*(`i')+_b[yU2]*((`i')^2/2) ///
               +_b[yD]*(`p')+_b[yD2]*((`p')^2/2) if e(sample)
           }
       }

*
*   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index