Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: FW: running mean and s.d.


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: FW: running mean and s.d.
Date   Tue, 11 May 2004 21:48:58 +0100

Kit may want to do this, but I want 
to say on his behalf that there are 
accessible sources you can use 
here to save his time. 

Given the technical words "local macro", 
you can read up sections in [U] and [P] 
if they are accessible to you. There is 
also a detailed tutorial in Stata Journal 
2(2), 2002. If all else fails, this
material is explained in some detail 
at http://fmwww.bc.edu/RePEc/usug2002/fortitude.pdf

Nick 
n.j.cox@durham.ac.uk 

> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu]On Behalf Of de la Garza,
> Adrian
> Sent: 11 May 2004 21:41
> To: statalist@hsphsun2.harvard.edu
> Cc: baum@bc.edu
> Subject: st: FW: running mean and s.d.
> 
> 
> Chris,
>  
> Can you please explain your procedure? I see that you try to 
> use the standard deviation formula but I don't know how your 
> forvalues loop work, especially this part:
>  
> `i'*meanmat[`i']^2)/(`i'-1) if _n==`i' 
>  
> what is that `i' multiplying meanmat[`i']^2?
>  
> Thank you.
> Adrian
>  
> 
> 	-----Original Message-----
> 	From: Christopher F Baum [mailto:baum@bc.edu] 
> 	Sent: Monday, May 10, 2004 9:05 PM
> 	To: statalist@hsphsun2.harvard.edu
> 	Subject: st: running mean and s.d.
> 	
> 	
> 
> 	Adrian asked how to calculate a running mean and s.d. 
> within bygroups: e.g. 
> 
> 
> 	borrower closedate maturity mean sdev cvar 
> 
> 	18 Thermal Po~s 23-Dec-02 5 5.00 0.00 0.00 
> 
> 	1st Silicon (~c 19-Jun-01 7 7.00 0.00 0.00 
> 
> 	AB Capital Ma~d 25-Jul-97 2 2.00 0.00 0.00 
> 
> 	AB Lietuvos D~a 25-Aug-00 3 3.00 0.00 0.00 
> 
> 	ABC Roma Bank~d 13-Mar-97 1 1.00 0.00 0.00 
> 
> 	ABN AMRO Bank~V 6-Apr-01 1 1.00 0.00 0.00 
> 
> 	ABN AMRO Bank~V 9-May-01 1 1.00 0.00 0.00 
> 
> 	ABN AMRO Bank~) 25-Oct-95 3 3.00 0.00 0.00 
> 
> 	AC Internatio~d 30-May-96 6 6.00 0.00 0.00 
> 
> 	AC Internatio~d 29-Nov-96 5 5.50 0.71 0.13 
> 
> 	AC Internatio~d 16-Jul-99 6 5.67 0.58 0.10 
> 
> 	ACINDAR Indus~A 16-Jul-93 2 2.00 0.00 0.00 
> 
> 	ACINDAR Indus~A 12-Nov-93 5 3.50 2.12 0.61 
> 
> 	ACINDAR Indus~A 14-Feb-97 7 4.67 2.52 0.54 
> 
> 	ADI Cayman Corp 21-Dec-95 5 5.00 0.00 0.00 
> 
> 	AECI Ltd 19-Jul-91 4 4.00 0.00 
> 
> 	0.00 
> 
> 	AIG Finance (~d 12-Apr-01 3 3.00 0.00 0.00 
> 
> 	ANACAFE - Aso~e 31-Aug-93 5 5.00 0.00 0.00 
> 
> 	AO IrkutskEne~o 20-Apr-98 3 3.00 0.00 0.00 
> 
> 	AO Moscow Cit~k 19-Mar-98 3 3.00 0.00 0.00 
> 
> 	AO Siberian O~) 15-Aug-97 3 3.00 0.00 0.00 
> 
> 	APP Global Fi~ 17-Apr-97 5 5.00 0.00 0.00 
> 
> 	APP Global Fi~d 4-Oct-96 5 5.00 0.00 0.00 
> 
> 	APP Internati~V 18-Sep-95 5 5.00 0.00 0.00 
> 
> 	APP Internati~V 18-Sep-95 10 7.50 3.54 0.47 
> 
> 	APP Internati~V 28-Jun-96 3 6.00 3.61 0.60 
> 
> 	APP Internati~V 12-Dec-96 3 5.25 3.30 0.63 
> 
> 
> 
> 	bys borrname:g totmat=sum(mat) 
> 
> 	bys borrname: g iss=_n 
> 
> 	g meanmat = totmat/iss 
> 
> 	g matsq = mat^2 
> 
> 	bys borrname: g sqmat = sum(matsq) 
> 
> 	g sd = 0 
> 
> 
> 	su iss,meanonly 
> 
> 	local maxiss = r(max) 
> 
> 	forv i=2/`maxiss' { 
> 
> 	        bys borrname: replace sd = (sqmat[`i'] - 
> `i'*meanmat[`i']^2)/(`i'-1) if _n==`i' 
> 
> 	        } 
> 
> 	replace sd=sqrt(sd) if sd>0 
> 
> 	g cv = sd/meanmat 
> 
> 	l borrname issdate meanmat sd cv 
> 
> 
> 	Kit 
> 
> 
> 
> 
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
> 

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index