Re: [R] Rank-based p-value on large dataset

From: Sean Davis <sdavis2_at_mail.nih.gov>
Date: Fri 04 Mar 2005 - 23:46:18 EST


On 3/3/05 17:40, "Deepayan Sarkar" <deepayan@stat.wisc.edu> wrote:

> On Thursday 03 March 2005 16:32, Deepayan Sarkar wrote:
>> On Thursday 03 March 2005 16:22, Sean Davis wrote:

>>> I have a fairly simple problem--I have about 80,000 values (call
>>> them y) that I am using as an empirical distribution and I want to
>>> find the p-value (never mind the multiple testing issues here, for
>>> the time being) of 130,000 points (call them x) from the empirical
>>> distribution. I typically do that (for one-sided test) something
>>> like
>>>
>>> loop over i in x
>>> p.val[i] = sum(y>x[i])/length(y)
>>>
>>> and repeat for all i. However, length(x) is large here as is
>>> length(y), so this process takes quite a long time. Any
>>> suggestions?
>> 
>> The obvious thing to do would be
>> 
>> p.val = 1 - ecdf(x)(y)
> 
> or rather: p.val = 1 - ecdf(y)(x)
> 

Deepayan,

Thanks (and to Martin, also). This works wonderfully. I didn't expect such a function to exist, but knowing of it will simplify matters significantly for me.

Sean



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat Mar 05 02:22:30 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:30:40 EST