5 votos

¿Cómo visualizar la restricción de parámetros iterativos?

He llevado a cabo un análisis en el que voy a empezar con un conjunto de informado antes de parámetros de las distribuciones, y luego conducta secuencial de análisis, que limitan las distribuciones de datos.

Actualmente estoy utilizando la densidad de las parcelas para visualizar estos resultados, pero me pregunto cómo puede la mayoría de transmitir con eficacia el proceso de restricción de parámetro a un no-bayesiano de la audiencia.

Preguntas

Es allí una manera más eficaz para visualizar la secuencia de restricción de la incertidumbre de los parámetros?

Específicamente:

  • es allí una manera a la que me indican la progresión dentro de la parcela?
  • un enfoque alternativo, como un boxplot, ser más eficaz en la comunicación de los cambios de rango y de tendencia central?
  • serviría para compensar la densidad=0 línea para que las líneas no se superponen?
  • sería efectiva para el uso de los minigráficos, por ejemplo, con el IC del 95% y las medianas se indica por un punto y un valor?
  • es apropiado para excluir el eje de la densidad de escala, puesto que el área = 1?

He incluido dos parámetros aquí, a pesar de que en realidad estar conspirando entre seis y quince.

Ejemplos

Aquí están algunos datos de ejemplo:

n = 10000; set.seed(0)
prior       <- data.frame(theta1 = rnorm(n, 10, 3),
                          theta2 = rnorm(n, 20, 1.5))
posterior1  <- data.frame(theta1 = rnorm(n, 11, 0.5),
                          theta2 = rnorm(n, 22, 1))
posterior2  <- data.frame(theta1 = rnorm(n, 10.5, 0.3),
                          theta2 = rnorm(n, 23, 0.8))

Mi enfoque actual es a lo largo de las líneas de trazado de las densidades cada vez más gris oscuro a negro:

for(i in 1:2){
 plot(density(posterior2[,i]), main = colnames(prior)[i], 
      xlim = c(0,20*i), xlab = '', ylab = '', col = 'red)
 lines(density(posterior1[,i]), col = 'darkgrey')
 lines(density(prior[,i]), col = 'grey')
}

Estas cifras son, desde el código de ejemplo de arriba:

enter image description here

He aquí algunos de los datos reales, con el eje de las x escala para centrarse en posteriores en lugar de los priores, pero a esta escala, los priores, a pesar de ser informados, de aspecto bastante plana. (Estas cifras también ponen de manifiesto que las posteriores son de mcmc cadenas en lugar de estándar densidades como en el ejemplo anterior).

enter image description here

7voto

bavajee Puntos 141

Personalmente, me gusta el facet_grid () de ggplot para mostrar cómo cambian los elementos en diferentes experimentos, especialmente si hay una progresión visualmente notable. Aquí hay un ejemplo usando algunos de tus números:

 library(ggplot2)    
n = 10000; set.seed(0)
x <- data.frame(theta1 = rnorm(n, 10, 3),
    theta2 = rnorm(n, 20, 1.5),
    theta3 = rnorm(n, 11, 0.5),
    theta4 = rnorm(n, 22, 1),
    theta5 = rnorm(n, 10.5, 0.3),
    theta6 = rnorm(n, 23, 0.8))


x <- melt(x)

x$plots <- c(rep(1,20000),rep(2,20000),rep(3,20000))
ggplot(x, aes(value, fill=variable)) + geom_density() + facet_grid(~plots)
`# use fill or colour, at your discretion`
 

5voto

Hertanto Lie Puntos 965

Una opción sería utilizar el color para mostrar la progresión, específicamente, destacando el resultado final en rojo inspirado por los minigráficos, incluyendo los de la p. 51 de la Bella Evidencia.

Tufte del minigráficos:

enter image description here

La traducción como una distribución de probabilidad:

enter image description here

Tufte podría sugerir la reducción de la altura para hacer la parte posterior de los ángulos de enfoque de 45 grados.

1voto

bavajee Puntos 141

Otra posibilidad es animar los gráficos construyendo uno encima del otro. Sin embargo, esto es realmente solo para mierdas y risitas, no estoy seguro de cómo volaría para una gran multitud de estadísticas o en el papel ...

 library(ggplot2)
library(animation)
n = 10000; set.seed(0)
x <- data.frame(theta1 = rnorm(n, 10, 3),
    theta2 = rnorm(n, 20, 1.5),
    theta3 = rnorm(n, 11, 0.5),
    theta4 = rnorm(n, 22, 1),
    theta5 = rnorm(n, 10.5, 0.3),
    theta6 = rnorm(n, 23, 0.8))


x <- melt(x)
plots <- list()
x$plots <- c(rep(1,20000),rep(2,20000),rep(3,20000))
plots$p1 <- ggplot(droplevels(subset(x, variable == "theta1")), aes(value, color=variable)) + geom_density() + scale_x_continuous(limits=c(0,30)) + scale_y_continuous(limits=c(0,1))
plots$p2 <- ggplot(droplevels(subset(x, variable == "theta1" | variable == "theta2")), aes(value, color=variable)) + geom_density() + scale_x_continuous(limits=c(0,30)) + scale_y_continuous(limits=c(0,1))
plots$p3 <- ggplot(droplevels(subset(x, variable == "theta1" | variable == "theta2" | variable == "theta3")), aes(value, color=variable)) + geom_density() + scale_x_continuous(limits=c(0,30)) + scale_y_continuous(limits=c(0,1))
plots$p4 <- ggplot(droplevels(subset(x, variable == "theta1" | variable == "theta2" | variable == "theta3" | variable == "theta4")), aes(value, color=variable)) + geom_density() + scale_x_continuous(limits=c(0,30)) + scale_y_continuous(limits=c(0,1))
saveGIF(lapply(plots, print),clean=TRUE)
 

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X