#####################################################################################
# Code for the figures in "The Insignificance of Null Hypothesis Significance       #
# Testing.  Political Research Quarterly, 52:3, 647-674 (September 1999).           #
#                     					  Copyright 2008, Jeff Gill #
#####################################################################################

# FIGURE 0 SHOWING BASIC SETUP

ruler <- seq(-3,3,length=500)
ps.options(height=5,width=10)
postscript("Article.Hypo/hypo.temp.ps")
par(mfrow=c(1,1),cex=1,oma=c(2,2,1,1))

plot(ruler,dnorm(ruler,0,1),type="l",ylim=c(-.2,.41),xlim=c(-3.3,3.3),
	xlab="",ylab="",xaxt="n",yaxt="n")
axis(1,labels=c("-3","-2","-1","0","1","2","3"),at=c(-3,-2,-1,0,1,2,3))
axis(2,labels=c("0.0","0.2","0.4"),at=c(0,.2,.4))
text(1.65,-.04,"CV=1.645",cex=1.0)
mtext(side=1,cex=1.0,line=3,"Distribution of the Test Statistic: T")
mtext(side=2,cex=1.0,line=2,"Density")
lines(ruler[ ruler > 1.645],dnorm(ruler[ ruler > 1.645],0,1),type="h")
segments(2,.01,2.4,.16)
text(-2.25,.35,cex=1,"Distribution Under H(0):")
text(-1.2,.35,"q",font=13,cex=1)
text(-1.0,.35,"= 0",cex=1)
text(2,.18,"a",font=13,cex=1)
text(2.36,.18,"= 0.05",cex=1)
abline(0,0)
segments(1.645,-.07,1.645,-.17)
arrows(1.645,-.10,3,-.10)
arrows(1.645,-.10,-3,-.10)
segments(1.645,-.07,1.645,-.1)
text(2.43,-.17,"D  , Reject H(0)")
text(2.05,-.19,"1",cex=0.9)
text(.2,-.17,"D  , Not Reject H(0)")
text(-0.35,-.19,"0",cex=0.9)
text(3.15,-.12,"S",cex=1.0)
text(3.23,-.13,"1",cex=0.9)
text(-3.2,-.12,"S",cex=1.0)
text(-3.10,-.13,"0",cex=0.9)

dev.off()
ps.options(height=-1,width=-1)

# FIGURE 1 SHOWING BETA CHANGES FOR DIFFERENT SAMPLE SIZES

postscript("Article.Hypo/hypo.fig1.ps")
par(oma=c(0,0,0,0),mfrow=c(2,1),mar=c(5,5,2,2))
ruler <- seq(-3,6,length=500)
x.norm1 <- dnorm(ruler,0,1)
x.norm2 <- dnorm(ruler,3,1)
x.norm3 <- dnorm(ruler,0,sqrt(.75))
x.norm4 <- dnorm(ruler,3,sqrt(.75))

plot(ruler,x.norm1,type="l",ylim=c(0,.55),xlab="Distributions of Means, n = 9",ylab="Density",xaxt="n")
axis(1,labels=c("-3","-2","-1"," ","1","2"," ","4","5","6"),at=c(-3,-2,-1,0,1,2,3,4,5,6))
axis(1,labels="Ho:",at=-0.22,ticks=F)
text(0.14,-.115,"m=0",font=13)
axis(1,labels="True:",at=2.78,ticks=F)
text(3.24,-.115,"m=3",font=13)
lines(ruler,x.norm2)
lines(ruler,rep(0,length(ruler)))
lines(ruler[ ruler < 1.645],dnorm(ruler[ ruler < 1.645],3,1),type="h")
text(-1,.4,"n(0,1)")
text(4,.4,"n(3,1)")
text(1.45,-.05,"CV=1.645",cex=.8)
segments(1.8,0.02,3,.2)
text(3,.23,cex=1,"a = 0.05",font=13)
segments(1.4,0.02,.5,.2)
text(.3,.23,cex=1,"b = 0.088",font=13)

plot(ruler,x.norm4,type="l",ylim=c(0,.55),xlab="Distributions of Means, n = 12",ylab="Density",xaxt="n")
axis(1,labels=c("-3","-2","-1"," ","1","2"," ","4","5","6"),at=c(-3,-2,-1,0,1,2,3,4,5,6))
axis(1,labels="Ho:",at=-0.22,ticks=F)
text(0.14,-.115,"m=0",font=13)
axis(1,labels="True:",at=2.78,ticks=F)
text(3.24,-.115,"m=3",font=13)
lines(ruler,x.norm3)
lines(ruler,rep(0,length(ruler)))
lines(ruler[ ruler < 1.645*sqrt(0.75)],dnorm(ruler[ ruler < 1.645*sqrt(0.75)],3,sqrt(.75)),type="h")
segments(1.645*sqrt(0.75),0,1.645*sqrt(0.75),dnorm(1.645*sqrt(0.75),0,sqrt(.75)))
text(-1,.5,"n(0,0.866)")
text(4,.5,"n(3,0.866)")
text(1.5,-.05,"CV=1.425",cex=.8)
segments(1.6,0.02,3,.2)
text(3,.23,cex=1,"a = 0.05",font=13)
segments(1.2,0.02,.5,.2)
text(.3,.23,cex=1,"b = 0.034",font=13)
dev.off()

