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: creating a foreach loop for principal components
From
Nick Cox <[email protected]>
To
[email protected]
Subject
Re: st: creating a foreach loop for principal components
Date
Fri, 2 Sep 2011 19:20:42 +0100
Your text talks initially about omitting observations, but your code
examples are entirely in terms of omitting variables. I am going to
assume you mean the latter.
NB: Observations are rows; variables are columns. BTW, -pca- is a
command, not a function.
The structure you seem to be asking for can be coded like this.
unab all : var1-var300
tokenize `all'
forval j = 1/300 {
local this : list all - ``j''
pca `this'
predict pc1-pc5
regress ``j'' pc1-pc5
drop pc1-pc5
}
Nick
On Fri, Sep 2, 2011 at 7:09 PM, Dmitriy Glumov <[email protected]> wrote:
> I am working on principal components and have run into a problem
> creating a loop. I have about 300 observations and each one needs to
> undergo a 3 step process: 1) Creating principal components WITHOUT the
> respective observation (principal components function itself is very
> simple, but I struggle to create a loop for it), 2) Predicting first 5
> components (this step doesn't change, but component values themselves
> are dependent on step 1), and 3) Regressing the respective variable
> onto the components.
>
> To illustrate, the process for variable 1 would look something like this:
> pca var2-var300
> predict pc1-pc5
> regress var1 pc1-pc5
>
> For variable 2, it would be this:
>
> pca var1 var3-var300
> predict pc1-pc5
> regress var2 pc1-pc5
>
> For variable 3,
>
> pca var1-var2 var4-var300
> predict pc1-pc5
> regress var3 pc1-pc5
>
> and, so on for the remaining variables. It is certainly doable by
> hand, but the process is very time-consuming. I am sure there is a way
> to create a foreach loop but I just can't figure out how. So if you
> can help me with this, it would be greatly appreciated. Thank you for
> your consideration.
*
* 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/