Trazar barras de intervalo de confianza a partir de estadísticas de resumen
On febrero 14, 2021 by adminUn poco como un diagrama de caja. Me refiero no necesariamente al intervalo de confianza superior estándar, el intervalo de confianza inferior, la media y los diagramas de caja que muestran el rango de datos, pero me refiero a un diagrama de caja con solo los tres datos: el intervalo de confianza del 95% y la media .
Esta es una captura de pantalla de un artículo de revista que tenía exactamente lo que quería:
También me gustaría saber cómo usaría el software que menciona el respondedor para crear dicho gráfico.
Comentarios
- Lo que usted llama » los diagramas de caja estándar de intervalo de confianza superior, intervalo de confianza inferior, media y rango de datos » no son diagramas de caja estándar en absoluto. El diagrama de caja estándar muestra la mediana, los cuartiles, el mínimo y el máximo y, a menudo, otros detalles.
- @Nick Derecha: pero ¿cómo se llaman estos gráficos? (No ‘ no estoy seguro).
- Este tipo de gráfico es estándar (‘ no es un cuadro plot, sin embargo) y puede ser producido por todos los paquetes estadísticos principales: Stata, SAS, R , MATLAB. Supongo que también podrías hacerlo con Excel.
- @COOLSerdash ¡genial! ¿Podría escribir una respuesta para MATLAB ya que ya tengo MATLAB?
- Yo ‘ llamaría a estos gráficos de intervalo de confianza, pero no todos los gráficos realmente necesitan un nombre distinto . Cada trama merece una leyenda de texto, sin embargo ….
Respuesta
En MATLAB, es posible que desee prueba la función barra de error : http://www.mathworks.de/de/help/matlab/ref/errorbar.html
Alternativamente, puede hacerlo de la manera tonta y manual. Por ejemplo, dada una matriz de puntos de datos «a», puede calcular sus medias utilizando la función m = mean (a), calcular sus IC (según el IC que necesite) y graficar los resultados a mano.
Demostración si ya conoce la media y el IC, asumiendo que los IC están en una matriz IC (primera y segunda columna) y las medias están en una matriz a :
plot(1:length(CI),a,"o","markersize", 10) % plot the mean hold on; plot(1:length(CI),CI(1,:),"v","markersize", 6) % plot lower CI boundary hold on; plot(1:length(CI),CI(2,:),"^","markersize", 6) % plot upper CI boundary hold on; for I = 1:length(CI) % connect upper and lower bound with a line line([I I],[CI(1,I) CI(2,I)]) hold on; end; axis([0 length(CI)+1 min(CI(1,:))*0.75 max(CI(2,:))*1.25]) % scale axis
Demostración en el caso de que conozca medidas individuales, para un experimento de medidas repetidas, más de 3 condiciones, una condición por columna, un sujeto por línea en la matriz a, no faltan muestras, IC del 95% según MATLAB «s ttest () :
[H,P,CI] = ttest(a); % calculate 95% CIs for every column in matrix a % CIs are now in the matrix CI! plot(1:length(CI),[mean(a)],"o","markersize", 10) % plot the mean hold on; plot(1:length(CI),CI(1,:),"v","markersize", 6) % plot lower CI boundary hold on; plot(1:length(CI),CI(2,:),"^","markersize", 6) % plot upper CI boundary hold on; for I = 1:length(CI) % connect upper and lower bound with a line line([I I],[CI(1,I) CI(2,I)]) hold on; end; axis([0 length(CI)+1 min(CI(1,:))*0.75 max(CI(2,:))*1.25]) % scale axis
Comentarios
- Leí mi última edición, ‘ lo siento, pero algunas personas que me molestan muchísimo, han eliminado el hecho de que solo conozco 95% CI y significa que no hay datos adicionales.
- @BrentonHorne, ¿el vínculo a la función de la barra de errores no ayudó? Parece ser exactamente lo que desea.
- Como dijo Peter, use errorbar () luego. O use el guión que escribí, pero ignore la primera línea con la prueba ttest y simplemente aliméntela con CI directamente. Yo ‘ lo editaré en, supongo.
- @BrentonHorne Para ser justos, nunca discutiste el punto extensamente o ni siquiera lo mencionaste en el cuerpo del pregunta. Estaba implícito en el título, pero este título también mencionaba por error diagramas de caja, que es el problema que la edición trató de solucionar. Es ‘ desafortunado que la palabra «sólo» desaparezca en el proceso, pero nadie la haya editado a propósito una gran parte de su pregunta. Además, la respuesta contenía una solución y el resto del texto podría ser interesante para otros lectores.
- Ejecuté el código, salió bien, el problema es que me gustaría si hubiera algún medio para que podría unir el CI superior y el CI inferior con una línea como en la captura de pantalla de mi pregunta.
Respuesta
Mira si esto te ayuda. Solución R:
par(mfrow=c(2,1)) # to stack the charts on column #Dataset 1 upperlimit = c(10,12,8,14) lowerlimit = c(5,9,4,7) mean = c(8,10,6,12) df = data.frame(cbind(upperlimit,lowerlimit,mean)) plot(df$mean, ylim = c(0,30), xlim = c(1,4)) install.packages("plotrix") require(plotrix) plotCI(df$mean,y=NULL, uiw=df$upperlimit-df$mean, liw=df$mean-df$lowerlimit, err="y", pch=20, slty=3, scol = "black", add=TRUE) #Dataset 2 upperlimit_2 = upperlimit*1.5 lowerlimit_2 = lowerlimit*0.8 mean_2 = upperlimit_2-lowerlimit_2 df_2 = data.frame(cbind(upperlimit_2,lowerlimit_2,mean_2)) plot(df$mean_2, ylim = c(0,30), xlim = c(1,4)) plotCI(df_2$mean_2,y=NULL, uiw=df_2$upperlimit_2-df_2$mean_2, liw=df_2$mean_2- df_2$lowerlimit_2, err="y", pch=20, slty=3, scol = "black", add=TRUE) rm(upperlimit,lowerlimit,mean,df,upperlimit_2,lowerlimit_2,mean_2,df_2) #remove the objects stored from workspace par(mfrow=c(1,1)) # go back to default (one graph at a time)
Comentarios
- y ¿cómo ejecuto dicho código? Soy totalmente nuevo en R, así que ‘ tendrás que guiarme porque no tengo ni idea.
- Puedo ayudarte a intentarlo, pero primero debe seguir dos pasos: i) instalar R Studio en su PC, ii) proporcionar un ejemplo reproducible: stackoverflow.com/questions/5963269/…
- @AndreSilva, creo que hiciste un esfuerzo adicional allí. ¡Gran apoyo y tutoría!
- Esto es lo que obtuve por ejecutar su código i.stack.imgur.com/yrZaJ.png
- @BrentonHome. Extraño. Solo lo probé y funcionó. Las barras de » error » no aparecen. ¿Instaló el paquete
plotrix
? Agregué una línea de comando del programa en el código que instala el paquete plotrix. Inténtelo de nuevo y avísele.
Respuesta
Este tipo de gráfico en R usando ggplot2, aunque es posible que tenga que manipular un poco el tamaño de fuente del eje:
library(ggplot2) data.estimates = data.frame( var = c("1", "2", "3", "4", "5", "6", "7", "8", "9"), par = c(1.12210,0.18489,1.22011,1.027446235,0.43521,0.53464,1.93316,-0.43806,-0.12029), se = c(0.42569,0.32162,0.58351,0.771608551,0.24803,0.65372,0.92717,0.45939,0.51558)) data.estimates$idr <- exp(data.estimates$par) data.estimates$upper <- exp(data.estimates$par + (1.96*data.estimates$se)) data.estimates$lower <- exp(data.estimates$par - (1.96*data.estimates$se)) p2 <- ggplot(data.estimates, aes(var,idr, size=10)) + theme_bw(base_size=10) p2 + geom_point() +geom_errorbar(aes(x = var, ymin = lower, ymax = upper, size=2), width = 0.2) + scale_y_log10(limits=c(0.1, 50), breaks=c(0.1, 0.5, 1, 5, 10, 25, 50)) + xlab("Site") + ylab("RR")
Respuesta
En Stata, use serrbar
o ciplot
(SSC) o eclplot
(Stata Journal, SSC).
Respuesta
Suponiendo que tiene acceso a los datos originales, puede hacer esto en R con la función lineplot.CI en sciplot biblioteca
Ejemplo con el conjunto de datos mtcars:
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars)
Tenga en cuenta que lineplot.CI traza de forma predeterminada las barras SE (se puede cambiar definiendo una nueva función con el argumento ci.fun para trazar intervalos de IC del 95%)
lineplot.CI(x.factor=gear, response=mpg, group=vs, data=mtcars, ci.fun=function(x) c(mean(x)-1.96*se(x), mean(x)+1.96*se(x)))
Respuesta
Esto se puede hacer en R con points()
(o plot(..., type="p")
) y segments()
. También puede haber funciones de R diseñadas para crear los elementos de configuración para usted, pero es posible que requieran los datos originales. Los múltiples paneles de la misma figura creados con par(mfrow=c(4,1))
. Si no » Si no conoces R, esto sería difícil de hacer fácilmente (como en, tendrías que aprender un poco más de R o conseguir a alguien que te ayude con tu conjunto de datos específico).
Respuesta
GraphPad Prism puede hacer fácilmente este tipo de gráfico, trazando barras de error a partir de los valores de error que ingrese. Cree una tabla agrupada formateada para la entrada de mean, – error y + error.
Comentarios
- ¿Es posible obtener una copia gratuita que no sea ‘ t solo ¿Versión de prueba de 30 días?
- @BrentonHorne: No. No es software gratuito.
Deja una respuesta