# FIGURE 2 SHOWING BETA AND POWER

x.norm5 <- dnorm(ruler,1,1)
ps.options(height=5,width=10)
postscript("Article.Hypo/hypo.fig2.ps")
par(mfrow=c(1,1),cex=1,oma=c(2,2,1,1))
plot(ruler,x.norm1,type="l",ylim=c(0,.41),xlim=c(-3,4),xlab="",ylab="",xaxt="n")
axis(1,labels=c("-3","-2","-1","0"," ","2","3","4"),at=c(-3,-2,-1,0,1,2,3,4))
axis(1,labels="True:",at=0.78,ticks=F)
text(1.20,-.089,"m=1",font=13)
text(1.65,-.05,"CV=1.645",cex=.8)
mtext(side=1,cex=1.0,line=3,"Distributions of Means")
mtext(side=2,cex=1.0,line=2,"Density")
lines(ruler,x.norm5)
lines(ruler,rep(0,length(ruler)))
segments(qnorm(.95,0,1),0,qnorm(.95,0,1),dnorm(qnorm(.95,0,1),1,1))
text(-1.25,.35,cex=1,"n(0,1)")
text(2.25,.35,cex=1,"n(1,1)")
segments(2.5,0.1,3,0.2)
text(3,.23,cex=1,"p=0.26")
lines(ruler[ ruler > 1.645],dnorm(ruler[ ruler > 1.645],0,1),type="h")
segments(2,.01,.9,.07)
text(-.06,.073,"a",font=13,cex=1)
text(.30,.073,"= 0.05",cex=1)
dev.off()
ps.options(height=-1,width=-1)

# FIGURE 3 FOR FIRST SECTION IN RECOMMENDATIONS: CORRECTING MISINTERPRETATIONS

ps.options(height=-1,width=-1)
postscript("Article.Hypo/hypo.fig3.ps")
par(oma=c(0,0,0,0),mfrow=c(2,1),mar=c(5,5,2,2))
ruler <- seq(-3,6,length=500)
n <- 15
x.norm1 <- dnorm(ruler,0,1)
x.norm2 <- dnorm(ruler,3,1)
x.norm3 <- dnorm(ruler,0,sqrt(9/n))
x.norm4 <- dnorm(ruler,3,sqrt(9/n))

plot(ruler,x.norm4,type="l",ylim=c(0,.55),xlab="Distributions of Means, n = 15",ylab="Density",xaxt="n")
axis(1,labels=c("-3","-2","-1"," ","1","2"," ","4","5","6"),at=c(-3,-2,-1,0,1,2,3,4,5,6))
axis(1,labels="Ho:",at=-0.22,ticks=F)
text(0.14,-.115,"m=0",font=13)
axis(1,labels="True:",at=2.78,ticks=F)
text(3.24,-.115,"m=3",font=13)
lines(ruler,x.norm3)
lines(ruler,rep(0,length(ruler)))
lines(ruler[ ruler < qnorm(0.99,0,sqrt(9/n))],dnorm(ruler[ ruler < qnorm(0.99,0,sqrt(9/n))],3,sqrt(9/n)),type="h")
#segments(1.645*sqrt(9/n),0,1.645*sqrt(9/n),dnorm(1.645*sqrt(9/n),0,sqrt(9/n)))
text(-1,.5,"n(0,0.775)")
text(4,.5,"n(3,0.775)")
text(1.5,-.05,"CV=1.802",cex=.8)
segments(1.2,0.02,0,.2)
text(0,.23,cex=1,"b = 0.061",font=13)
segments(1.9,0.008,3,.2)
text(3,.23,cex=1,"a = 0.01",font=13)

plot(ruler,x.norm1,type="l",ylim=c(0,.55),xlab="Distributions of Means, n = 9",ylab="Density",xaxt="n")
axis(1,labels=c("-3","-2","-1"," ","1","2"," ","4","5","6"),at=c(-3,-2,-1,0,1,2,3,4,5,6))
axis(1,labels="Ho:",at=-0.22,ticks=F)
text(0.14,-.115,"m=0",font=13)
axis(1,labels="True:",at=2.78,ticks=F)
text(3.24,-.115,"m=3",font=13)
lines(ruler,x.norm2)
lines(ruler,rep(0,length(ruler)))
lines(ruler[ ruler < 1.454],dnorm(ruler[ ruler < 1.454],3,1),type="h")
#segments(1.454,0,0.774,dnorm(1.454,0,1))
text(-1,.4,"n(0,1)")
text(4,.4,"n(3,1)")
text(1.5,-.05,"CV=1.454",cex=.8)
segments(.8,0.02,0,.2)
text(0,.23,cex=1,"b = 0.061",font=13)
segments(1.7,0.02,3,.2)
text(3,.23,cex=1,"a = 0.073",font=13)
dev.off()

