Hi everyone!
Can anyone tell me how to calculate p-values from z-scores in R? Is this the correct way:
pvalue = pnorm(-abs(z))
Thanks!!!
Hi everyone!
Can anyone tell me how to calculate p-values from z-scores in R? Is this the correct way:
pvalue = pnorm(-abs(z))
Thanks!!!
your expression is good. Just don't forget, if relevant, to take into account the two-sided characteristic of the test, it would be then:
pvalue2sided=2*pnorm(-abs(z))
And, if you think you need to use the "apply" function, you might need to think about multitesting correction... but, I agree, this is another topic ;-)
Hi Diana,
I was explaining the same thing to my friend this morning.
Here is a very nice and useful link: Calculating p Values
I hope this helps.
Based on the previous answers and comments, here is a function that considers both the one-sided case (two alternatives, observed scores are greater / z is positive: "+", observed scores are lower / z is negative: "-") and two sided case ("NULL").
convert.z.score<-function(z, one.sided=NULL) {
if(is.null(one.sided)) {
pval = pnorm(-abs(z));
pval = 2 * pval
} else if(one.sided=="-") {
pval = pnorm(z);
} else {
pval = pnorm(-z);
}
return(pval);
}
Yet another [late] answer, in the context of GWAS: SNP dataset and Z Score
Kevin
Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Thanks! my test is one-sided as I am looking at enrichment only
In one-sided case, one is interested to find how extreme is the observation compared to random expectation. Therefore, it seems to be ill defined as it fails to take into account the sign of the z-scores: