Es fácil encontrar en la red algunos tutoriales para realizar en Excel diagramas de caja y bigotes (que de ahora en adelante llamaré simplemente diagramas de caja o boxplot).
Sin embargo, la gran mayoría de los tutoriales que se encuentran, tanto en inglés como en español, explican como hacer un diagrama de caja usando los máximos y los mínimos. No he encontrado ninguno que explique cómo realizar un diagráma de caja que se base en el rango intercuartílico y que además explique como trazar los datos atípicos.
Por ello, he estado trabajando en el código para crear en Excel un diagrama de caja con todas las de la ley. Espero terminar de depurar pronto y subirlo como un complemento, sin restricciones para consultar o modificar el código y de uso gratuito (al parecer, todas las utilidades que se encuentran en la red para graficar Boxplots de manera profesional tiene costo. Quizás el más popular sea el PTS Box and Whisker Chart Utility de Jon Peltier).
Para entender los parametros predeterminados que he puesto en el formulario, es necesario entender cómo se grafica un diagrama de caja:
- La caja cubre el 50% de los datos, siendo su parte superior el cuartil 1 (Q1) y la parte inferior el cuartil 3 (Q3).
- La caja presenta un línea en la mitad que corresponde al cuartil 2 o mediana y permite identificar facilmente si existe sesgo en los datos.
- Los bigotes (whiskers) muestran los valores máximos y mínimos, a menos que hayan datos atípicos, que son aquellos que están más allá de 1.5 veces el rango intercualtílico (Q3 - Q1).
- En caso de existir atípicos, los bigotes corresponder al dato más cercano a 1.5 veces el rango intercuartílico y los datos atípicos se presentan como puntos más allá de los bigotes.
- Se puede graficar la media como un diamante en la caja.
He contrastado el resultado producido con Excel por el producido con R (http://www.r-project.org/). El siguiente es el gráfico arrojado por R y el arrojado por Excel (usando el motor gráfico de Excel 2003).
Al parecer, el resultad obtenido con el código en Excel es bastante preciso. Sin embargo, antes de afirmar que el código funciona correctamente, agradezco a quien pueda descargar el archivo y hacer algunas pruebas con él, para identificar errores y publicarlos en los comentarios. Yo continuaré en la tarea de depurar el código para dejar el complemento listo para usar.
Gracias a todos los que participaron en la sección de comentarios. He publicado una nueva entrada con la última versión en la que se da solución (espero) a los errores reportados: Diagrama de caja y bigotes con Excel II .



Que bueno, gracias por compartir tus conocimientos,
ResponderSuprimirHola, me he descargado el archivo, que tiene muy buena pinta, le he dado al botón y me ha salido un mensaje de Visual Basic de Error de compilación en
ResponderSuprimir---------------------------
Microsoft Visual Basic
---------------------------
Error de compilación:
No se puede encontrar el proyecto o la biblioteca
y en color azul esta linea del código:
ReDim arrdatos(1 To lngVariables) As Variant
Y antes, en amarillo:
Public Sub CrearBoxPlot(ByRef Datos As Excel.Range, _
ByVal Encabezados As Boolean, _
ByVal FactorRIC As Double, _
ByVal Atipicos As Boolean, _
ByVal Mediana As Boolean, _
ByVal Media As Boolean)
Hola Mauricio, enhorabuena por tu Blog (se aprecia mucho trabajo en él). Eres generoso con tu conocimiento....
ResponderSuprimirBueno te lanzo una pregunta que me vuelve loco hace meses..(seguramente simple para tí).
Tengo que generar una fórmula en excel, pero quiero utilizar como parte del argumento el contenido de otra celda (texto). De forma simple:
celda A1: "B"
Celda A2: 5
Celda A3: =CONCATENAR(A1;A2) - es decir me aparece B5 en esta celda
Celda A4: quiero que me aparezca el contenido de la celda B5, que es el dato de referencia de la celda que busco para mostrarla en A4.
En realidad la fórmula que voy a utilizar es más compleja, pero mi problema es el uso de texto contenido en una celda, como argumento para una función de otra celda. Por favor mándame respuesta al e-mail o para avisarme de la publicación en el blog (estoy suscrito a tu RSS), jlbosch.c@gmail.com MIL GRACIAS.
@José Luis,
ResponderSuprimirsi te entiendo bien, me parece que puedes usar indirecto, algo como =indirecto(A1&a2). Revisa la ayuda sobre dicha función.
También puedes revisar este tema en la página de Ayuda Excel, un buen lugar para plantear tus preguntas: Como transformar un texto en una formula
@Anónimo:
ResponderSuprimir"...Hola, me he descargado el archivo, que tiene muy buena pinta, le he dado al botón y me ha salido un mensaje de Visual Basic de Error de compilación en..."
Gracias por visitar el blog y probar el archivo.
He tomado nota del error que reportas. Últimamente no he tenido mucho tiempo así que el proyecto ha estado detenido, pero espero retomarlo pronto para solventar el error que mencionas y otros que he ido encontrando.
@anonimo y @mauricio
ResponderSuprimirEl error lo da porque el proyecto tiene referenciada una DLL que pertenece a otra version mas avanzada de Office. REFEDIT.DLL.
Si la descargais y registrais el proyecto ya no da ese error.
Hola Tonifdz...
ResponderSuprimirNo entiendo cuando dices que hay que registrar el proyecto, desafortunadamente no soy tan diestro como quisiera, me explicas por favor, te lo agradezco de antemano.
yO TAMPOCO ENTIENDO LO DE REGITSRAR?
ResponderSuprimirnOS PUEDES EXPLICAR COMO HACERLO?
eSPERAMOS TU RESPUESTA
Muchas gracias por el aporte!!!
ResponderSuprimirAparece un error "1004" de depuración al tratar de generar el diagrama de cajas y bigotes con una sola serie de datos, es decir al tomar solamente una columna. Espero mi estimado que tome en cuenta esto. Nuevamente gracias por el aporte.
ResponderSuprimirHola,
ResponderSuprimirlamento volver hasta ahora. No he tenido mucho tiempo últimamente y me he tenido que dejar mis proyectos de Excel a un lado.
Con respecto al error mencionado inicialmente:
**********************************************
---------------------------
Microsoft Visual Basic
---------------------------
Error de compilación:
No se puede encontrar el proyecto o la biblioteca
y en color azul esta linea del código:
ReDim arrdatos(1 To lngVariables) As Variant
Y antes, en amarillo:
Public Sub CrearBoxPlot(ByRef Datos As Excel.Range, _
ByVal Encabezados As Boolean, _
ByVal FactorRIC As Double, _
ByVal Atipicos As Boolean, _
ByVal Mediana As Boolean, _
ByVal Media As Boolean)
**********************************************
Prueba entrando a Herramientas > Referencias en el editor de VBA y desmarca la que diga "FALTA:" o "MISSING".
Con respecto al error que se produce al seleccionar una sóla variable, estoy trabajando en ello, así como en la manera de evitar que se presente el primer error.
Espero pronto poder subir una versión más depurada y agradezco la colaboración de quines han participado.
Hola,
ResponderSuprimirhe publicado una nueva versión del Diagrama de Caja y Bigotes en la que me parece que se solucionan los problemas planteados acá.
Diagrama de caja y bigotes (box and whisker) en Excel II
Gracias a todos por sus aportes.
Hola, realmente me interesa pero lo descargo y al intentar usarlo me dice que las macros han sido deshabilitadas :S
ResponderSuprimir