Nca<-Nco<-1000
nca<-20
nco<-0
dp<-0.001
pca<-seq(from=dp,to=0.05,length=100)
pco<-pca
pcaco<-expand.grid(pca,pco)
L<-rep(0,length(pcaco[,1]))
R<-L
for(i in 1:length(pcaco[,1])){
tmpca<-pcaco[i,1]
tmpco<-pcaco[i,2]
R[i]<-tmpca/tmpco
L[i]<-lchoose(Nca,nca)*lchoose(Nco,nco)*nca*log(tmpca)+nco*log(tmpco)+(Nca-nca)*log(1-tmpca)+(Nco-nco)*log(1-tmpco)
}
Ans<-cbind(pcaco,L,R)
SortedAns<-Ans[order(Ans[,4]),]
a<-0.01
pt<-10^(-8)
Nm<-log(1-a)/log(1-pt)
Lm<-1-exp(Nm*log(1-exp(L)))
M<-matrix(0,length(pca),length(pco))
for(i in 1:length(pca)){
for(j in 1:length(pco)){
M[i,j]<-lchoose(Nca,nca)+lchoose(Nco,nco)+nca*log(pca[i])+nco*log(pco[j])+(Nca-nca)*log(1-pca[i])+(Nco-nco)*log(1-pco[j])
}
}
as<-seq(from=1,to=3,by=0.25)
contour(exp(M))
for(i in 1:length(as)){
abline(0,1/as[i],col=i)
}
Mm<-1-exp(Nm*log(1-exp(M)))
contour(Mm)
for(i in 1:length(as)){
abline(0,1/as[i],col=i)
}
x<-c(rep(1,nca),rep(2,Nca-nca),rep(1,nco),rep(2,Nco-nco))
y<-c(rep(1,Nca),rep(2,Nco))
fisher.test(x,y)
N<-100
ns<-0:20
ps<-matrix(0,length(ns),length(ns))
for(i in 1:length(ns)){
for(j in 1:length(ns)){
n<-ns[i]
if(ns[i]*ns[j]!=0){
x<-c(rep(1,n),rep(2,N-n),rep(1,ns[j]),rep(2,N-ns[j]))
y<-c(rep(1,N),rep(2,N))
ps[i,j]<-fisher.test(x,y)$p
}
}
}
matplot(log(ps),type="l")
Ns<-2^(5:14)
n<-20
Ps<-rep(0,length(Ns))
for(i in 1:length(Ns)){
x<-c(rep(1,n),rep(2,Ns[i]-n),rep(1,0),rep(2,Ns[i]))
y<-c(rep(1,Ns[i]),rep(2,Ns[i]))
Ps[i]<-fisher.test(x,y)$p
}
plot(Ns,Ps)
Nperm<-1000
ps<-rep(0,Nperm)
for(i in 1:Nperm){
ps[i]<-fisher.test(x,y[sample(1:length(y))])$p
}
plot(sort(ps))
x<-c(rep(1,20),rep(2,980),rep(1,0),rep(2,1000))
y<-c(rep(1,1000),rep(2,1000))
fisher.test(x,y)
Nca<-Nco<-1000
nca<-10
nco<-0
dp<-0.001
pca<-seq(from=dp,to=0.1,length=100)
pco<-pca
pcaco<-expand.grid(pca,pco)
L<-rep(0,length(pcaco[,1]))
R<-L
for(i in 1:length(pcaco[,1])){
tmpca<-pcaco[i,1]
tmpco<-pcaco[i,2]
R[i]<-tmpca/tmpco
L[i]<-nca*log(tmpca)+nco*log(tmpco)+(Nca-nca)*log(1-tmpca)+(Nco-nco)*log(1-tmpco)
}
Ans<-cbind(pcaco,L,R)
SortedAns<-Ans[order(Ans[,4]),]
M<-matrix(0,length(pca),length(pco))
for(i in 1:length(pca)){
for(j in 1:length(pco)){
M[i,j]<-nca*log(pca[i])+nco*log(pco[j])+(Nca-nca)*log(1-pca[i])+(Nco-nco)*log(1-pco[j])
}
}
image(M)
N<-log(0.99)/log(1-10^(-8))
Nca<-Nco<-1000
nca<-20
nco<-1
dp<-0.001
pca<-seq(from=dp,to=0.05,length=100)
pco<-pca
pcaco<-expand.grid(pca,pco)
L<-rep(0,length(pcaco[,1]))
R<-L
for(i in 1:length(pcaco[,1])){
tmpca<-pcaco[i,1]
tmpco<-pcaco[i,2]
R[i]<-tmpca/tmpco
L[i]<-lchoose(Nca,nca)*lchoose(Nco,nco)*nca*log(tmpca)+nco*log(tmpco)+(Nca-nca)*log(1-tmpca)+(Nco-nco)*log(1-tmpco)
}
Ans<-cbind(pcaco,L,R)
SortedAns<-Ans[order(Ans[,4]),]
a<-0.01
pt<-10^(-8)
Nm<-log(1-a)/log(1-pt)
Lm<-1-exp(Nm*log(1-exp(L)))
M<-matrix(0,length(pca),length(pco))
for(i in 1:length(pca)){
for(j in 1:length(pco)){
M[i,j]<-lchoose(Nca,nca)+lchoose(Nco,nco)+nca*log(pca[i])+nco*log(pco[j])+(Nca-nca)*log(1-pca[i])+(Nco-nco)*log(1-pco[j])
}
}
as<-seq(from=1,to=3,by=0.25)
contour(exp(M))
for(i in 1:length(as)){
abline(0,1/as[i],col=i)
}
Mm<-1-exp(Nm*log(1-exp(M)))
contour(Mm)
for(i in 1:length(as)){
abline(0,1/as[i],col=i)
}
x<-c(rep(1,nca),rep(2,Nca-nca),rep(1,nco),rep(2,Nco-nco))
y<-c(rep(1,Nca),rep(2,Nco))
fisher.test(x,y)