################### # Grafy sily testu v zavislosti na vzdalenosti od nulove hypotezy # Cim vice se vzdalujeme od nulove hypotezy, tim by mela byt sila vetsi # Normalni rozdeleni: alpha=0.05 Mean = seq(0,0.5,length=m<-6) # v Mean jsou hodnoty skutecne str. hodnoty, ze ktere budeme generovat opak=100 n=100 p.tf=rep(NA,m) p.zf=rep(NA,m) p.wf=rep(NA,m) for(j in 1:m){ # m je pocet ruznych hodnot mean, pro ktere budeme mit v grafu bod p.t=numeric(opak) p.z=numeric(opak) p.w=numeric(opak) for(i in 1:opak){ x=rnorm(n,mean=Mean[j],sd=1) # x = rt(n,df=1,ncp=Mean[j]) # x = rexp(n,1/(1+Mean[j]))-1 p.t[i]=t.test(x,mu=0)$p.val p.w[i]=wilcox.test(x,mu=0)$p.val p.z[i]=prop.test(sum(x>0),n,p=1/2)$p.val } p.tf[j] = mean(p.t<=0.05) p.wf[j] = mean(p.w<=0.05) p.zf[j] = mean(p.z<=0.05) } plot(rep(Mean,3),c(p.tf,p.wf,p.zf),type="n",xlab="Parametr polohy",ylab="Sila testu",main="Normalni rozdeleni") abline(h=alpha,lty=3) lines(Mean,p.tf,lwd=2,col=1) lines(Mean,p.wf,lwd=2,col=2) lines(Mean,p.zf,lwd=2,col=3) #lines(Mean,p.bf,lwd=2,col=4,lty=2) # points(Mean,p.tf,pch=16,col=1) points(Mean,p.wf,pch=16,col=2) points(Mean,p.zf,pch=16,col=3) #points(Mean,p.bf,pch=16,col=4) legend("bottomright",c("t-test", "Wilcoxon", "znam. test"),col=1:3,pch=16,lty=c(1,1,1),lwd=2) ###### ## Totez pro cauchyho rozdeleni ## Zde neplati predpoklad nektereho z testu... Mean = seq(0,0.5,length=m<-6) opak=100 n=100 p.tf=rep(NA,m) p.zf=rep(NA,m) p.wf=rep(NA,m) for(j in 1:m){ p.t=numeric(opak) p.z=numeric(opak) p.w=numeric(opak) for(i in 1:opak){ #x=rnorm(n,mean=Mean[j],sd=1) x = rt(n,df=1,ncp=Mean[j]) # x = rexp(n,1/(1+Mean[j]))-1 p.t[i]=t.test(x,mu=0)$p.val p.w[i]=wilcox.test(x,mu=0)$p.val p.z[i]=prop.test(sum(x>0),n,p=1/2)$p.val } p.tf[j] = mean(p.t<=0.05) p.wf[j] = mean(p.w<=0.05) p.zf[j] = mean(p.z<=0.05) } plot(rep(Mean,3),c(p.tf,p.wf,p.zf),type="n",xlab="Parametr polohy",ylab="Sila testu",main="Cauchyho rozdeleni") abline(h=alpha,lty=3) lines(Mean,p.tf,lwd=2,col=1) lines(Mean,p.wf,lwd=2,col=2) lines(Mean,p.zf,lwd=2,col=3) #lines(Mean,p.bf,lwd=2,col=4,lty=2) # points(Mean,p.tf,pch=16,col=1) points(Mean,p.wf,pch=16,col=2) points(Mean,p.zf,pch=16,col=3) #points(Mean,p.bf,pch=16,col=4) legend("bottomright",c("t-test", "Wilcoxon", "znam. test"),col=1:3,pch=16,lty=c(1,1,1),lwd=2) ##### Nakonec stejny obrazek pro Exp rozdeleni # Generujeme X, kde X=Y-1 a Y~Exp(1/(1+Mean[j])), tj. EX=Mean[j]. # Z grafu je videt, ze kazdy z testu testuje neco uplne jineho # Co testuje znamenkovy test a pro ktere rozdeleni Y dostavame testovanou 0, tj. generujeme za H_0? Mean = seq(0,0.5,length=m<-6) opak=100 n=100 p.tf=rep(NA,m) p.zf=rep(NA,m) p.wf=rep(NA,m) for(j in 1:m){ p.t=numeric(opak) p.z=numeric(opak) p.w=numeric(opak) for(i in 1:opak){ #x=rnorm(n,mean=Mean[j],sd=1) # x = rt(n,df=1,ncp=Mean[j]) x = rexp(n,1/(1+Mean[j]))-1 p.t[i]=t.test(x,mu=0)$p.val p.w[i]=wilcox.test(x,mu=0)$p.val p.z[i]=prop.test(sum(x>0),n,p=1/2)$p.val } p.tf[j] = mean(p.t<=0.05) p.wf[j] = mean(p.w<=0.05) p.zf[j] = mean(p.z<=0.05) } plot(rep(Mean,3),c(p.tf,p.wf,p.zf),type="n",xlab="Parametr polohy",ylab="Sila testu",main="Exponencialni rozdeleni") abline(h=alpha,lty=3) lines(Mean,p.tf,lwd=2,col=1) lines(Mean,p.wf,lwd=2,col=2) lines(Mean,p.zf,lwd=2,col=3) #lines(Mean,p.bf,lwd=2,col=4,lty=2) # points(Mean,p.tf,pch=16,col=1) points(Mean,p.wf,pch=16,col=2) points(Mean,p.zf,pch=16,col=3) #points(Mean,p.bf,pch=16,col=4) legend("bottomright",c("t-test", "Wilcoxon", "znam. test"),col=1:3,pch=16,lty=c(1,1,1),lwd=2) #############