¿Cuál es la relación entre la probabilidad de perfil y los intervalos de confianza?


18

Para hacer este gráfico, generé muestras aleatorias de diferente tamaño a partir de una distribución normal con media = 0 y sd = 1. Los intervalos de confianza se calcularon utilizando valores de corte alfa que van desde .001 a .999 (línea roja) con la función t.test (), la probabilidad de perfil se calculó utilizando el código a continuación que encontré en las notas de clase puestas en línea (puedo ' t encuentre el enlace en este momento Editar: Lo encontré ), esto se muestra con las líneas azules. Las líneas verdes muestran la densidad normalizada utilizando la función de densidad R () y los datos se muestran en los diagramas de caja en la parte inferior de cada gráfico. A la derecha hay una gráfica de oruga de los intervalos de confianza del 95% (rojo) y 1/20 de los intervalos de probabilidad máxima (azul).

Código R utilizado para la probabilidad de perfil:

  #mn=mean(dat)
  muVals <- seq(low,high, length = 1000)
  likVals <- sapply(muVals,
                    function(mu){
                      (sum((dat - mu)^2) /
                         sum((dat - mn)^2)) ^ (-n/2)
                    }
  )

ingrese la descripción de la imagen aquí

Mi pregunta específica es si existe una relación conocida 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. También se desean comentarios / respuestas sobre si mis cálculos son válidos (y una mejor manera de hacerlo) y la relación general entre estos dos tipos de intervalos.

Código R:

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)

En tus apuntes, mnes un error tipográfico para mu, y no mean(dat). Como te dije en los comentarios a tu otra pregunta , esto debería quedar claro en las definiciones de la página 23.
Elvis

@ Elvis, no lo creo. mn se define en la página 18 de las notas.
Frasco

Traté de aclarar el concepto de probabilidad de perfil. ¿Puedes comentar un poco más sobre lo que estás haciendo en el código anterior?
Elvis

3
@Elvis Tampoco entiendo. Un intervalo de confianza basado en la probabilidad del perfil debe construirse con la ayuda de los percentiles , que no aparecen en ninguna parte. χ2
Stéphane Laurent

1
@ StéphaneLaurent no estoy seguro el código original está proporcionando intervalos de confianza. Más bien 1/20 intervalos de probabilidad máxima. Creo que el nombre de los intervalos de confianza en mi gráfico son intervalos de confianza "tipo wald" y las líneas rojas en los gráficos son "curvas de confianza" descritas en esta página de Wikipedia
Flask el

Respuestas:


10

No daré una respuesta completa (me cuesta mucho tratar de entender exactamente lo que está haciendo), pero intentaré aclarar cómo se construye la probabilidad de perfil. Puedo completar mi respuesta más tarde.

