[R] Is there a non-parametric repeated-measures Anova in R ?
Maciej Hoffman-Wecker
Maciej.Hoffman-Wecker at bioskin.de
Fri Jun 18 11:00:07 CEST 2010
I always wonder why no one of the real experts posts a reference to E. Brunners work:
Brunner, E., Domhof S. and Langer, F. (2002). Nonparametric Analysis of Longitudinal Data in Factorial Designs. Wiley, New York.
The german book is great:
Brunner, E. und Langer, F. (1999). Nichtparametrische Analyse longitudinaler Daten. Oldenbourg, München.
As far as I can remember it covers factorial designs as well.
There is even r code, but you have to google for.
I googled by myself and found this post:
http://www.mail-archive.com/r-help@r-project.org/msg87977.html
Regards,
Maciej
-----Ursprüngliche Nachricht-----
Message: 117
Date: Thu, 17 Jun 2010 20:12:54 -0400
From: David Winsemius <dwinsemius at comcast.net>
To: Tal Galili <tal.galili at gmail.com>
Cc: r-help at r-project.org
Subject: Re: [R] Is there a non-parametric repeated-measures Anova in
R ?
Message-ID: <B48AA7EE-0FC2-4CDF-B021-6904123050EF at comcast.net>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
On Jun 16, 2010, at 1:43 PM, Tal Galili wrote:
> Hello Jeremy,
> Thank you for replying.
>
> I came across friedman test (I even wrote and published R code to
> easily
> perform a post-hoc analysis of friedman
> test<http://www.r-statistics.com/2010/02/post-hoc-analysis-for-friedmans-test-r-code/
> >
> ).
> But what I am after is *multi-way* repeated-measures anova. Thank
> you for
> your reply which allowed me to clarify my intentions.
Many years ago I remember reading advice in Conover and Iman's
"Practical Non-Parametric Statistics" that one could apply a rank
transformation to the dependent and independent variables and then
run a typical anova test. This is probably inferior in many ways to
doing quantile regression (don't know if this has a repeated measures
extension) or to the use of robust standard errors for examining
inferential issues in regression models, but it certainly represents a
useful consistency check when all you are worried about is influential
points in a skew distributions. I cannot comment on how it would
theoretically behave in a repeated-measures analysis, but I suspect
that there are readers of this list who can comment with greater
authority, and I invite them to do so.
--
David.
>
> Best,
> Tal
>
>
>
>
> ----------------Contact
> Details:-------------------------------------------------------
> Contact me: Tal.Galili at gmail.com | 972-52-7275845
> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il
> (Hebrew) |
> www.r-statistics.com (English)
> ----------------------------------------------------------------------------------------------
>
>
>
>
> On Wed, Jun 16, 2010 at 8:30 PM, Jeremy Miles
> <jeremy.miles at gmail.com>wrote:
>
>> It's possible to use the ordinal regression model if your data are
>> ordered categories. The standard non-parametric test is the Friedman
>> test.
>>
>> ?friedman.test
>>
>> Jeremy
>>
>>
>> On 16 June 2010 10:22, Tal Galili <tal.galili at gmail.com> wrote:
>>> Hello Prof. Harrell and dear R-help mailing list,
>>>
>>> I wish to perform a non-parametric repeated measures anova.
>>>
>>> If what I read online is true, this could be achieved using a mixed
>> Ordinal
>>> Regression model (a.k.a: Proportional Odds Model).
>>> I found two packages that seems relevant, but couldn't find any
>>> vignette
>> on
>>> the subject:
>>> http://cran.r-project.org/web/packages/repolr/
>>> http://cran.r-project.org/web/packages/ordinal/
>>>
>>> So being new to the subject matter, I was hoping for some
>>> directions from
>>> people here.
>>>
>>> Are there any tutorials/suggested-reading on the subject? Even
>>> better,
>> can
>>> someone suggest a simple example code for how to run and analyse
>>> this in
>> R
>>> (e.g: "non-parametric repeated measures anova") ?
>>>
>>> I waited a week to repost this question. If I should have waited
>>> longer,
>> or
>>> not repost this at all - then I am truly sorry.
>>>
>>> Thanks for any help,
>>> Tal
>>>
>>>
>>>
>>>
>>>
>>>>
>>>> ----------------Contact
>>>> Details:-------------------------------------------------------
>>>> Contact me: Tal.Galili at gmail.com | 972-52-7275845
>>>> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il
>>>> (Hebrew)
>> |
>>>> www.r-statistics.com (English)
>>>>
>>>>
>> ----------------------------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>>
>>
>> --
>> Jeremy Miles
>> Psychology Research Methods Wiki: www.researchmethodsinpsychology.com
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
West Hartford, CT
------------------------------
Message: 118
Date: Thu, 17 Jun 2010 18:32:33 -0700
From: "Rex C. Eastbourne" <rex.eastbourne at gmail.com>
To: r-help at r-project.org
Subject: [R] Drawing paths through a grid
Message-ID:
<AANLkTimbItr_efpYalgJxPGBJL2sSWj6YfenACv89IzL at mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
I would like to draw a set of points that are equally spaced in a 2-D
grid. Then I would like to draw lines that illustrate different
directed paths through subsets of points. Imagine that the points
correspond to booths in a conference center, and I want to show the
various paths people took to visit the booths (using color to
highlight different types of paths). An example path might be: [(1,1),
(1,3), (3, 3)].
Note: I would like to also make the size of the points in the grid
variable (they correspond to the sizes of the booth).
Can anyone suggest a way to do this in R? (Or to suggest another
software package.)
Thanks,
Rex
------------------------------
Message: 119
Date: Thu, 17 Jun 2010 18:06:05 -0500
From: David LeBauer <dlebauer at illinois.edu>
To: r-help at r-project.org
Subject: [R] is there a function to find the quantile of the mean of a
vector?
Message-ID:
<AANLkTikFOYCypEsExyvN2kwXH1wUhjaXc9b_Y2Q8mSUg at mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Hello,
I am interested in finding the quantile of the mean of a vector,
something analogous to using the pnorm(), but for an mcmc chain
instead of a distribution with known parameters.
One approach would be to write a function that finds the index of x_i
that minimizes (x-mean(x))^2
I suspect there is a function available to do this, but I can't find it?
Thank you,
David
------------------------------
Message: 120
Date: Thu, 17 Jun 2010 23:15:31 -0400
From: Jorge Ivan Velez <jorgeivanvelez at gmail.com>
To: David LeBauer <dlebauer at illinois.edu>
Cc: r-help at r-project.org
Subject: Re: [R] is there a function to find the quantile of the mean
of a vector?
Message-ID:
<AANLkTinNoj5zxzFpea_eb5ZwC--mgux31950Ou0Bi0La at mail.gmail.com>
Content-Type: text/plain
Hi David,
You might try:
> set.seed(1)
> x <- runif(10, 3, 7)
> x
[1] 4.062035 4.488496 5.291413 6.632831 3.806728 6.593559 6.778701 5.643191
5.516456 3.247145
> (x-mean(x))^2
[1] 1.308783661 0.514892188 0.007285983 2.035688832 1.958118177 1.925165288
2.473214156
[8] 0.191087609 0.096348590 3.837329960
> which.min((x-mean(x))^2)
[1] 3
> x[which.min((x-mean(x))^2)]
[1] 5.291413
> which.min(scale(x, scale = FALSE)**2)
[1] 3
See ?which.min and ?scale for more information.
HTH,
Jorge
On Thu, Jun 17, 2010 at 7:06 PM, David LeBauer <> wrote:
> Hello,
>
> I am interested in finding the quantile of the mean of a vector,
> something analogous to using the pnorm(), but for an mcmc chain
> instead of a distribution with known parameters.
>
> One approach would be to write a function that finds the index of x_i
> that minimizes (x-mean(x))^2
>
> I suspect there is a function available to do this, but I can't find it?
>
> Thank you,
>
> David
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
------------------------------
Message: 121
Date: Fri, 18 Jun 2010 00:03:18 -0400
From: David Winsemius <dwinsemius at comcast.net>
To: weller <weller.emmons at gmail.com>
Cc: r-help at r-project.org
Subject: Re: [R] Multiple ecdf plots?
Message-ID: <A5D54844-67B3-43E1-B1C6-DC437D248FEA at comcast.net>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
On Jun 17, 2010, at 4:46 PM, weller wrote:
>
> I have a csv file that has approximately 50k rows. In the first
> value of
> each row, a file name is listed, and there are 162 different file
> names. At
> the end of each row, there is a number value. What I would like to
> be able
> to do is for the 162 different files (or we could call them
> categories), is
> compute the ecdf for the values within that category. Then plot the
> ecdf
> for each file on the same graph. Essentially, it would look
> something like
> http://www-stat.stanford.edu/~jtaylo/courses/stats202/R/chap3_data_exploration/iris_ecdf.png
> ,
> but instead of the 3 lines, it would show 162. They don't have to be
> different colors, and the number of records in each file category
> changes.
> I was considering using a matrix and adding to it via a loop, but
> couldn't
> quite get it to work. This is what I have right now.
>
> thwop <- read.csv("real_unmod_estimated_pI.csv", header=TRUE)
> filelist <- levels(thwop$Source)
> rig=matrix(nrows=162)
>
> for (i in filelist)
> {
> thug <- subset(thwop, == i)
> rig[i,length(ecdf(thug$Estimated.pI))]=ecdf(thug$Source)
> }
> rig
Perhaps:
plot(x=0, y=min(thwop$estimated.pI), xlim=c(min(thwop$estimated.pI),
max(thwop$estimated.pI) ), ylim=c(0.0, 1.0), xlab="", ylab="")
tapply(thwop$estimated.pI, thwop$Source, function(x) { par(new=TRUE) ;
plot(ecdf(x), verticals=TRUE, xlim=c(min(thwop$estimated.pI), max(thwop
$estimated.pI, xaxt=FALSE) )) })
(It is going to be a mess.)
>
> Any help would be appreciated
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Multiple-ecdf-plots-tp2259465p2259465.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
West Hartford, CT
------------------------------
Message: 122
Date: Thu, 17 Jun 2010 23:09:00 -0500
From: Frank E Harrell Jr <f.harrell at Vanderbilt.Edu>
To: David Winsemius <dwinsemius at comcast.net>
Cc: r-help at r-project.org
Subject: Re: [R] Is there a non-parametric repeated-measures Anova in
R ?
Message-ID: <4C1AF15C.40606 at vanderbilt.edu>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
On 06/17/2010 07:12 PM, David Winsemius wrote:
>
> On Jun 16, 2010, at 1:43 PM, Tal Galili wrote:
>
>> Hello Jeremy,
>> Thank you for replying.
>>
>> I came across friedman test (I even wrote and published R code to easily
>> perform a post-hoc analysis of friedman
>> test<http://www.r-statistics.com/2010/02/post-hoc-analysis-for-friedmans-test-r-code/>
>>
>> ).
>> But what I am after is *multi-way* repeated-measures anova. Thank you for
>> your reply which allowed me to clarify my intentions.
>
> Many years ago I remember reading advice in Conover and Iman's
> "Practical Non-Parametric Statistics" that one could apply a rank
> transformation to the dependent and independent variables and then run a
> typical anova test. This is probably inferior in many ways to doing
> quantile regression (don't know if this has a repeated measures
> extension) or to the use of robust standard errors for examining
> inferential issues in regression models, but it certainly represents a
> useful consistency check when all you are worried about is influential
> points in a skew distributions. I cannot comment on how it would
> theoretically behave in a repeated-measures analysis, but I suspect that
> there are readers of this list who can comment with greater authority,
> and I invite them to do so.
>
David - the rank transform method doesn't handle interactions properly,
among other problems. The proportional odds model is the logical
extension of the Wilcoxon-Kruskal-Wallis approach. It relies only on
the rank of Y and reduces to the regular nonparametric tests as special
cases.
Frank
--
Frank E Harrell Jr Professor and Chairman School of Medicine
Department of Biostatistics Vanderbilt University
------------------------------
Message: 123
Date: Fri, 18 Jun 2010 16:02:35 +1200
From: John Williams <john.williams at otago.ac.nz>
To: <deschamps.aline at yahoo.fr>
Cc: R Help <r-help at r-project.org>
Subject: Re: [R] Design of experiments for Choice-Based Conjoint
Analysis (CBC)
Message-ID: <4C1AEFDB.7070002 at otago.ac.nz>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Hi,
You might find the attached article useful. I am facing the same
problems that you appear to be facing, and I found this article to be a
great help.
I've also attached a small script I wrote to replicate the analyses
presented in the paper. I can't reproduce the second analysis though,
and I can't figure out what's wrong with my code.
HTH,
John.
P.S. Is anyone else lurking interested in Discrete Choice Experiments
and/or MaxDiff (Best/Worst) scaling. Perhaps we could form a wee SIG?
Cheers,
John
P.S. While there is no single function to do CBC/DCE in R, it doesn't
seem too hard. The only step for which there is no single function is
aggregating the design matrix and data. I've named my script/function
MktRoll after the SAS macro that does that same job (among many other
things, I'm sure). It's just a quick hack, though!
While it seems to be relatively straightforward in R, I have yet to
actually implement a design and gather and analyse the data though ... ;-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: DCE with R.pdf
Type: application/pdf
Size: 934195 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20100618/a8d2f366/attachment.pdf>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MktRoll.R
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20100618/a8d2f366/attachment.pl>
------------------------------
_______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
End of R-help Digest, Vol 88, Issue 21
More information about the R-help
mailing list