Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
Hi all,
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Antwort: Re: st: Multicollinearity in panel data
From
Justina Fischer <[email protected]>
To
[email protected]
Subject
Antwort: Re: st: Multicollinearity in panel data
Date
Wed, 9 Feb 2011 17:03:40 +0100
the center command is a nice way of demeaning variables.
justina
[email protected] schrieb: -----
An: [email protected]
Von: Maarten buis <[email protected]>
Gesendet von: [email protected]
Datum: 09.02.2011 12:43PM
Thema: Re: st: Multicollinearity in panel data
--- On Wed, 9/2/11, Jing Zhou wrote:
> However, according Maarten's saying, if subsstracting
> a value (i.e. the mean value), some x which are below
> the mean value will become negative, but x^2 will be
> still positive. I wonder whether this situation is
> acceptable?
Absolutely, it is even helpful in identifying the separate
"effects" of x and x^2. You want the relationship between
x and x^2 to be as non-linear as possible. This is something
different than the relationship between y and x. The former
is your choice, the latter is an empirical finding.
Imagine what would happen when x^2 where almost a linear
representation of x, than how would a regression distinguish
between x and x^2? It is the non-linearity of the
relationship between x and x^2 that makes sure that a
regression can distinguish between x and x^2, and thus give
them separate "effects". This non-linearity is maximized
(i.e. the absolute correlation is minimized) when the minimum
of that curve is set at the mean.
*--------------------- begin example ----------------
sysuse nlsw88, clear
gen byr = 1988-age
gen cbyr = .
gen cbyr2 = .
tempname memhold
tempfile results
postfile `memhold' base abscorr using `results'
forvalues j = 1942/1948 {
qui replace cbyr = byr - `j'
qui replace cbyr2 = cbyr ^2
qui corr cbyr*
post `memhold' (`j') (abs(r(rho)))
}
sum byr, meanonly
qui replace cbyr = byr - r(mean)
local m = r(mean)
qui replace cbyr2 = cbyr ^2
qui corr cbyr*
post `memhold' (`m') (abs(r(rho)))
forvalues j = 1949/1954 {
qui replace cbyr = byr - `j'
qui replace cbyr2 = cbyr ^2
qui corr cbyr*
post `memhold' (`j') (abs(r(rho)))
}
postclose `memhold'
use `results', clear
twoway line abscorr base
*--------------- end example ------------------
(For more on examples I sent to the Statalist see:
http://www.maartenbuis.nl/example_faq )
Hope this helps,
Maarten
--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany
http://www.maartenbuis.nl
--------------------------
*
* 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/