La probabilidad total de una muestra normal de tamaño es L ( μ , σ 2 ) = ( σ 2 ) - n / 2 exp ( - i ( x i - μ )norte

L(μ,σ2)=(σ2)-norte/ /2Exp(-yo(Xyo-μ)2/ /2σ2).

Si es su parámetro de interés y σ 2 es un parámetro molesto, una solución para hacer inferencia solo en μ es definir la probabilidad de perfil L P ( μ ) = L ( μ , ^ σ 2 ( μ ) ) donde ^ σ 2 ( μ ) es el MLE para μ fijo: ^ σ 2 ( μμσ2μ

LPAG(μ)=L(μ,σ2^(μ))
σ2^(μ)μ
σ2^(μ)=argmaxσ2L(μ,σ2).

Uno verifica que

σ2^(μ)=1nortek(Xk-μ)2.

LPAG(μ)=(1nortek(Xk-μ)2)-norte/ /2Exp(-norte/ /2).

Exp(-norte/ /2)

> data(sleep)
> difference <- sleep$extra[11:20]-sleep$extra[1:10]
> Lp <- function(mu, x) {n <- length(x); mean( (x-mu)**2 )**(-n/2) }
> mu <- seq(0,3, length=501)
> plot(mu, sapply(mu, Lp, x = difference), type="l")

probabilidad de perfil

Enlace con la probabilidad Intentaré resaltar el enlace con la probabilidad con el siguiente gráfico.

Primero defina la probabilidad:

L <- function(mu,s2,x) {n <- length(x); s2**(-n/2)*exp( -sum((x-mu)**2)/2/s2 )}

Luego haz un diagrama de contorno:

sigma <- seq(0.5,4, length=501)
mu <- seq(0,3, length=501)

z <- matrix( nrow=length(mu), ncol=length(sigma))
for(i in 1:length(mu))
  for(j in 1:length(sigma))
    z[i,j] <- L(mu[i], sigma[j], difference)

# shorter version
# z <- outer(mu, sigma, Vectorize(function(a,b) L(a,b,difference)))

contour(mu, sigma, z, levels=c(1e-10,1e-6,2e-5,1e-4,2e-4,4e-4,6e-4,8e-4,1e-3,1.2e-3,1.4e-3))

σ2^(μ)

hats2mu <- sapply(mu, function(mu0) mean( (difference-mu0)**2 ))
lines(mu, hats2mu, col="red", lwd=2)

parcela de contorno de L

Los valores de la probabilidad de perfil son los valores tomados por la probabilidad a lo largo de la parábola roja.

Puede usar la probabilidad de perfil como una probabilidad clásica univariante (vea la respuesta de @Prokofiev). Por ejemplo, el MLEμ^

σ2^(μ)

También puede usar la probabilidad de perfil para crear pruebas de puntaje, por ejemplo.


mu en el código es una secuencia de valores de menor a mayor, la probabilidad en cada uno de estos valores se divide por la probabilidad en la media muestral (mn). Por lo tanto, es una probabilidad normalizada.
Frasco

Creo que esto es lo mismo pero no normalizado. ¿Puede ponerlo en el código R o trazar la función para algunos datos para que podamos comparar?
Frasco

Aquí está. Al principio pensé que mnera un error tipográfico, ahora creo que el código R está todo mal. Lo revisaré mañana, es tarde si vivo.
Elvis

Puede que tengas razón. No entiendo cómo el código logra normalizarlo. Oh, lo entiendo, ¿la "normalización" se está dividiendo entre el máximo?
Elvis

1
Creo que es para que sea fácil ver cuándo la razón de probabilidad es menor que algún umbral (por ejemplo, 1/20 máx.) En alguna hipótesis nula (por ejemplo, cero).
Frasco

7

χk2 . La idea consiste en invertir la prueba de hipótesis obtenida de una estadística de razón de verosimilitud.

0,14795%

Estos son resultados clásicos y, por lo tanto, simplemente proporcionaré algunas referencias al respecto:

http://www.jstor.org/stable/2347496

http://www.stata-journal.com/sjpdf.html?articlenum=st0132

http://www.unc.edu/courses/2010fall/ecol/563/001/docs/lectures/lecture11.htm

http://en.wikipedia.org/wiki/Likelihood-ratio_test

http://en.wikipedia.org/wiki/Likelihood_function#Profile_likelihood

El siguiente código R muestra que, incluso para muestras pequeñas, los intervalos obtenidos con ambos enfoques son similares (estoy reutilizando el ejemplo de Elvis):

Tenga en cuenta que debe usar la probabilidad de perfil normalizada.

data(sleep)
x <- sleep$extra[11:20]-sleep$extra[1:10]
n <- length(x)
Rp <- function(mu) {mean( (x-mean(x))^2 )^(n/2)/mean( (x-mu)^2 )^(n/2) }
Rp(mean(x))

mu <- seq(0,3, length=501)
plot(mu, sapply(mu, Rp), type="l")


Rpt<- function(mu) Rp(mu)-0.147 # Just an instrumental function

# Likelihood-confidence interval of 95% level

c(uniroot(Rpt,c(0.5,1.5))$root,uniroot(Rpt,c(1.51,3))$root)

# t confidence interval

t.test(x,conf.level=0.95)$conf.int

Si usamos un tamaño de muestra más grande, los intervalos de confianza son aún más cercanos:

set.seed(123)
x <- rnorm(100)
n <- length(x)
Rp <- function(mu) {mean( (x-mean(x))^2 )^(n/2)/mean( (x-mu)^2 )^(n/2) }
Rp(mean(x))

mu <- seq(-0.5,0.5, length=501)
plot(mu, sapply(mu, Rp), type="l")


Rpt<- function(mu) Rp(mu)-0.147 # Just an instrumental function

# Likelihood-confidence interval of 95% level

c(uniroot(Rpt,c(-0.4,0))$root,uniroot(Rpt,c(0,0.4))$root)

# t confidence interval

t.test(x,conf.level=0.95)$conf.int

UN PUNTO IMPORTANTE:

Tenga en cuenta que para muestras específicas, los diferentes tipos de intervalos de confianza pueden diferir en términos de su longitud o ubicación, lo que realmente importa es su cobertura. A la larga, todos deberían proporcionar la misma cobertura, independientemente de cuánto difieren para muestras específicas.


@Prokoflev si hay alguna relación simple entre los intervalos de confianza calculados con la función R t.test () y los calculados por el código de función de probabilidad anterior, puede publicarlo. Estoy especialmente interesado en el caso n = 3. Desafortunadamente, tengo poca experiencia en matemáticas, por lo que muchos documentos me conducen por el agujero del conejo buscando los nombres de los símbolos y lo que representan, etc., cuando algunas líneas de código (lo más fácil es R) me lo podrían explicar.
Frasco

@ Matraz ¿Está interesado en obtener intervalos de confianza para los parámetros de una distribución normal o un marco más general?
Prokofiev

@Prokoflev específicamente para la media de una distribución normal como se muestra en mi ejemplo en la pregunta. Me pregunto especialmente por qué los intervalos de confianza son más conservadores, excepto en el caso n = 3.
Frasco

95%

1
Estoy empezando a creer que debería estar multiplicando los intervalos de probabilidad por algunos cuantil de la distribución, ya sea normal o chi-cuadrado para obtener el correspondiente intervalo de confianza ..
Frasco

1

χ2norteormetrounlyozmire

  1. El perfil de probabilidad de registro es aproximadamente cuadrático
  2. Existe una transformación de parámetro que hace que la probabilidad de registro del perfil sea aproximadamente cuadrática.

La cuadrática es importante porque define una distribución normal en escala logarítmica. Cuanto más cuadrático sea, mejor será la aproximación y los IC resultantes '. Su elección del corte 1/20 para los intervalos de probabilidad es equivalente a más de un IC del 95% en el límite asintótico, por lo que los intervalos azules son generalmente más largos que los rojos.

Ahora, hay otro problema con la probabilidad de perfil que necesita un poco de atención. Si tiene muchas variables sobre las que está perfilando, entonces si el número de puntos de datos por dimensión es bajo, la probabilidad de perfil puede ser muy sesgada y optimista. Las probabilidades de perfil marginales, condicionales y modificadas se utilizan para reducir este sesgo.

Entonces, la respuesta a su pregunta es SÍ ... la conexión es la normalidad asintótica de la mayoría de los estimadores de máxima verosimilitud, como se manifiesta en la distribución de chi cuadrado de la razón de verosimilitud.


" Si tiene muchas variables sobre las que está perfilando, entonces si el número de puntos de datos por dimensión es bajo, la probabilidad de perfil puede ser muy sesgada y optimista " ¿Optimista en comparación con qué?
Frasco

@ Frasco Por optimista quiero decir que será demasiado estrecho para proporcionar la probabilidad de cobertura nominal cuando se trate como un intervalo de confianza.

Ya veo, gracias, pero en mi caso específico, ¿es realmente pesimista? Estoy confundido sobre este punto en cuanto a si estamos hablando de los intervalos de probabilidad o intervalos de confianza derivados de las probabilidades.
Frasco

@ Frasco Creo que sus intervalos parecen pesimistas porque está comparando el intervalo de probabilidad 1/20 (probabilidad relativa del 5%) con un IC del 95%. Como lo han dicho otros aquí, realmente querría compararlo con un intervalo de probabilidad relativa del 15% para tener manzanas con manzanas ... al menos asintóticamente. Su intervalo de probabilidad tal como está está considerando más opciones como plausbile.

He detallado el problema real en el que deseo aplicar lo que estoy aprendiendo aquí . Me preocupa que, en el caso de que la distribución de muestreo sea desconocida (pero probablemente no sea normal) y compleja, es posible que sus dos requisitos no se cumplan. Sin embargo, las probabilidades de perfil que calculé parecen ser normales y razonables. ¿Es que la distribución muestral de la media debería distribuirse normalmente?
Frasco
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.