qqunif = function(p,BH=T,...)
{
nn = length(p)
xx = -log10((1:nn)/(nn+1))
plot( xx, -sort(log10(p)),
xlab=expression(Expected~~-log[10](italic(p))),
ylab=expression(Observed~~-log[10](italic(p))),
... )
abline(0,1,col='gray')
if(BH)
{
lines( xx, -log10(0.05*(1:nn)/(nn+1)), col='red')
lines( xx, -log10(0.10*(1:nn)/(nn+1)), col='orange')
lines( xx, -log10(0.25*(1:nn)/(nn+1)), col='yellow')
legend('bottomright', c("FDR = 0.05","FDR = 0.10","FDR = 0.25"),
col=c('red','orange','yellow'),lty=1, cex=1.4)
}
}
Tuesday, December 15, 2009
pvalue plot vs uniform; FDR
Tuesday, December 8, 2009
imagesc in CDAT
The imagesc function in MATLAB creates plots that have color bars scaled to a user-specified range. This allows you to simply create a whole series of plots that can be easily intercompared.
The following function imitates imagesc:
import vcs
def imagesc(x, mini, maxi):
t = vcs.init()
a = t.getboxfill('quick')
a.level_1 = mini
a.level_2 = maxi
t.plot(x, a)
x is the input array and mini and maxi define the range in values to plot. The function establishes a VCS canvas, imports the "quick" boxfill graphics method, sets the level range to mini and maxi, and plots x using this customized graphics method.
other tips for CDAT/Python check http://www.johnny-lin.com/cdat_tips/
Thursday, December 3, 2009
likelihood ratio test
> logLik.test
function(fit0,fit)
{
l0 = logLik(fit0)
l1 = logLik(fit)
lratio = abs(as.numeric(l0)-as.numeric(l1))
df = abs( attr(l1,'df') - attr(l0,'df') )
pval = 1-pchisq( 2*lratio, df)
return(pval)
}
log likelihood from lm, glm, polr
> fit = lm(y ~ x) > logLik(fit) 'log Lik.' -36.4 (df=4) > attr(logLik(fit),'df') [1] 4
Subscribe to:
Comments (Atom)