Skip to content

Commit 9c7ee2b

Browse files
committed
rob modified unifTest.R
1 parent 749c136 commit 9c7ee2b

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

tests/unifTest.R

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11

2-
library(selectiveInference)
2+
library(selectiveInference, lib.loc="/Users/tibs/dropbox/git/R-software/mylib")
33

44
library(glmnet)
55

66
set.seed(424)
77

8-
#n=100
9-
#p=30
8+
n=100
9+
p=30
10+
11+
n=100
12+
p=200
1013

11-
n=20
12-
p=40
1314
sigma=.4
1415
beta=c(3,2,-1,4,-2,2,rep(0,p-6))
1516
#beta=rep(0,p)
1617

1718
tr=beta!=0
1819

1920
#type="full"
20-
type="part"
21+
type="partial"
2122

2223
nsim = 1000
2324
lambda=.3
@@ -28,7 +29,7 @@ x = scale(x,T,T)/sqrt(n-1)
2829
mu = x%*%beta
2930

3031
for (i in 1:nsim) {
31-
cat(i)
32+
cat(i,fill=T)
3233
y=mu+sigma*rnorm(n)
3334
y=y-mean(y)
3435
# first run glmnet
@@ -68,26 +69,25 @@ abline(0,1)
6869

6970
# estimate and plot FDR
7071

71-
pvadj=pvadj.by=pvadj.holm=matrix(NA,nsim,p)
72+
pvadj=pvadj.by=matrix(NA,nsim,p)
7273
for(ii in 1:nsim){
73-
o=!is.na(pvals[ii,])
74-
pvadj[ii,o]=p.adjust(pvals[ii,o],method="BH")
75-
pvadj.by[ii,o]=p.adjust(pvals[ii,o],method="BY")
76-
pvadj.holm[ii,o]=p.adjust(pvals[ii,o],method="holm")
74+
oo=!is.na(pvals[ii,])
75+
pvadj[ii,oo]=p.adjust(pvals[ii,oo],method="BH")
76+
pvadj.by[ii,oo]=p.adjust(pvals[ii,oo],method="BY")
77+
7778
}
78-
qqlist=fdr=se=fdr.by=se.by=fdr.holm=se.holm=c(.05, .1,.15,.2,.25,.3)
79+
qqlist=c(.05, .1,.15,.2,.25,.3)
80+
fdr=se=fdr.by=se.by=rep(NA,length(qqlist))
7981
jj=0
8082
for(qq in qqlist){
8183
jj=jj+1
8284

83-
r=v=r.by=v.by=r.holm=v.holm=rep(NA,nsim)
85+
r=v=r.by=v.by=rep(NA,nsim)
8486
for(ii in 1:nsim){
8587
v[ii]=sum( (pvadj[ii,]<qq & !tr), na.rm=T)
8688
r[ii]=sum( (pvadj[ii,]<qq), na.rm=T)
8789
v.by[ii]=sum( (pvadj.by[ii,]<qq & !tr), na.rm=T)
8890
r.by[ii]=sum( (pvadj.by[ii,]<qq), na.rm=T)
89-
v.holm[ii]=sum( (pvadj.holm[ii,]<qq & !tr), na.rm=T)
90-
r.holm[ii]=sum( (pvadj.holm[ii,]<qq), na.rm=T)
9191

9292
}
9393
oo=r!=0
@@ -96,15 +96,13 @@ oo=r!=0
9696
oo=r.by!=0
9797
fdr.by[jj]=mean((v.by/r.by)[oo])
9898
se.by[jj]=sqrt(var((v.by/r.by)[oo])/sum(oo))
99-
oo=r.by!=0
100-
fdr.holm[jj]=mean((v.holm/r.holm)[oo])
101-
se.holm[jj]=sqrt(var((v.holm/r.holm)[oo])/sum(oo))
99+
102100
}
103101

104102

105103
plot(qqlist,fdr,type="b",xlab="target FDR",ylab="observed FDR",ylim=c(0,.6),xlim=c(0,.6))
106104
lines(qqlist,fdr.by,type="b",col=3)
107-
lines(qqlist,fdr.holm,type="b",col=4)
105+
108106
abline(0,1,lty=2)
109107
title(paste("n=",as.character(n)," p=",as.character(p)," ",as.character(type)))
110-
legend("bottomright",c("BH","BY","Holm"),col=c(1,3,4),lty=1)
108+
legend("bottomright",c("BH","BY"),col=c(1,3),lty=1)

0 commit comments

Comments
 (0)