Para hacer este cuadro me generaron muestras aleatorias de diferentes tamaños, desde una distribución normal con media=0 y dt=1. Los intervalos de confianza fueron calculados usando alfa atajos que van desde .001 a .999 (línea roja) con la t.función test (), el perfil de la probabilidad fue calculado utilizando el siguiente código que encontré en notas de la conferencia en línea (no puedo encontrar el enlace en el momento de Edición:Encontrado), esto se muestra por las líneas azules. Líneas verdes muestran la densidad normalizada mediante la R de la densidad() la función y los datos se muestran por el boxplots en la parte inferior de cada cuadro. En el derecho es una oruga trama del 95% intervalos de confianza (rojo) y 1/20 de max probabilidad de intervalos (azul).
R Código utilizado para el perfil de probabilidad:
#mn=mean(dat)
muVals <- seq(low,high, length = 1000)
likVals <- sapply(muVals,
function(mu){
(sum((dat - mu)^2) /
sum((dat - mn)^2)) ^ (-n/2)
}
)
Mi pregunta concreta es si existe una relación entre estos dos tipos de intervalos y por qué el intervalo de confianza parece ser más conservador para todos los casos, excepto cuando n=3. Comentarios/respuestas acerca de si mis cálculos son válidos (y una mejor manera de hacer esto) y la relación general entre estos dos tipos de intervalos.
R código:
samp.size=c(3,4,5,10,20,1000)
cnt2<-1
ints=matrix(nrow=length(samp.size),ncol=4)
layout(matrix(c(1,2,7,3,4,7,5,6,7),nrow=3,ncol=3, byrow=T))
par(mar=c(5.1,4.1,4.1,4.1))
for(j in samp.size){
#set.seed(200)
dat<-rnorm(j,0,1)
vals<-seq(.001,.999, by=.001)
cis<-matrix(nrow=length(vals),ncol=3)
cnt<-1
for(ci in vals){
x<-t.test(dat,conf.level=ci)$conf.int[1:2]
cis[cnt,]<-cbind(ci,x[1],x[2])
cnt<-cnt+1
}
mn=mean(dat)
n=length(dat)
high<-max(c(dat,cis[970,3]), na.rm=T)
low<-min(c(dat,cis[970,2]), na.rm=T)
#high<-max(abs(c(dat,cis[970,2],cis[970,3])), na.rm=T)
#low<--high
muVals <- seq(low,high, length = 1000)
likVals <- sapply(muVals,
function(mu){
(sum((dat - mu)^2) /
sum((dat - mn)^2)) ^ (-n/2)
}
)
plot(muVals, likVals, type = "l", lwd=3, col="Blue", xlim=c(low,high),
ylim=c(-.1,1), ylab="Likelihood/Alpha", xlab="Values",
main=c(paste("n=",n),
"True Mean=0 True sd=1",
paste("Sample Mean=", round(mn,2), "Sample sd=", round(sd(dat),2)))
)
axis(side=4,at=seq(0,1,length=6),
labels=round(seq(0,max(density(dat)$y),length=6),2))
mtext(4, text="Density", line=2.2,cex=.8)
lines(density(dat)$x,density(dat)$y/max(density(dat)$y), lwd=2, col="Green")
lines(range(muVals[likVals>1/20]), c(1/20,1/20), col="Blue", lwd=4)
lines(cis[,2],1-cis[,1], lwd=3, col="Red")
lines(cis[,3],1-cis[,1], lwd=3, col="Red")
lines(cis[which(round(cis[,1],3)==.95),2:3],rep(.05,2),
lty=3, lwd=4, col="Red")
abline(v=mn, lty=2, lwd=2)
#abline(h=.05, lty=3, lwd=4, col="Red")
abline(h=0, lty=1, lwd=3)
abline(v=0, lty=3, lwd=1)
boxplot(dat,at=-.1,add=T, horizontal=T, boxwex=.1, col="Green")
stripchart(dat,at=-.1,add=T, pch=16, cex=1.1)
legend("topleft", legend=c("Likelihood"," Confidence Interval", "Sample Density"),
col=c("Blue","Red", "Green"), lwd=3,bty="n")
ints[cnt2,]<-cbind(range(muVals[likVals>1/20])[1],range(muVals[likVals>1/20])[2],
cis[which(round(cis[,1],3)==.95),2],cis[which(round(cis[,1],3)==.95),3])
cnt2<-cnt2+1
}
par(mar=c(5.1,4.1,4.1,2.1))
plot(0,0, type="n", ylim=c(1,nrow(ints)+.5), xlim=c(min(ints),max(ints)),
yaxt="n", ylab="Sample Size", xlab="Values")
for(i in 1:nrow(ints)){
segments(ints[i,1],i+.2,ints[i,2],i+.2, lwd=3, col="Blue")
segments(ints[i,3],i+.3,ints[i,4],i+.3, lwd=3, col="Red")
}
axis(side=2, at=seq(1.25,nrow(ints)+.25,by=1), samp.size)