Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: cycling paired t test (and signed rank sum test)


From   Maarten buis <maartenbuis@yahoo.co.uk>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: cycling paired t test (and signed rank sum test)
Date   Sun, 21 Oct 2007 10:45:25 +0100 (BST)

--- Diego Bellavia <messadua@yahoo.it> wrote:
> I have many (~ 500) variables to test in a paired design (I would
> like to perform both a paired t-test and a signed rank sum test).

First comment is that you need to apply an adjustment of the p-values
to correct for the fact that you are performing that many tests. You
can let Stata do that for you using the undocumented command -_mtest-
To find out more about -_mtest-, type -help _mtest-. (In Stata-speak
undocumenten means not in the paper manual, but there is a help file,
not-documenten means there is neither an entry in the paper manual nor
a help file) 

> To avoid typing all the variables I would like to define a double
> loop to perform the test for all the variables. 
> Since all the variables, after the reshaping in wide format of the
> dataset are in the format a1 b1 c1... and a2 b2 c2, basing on STATA 
> documentation I tried to implement arrays, and I ended up with
> something like 

The example below does what you want, in addition it also gives you
adjusted p-values (in this case Sidak adjust p-values, but you can
choose your own favourite flavor), and I have used -matlist- to give
you a nice display of the result. In the colnames you see that I call
columns something like ttest:something, or ranksum:something, ttest and
ranksum are the equation names and the something the column names, it
gives nice output from -matlist-. Another trick I use is refering to
the local i as `++i', this means: first add 1 and than use the new
content of the local i. Otherwise I haven't used any trick that aren't
explained in -help forvalues-, -help levelsof-, -help macrolists-,
-help matrix-, -help matrix substitution-, -help matlist-, -help
_mtest-, -help ttest-, and -help ranksum-.

*------------------ begin example --------------------
set more off
use "http://www.stata-press.com/data/r10/nlswork.dta";, clear
keep idcode year ln_wage
levelsof year
local levs = "`r(levels)'"
reshape wide ln_wage, i(idcode) j(year)
local i = 0
mat rest = J(105,2,.)
mat resr = J(105,4,.)
foreach lev1 of local levs{
	local left "`left' `lev1'"
	local second : list levs - left
	foreach lev2 of local second {
		ttest ln_wage`lev1' = ln_wage`lev2'
		local diff = r(mu_2)-r(mu_1)
		matrix rest[`++i',1] = `diff', r(p)
		signtest ln_wage`lev1' = ln_wage`lev2'
		matrix resr[`i',1] = r(N_neg), r(N_pos), ///
                                     r(N_tie), r(p_neg) 
		local rowname "`rowname' `lev1'_v_`lev2'"
	}
} 
_mtest adjust rest, mtest(sidak) pindex(2)
matrix res = rest, r(result)
_mtest adjust resr, mtest(sidak) pindex(4)
matrix res = res, resr, r(result)
#delimit ;
matrix colnames res = ttest:diff ttest:unadj_p ttest:adj_p
                      ranksum:N_neg ranksum:N_pos ranksum:N_tie
                      ranksum:unadj_p ranksum:adj_p ;
#delimit cr
matrix rownames res = `rowname'
matlist res, underscore format(%8.0g)
*------------------ end example ---------------------
(For more on how to use examples I sent to the Statalist, see
http://home.fsw.vu.nl/m.buis/stata/exampleFAQ.html )

> Last question: to perform a paired t-test or signed rank sum test in
> STATA, I am forced to  reshape the dataset in wide format? 

Yes

Hope this helps,
Maarten

-----------------------------------------
Maarten L. Buis
Department of Social Research Methodology
Vrije Universiteit Amsterdam
Boelelaan 1081
1081 HV Amsterdam
The Netherlands

visiting address:
Buitenveldertselaan 3 (Metropolitan), room Z434

+31 20 5986715

http://home.fsw.vu.nl/m.buis/
-----------------------------------------


      ___________________________________________________________ 
Want ideas for reducing your carbon footprint? Visit Yahoo! For Good  http://uk.promotions.yahoo.com/forgood/environment.html
*
*   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