Statalist


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

AW: st: AW: Simulating stepwise regression


From   "Martin Weiss" <[email protected]>
To   <[email protected]>
Subject   AW: st: AW: Simulating stepwise regression
Date   Fri, 7 Aug 2009 15:09:35 +0200

<> 

I am sensing that this is more about the # of covariates retained by -sw- than the names - which are made up and meaningless anyway. So here is code that allows you to vary the sample size (option -obs-) and the # of regressors to feed to -sw-, with appropriate defaults. It returns R Squared adjusted and the number of retained regressors...


*************
capt prog drop sim

version 10.1

program define sim, rclass
  vers 10.1
  syntax [, obs(integer 100) NUMber(integer 5)]
  drop _all
	set obs `obs'
	gen y = invnorm(uniform())
	forv i=1/`number'{
		gen x`i' = rnormal()
	}
	stepwise, pr(.2): regress y x*
	ret sca r2a= e(r2_a)
	qui indeplist
	ret sca numofregre=/* 
  */ `:word count `r(X)''
end

//run it once just to see
sim, obs(50) num(3)
ret li

//simulate it!
simulate rsqadj=r(r2a)/* 
 */  numofreg=r(numofregre), /* 
 */ reps(100): sim, obs(100)

list, noo h(30)
*************



HTH
Martin


-----Ursprüngliche Nachricht-----
Von: [email protected] [mailto:[email protected]] Im Auftrag von John Antonakis
Gesendet: Freitag, 7. August 2009 12:18
An: [email protected]
Betreff: Re: st: AW: Simulating stepwise regression

That's very helpful; thanks Martin.

To extend the below, how would I simulate the r-square? That is, I want 
to run the simulation say 100 times, and then obtain the mean r-square 
from each simulation. Thus, I can show, at a specific sample size 
(n=100) and number of independent variables (k=5), what the r-square 
would be just by chance alone.

As an extension, is there a way to vary the sample size (n from 50 to 
1000, in increments of 50) and the number of independent variables (k=1 
to k=100 in increments of 1) in the simulation?

Best,
J.

____________________________________________________

Prof. John Antonakis
Associate Dean Faculty of Business and Economics
University of Lausanne
Internef #618
CH-1015 Lausanne-Dorigny
Switzerland

Tel ++41 (0)21 692-3438
Fax ++41 (0)21 692-3305

Faculty page:
http://www.hec.unil.ch/people/jantonakis&cl=en

Personal page:
http://www.hec.unil.ch/jantonakis
____________________________________________________



On 07.08.2009 12:06, Martin Weiss wrote:
> <> 
>
> You could also -tokenize- the return from -indeplist- and have your -program- return the regressors one by one...
>
>
> *************
> capt prog drop sim
>
> version 10.1
>
> program define sim, rclass
>   drop _all
> 	set obs 100
> 	gen y = invnorm(uniform())
> 	gen x1 = invnorm(uniform())
> 	gen x2 = invnorm(uniform())
> 	gen x3 = invnorm(uniform())
> 	gen x4 = invnorm(uniform())
> 	gen x5 = invnorm(uniform())
> 	stepwise, pr(.2): regress y x1-x5
> 	qui indeplist
> 	tokenize "`r(X)'"
> 	ret loc one="`1'"
> 	ret loc two="`2'"
> 	ret loc three="`3'"
> 	ret loc four="`4'"
> 	ret loc five="`5'"
> end
>
> sim
>
> ret li
> *************
>
>
>
> HTH
> Martin
>
>
> -----Ursprüngliche Nachricht-----
> Von: [email protected] [mailto:[email protected]] Im Auftrag von John Antonakis
> Gesendet: Freitag, 7. August 2009 11:47
> An: [email protected]
> Betreff: st: Simulating stepwise regression
>
> Hi:
>
> I would like to simulate the below. Note, I am no fan of stepwise--I 
> just want to demonstrate it evils
>
> However, I do not know
>
> 1. what to put in the place of "??"--that is, I want the program to 
> capture only the variables that were selected in the model as being 
> significant
>
> 2. how to simulate the r-square.
>
> 3. how to extend the simulation (a new program) such that I simulate 
> from n = 50 to n=1000 (in increments of 50), crossed with independent 
> variables ranging from x1 to x100.
>
> Regards,
> John.
>
> Here is the program:
>
> set seed 123456
>
> capture program drop sim
>  version 10.1
> program define sim, eclass
>         drop _all
>
> set obs 100
>
> gen y = invnorm(uniform())
> gen x1 = invnorm(uniform())
> gen x2 = invnorm(uniform())
> gen x3 = invnorm(uniform())
> gen x4 = invnorm(uniform())
> gen x5 = invnorm(uniform())
>
> stepwise, pr(.2): regress y x1-x5
>   end
>
> simulate ??? , reps(20) seed (123) : sim,
>
> foreach v in ?? {
>  gen t_`v' = /*
> */_b_`v'/_se_`v'
>  gen p_`v' =/*
> */ 2*(1-normal(abs(t_`v')))
> }
>
> ____________________________________________________
>
> Prof. John Antonakis
> Associate Dean Faculty of Business and Economics
> University of Lausanne
> Internef #618
> CH-1015 Lausanne-Dorigny
> Switzerland
>
> Tel ++41 (0)21 692-3438
> Fax ++41 (0)21 692-3305
>
> Faculty page:
> http://www.hec.unil.ch/people/jantonakis&cl=en
>
> Personal page:
> http://www.hec.unil.ch/jantonakis
> ____________________________________________________
>
>
>
> *
> *   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/
>   
*
*   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–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index