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]

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

Hi all,

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/



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