Una vez me topé con un tipo de trama de datos categóricos (es decir, tablas de contingencia) en Internet, lo que realmente me gustó, pero nunca lo volví a encontrar, y ni siquiera sé cómo se llama. Era esencialmente como un diagrama de tamiz, en el que las alturas de fila y los anchos de columna se escalaban en relación con las probabilidades marginales. Por lo tanto, cada cuadro se ajustó a la frecuencia relativa esperada bajo independencia. Sin embargo, se diferenciaba de un diagrama de tamiz en que, en lugar de trazar el sombreado cruzado dentro de cada cuadro, trazaba un punto (como en un diagrama de dispersión) en una ubicación elegida al azar de un uniforme bivariado para cada observación. De esta manera, la densidad de los puntos refleja qué tan bien los conteos observados coinciden con los conteos esperados. Es decir, si la densidad fuera similar en cada cuadro, el modelo nulo es razonable, ) podría no ser muy probable bajo el modelo nulo. Debido a que los puntos se trazan en lugar de sombrear, existe una correspondencia simple e intuitiva entre el elemento trazado y el recuento observado, lo cual no es necesariamente cierto para los gráficos de tamiz (ver más abajo). Además, la colocación aleatoria de los puntos le da al argumento una sensación 'orgánica'. Además, el color podría usarse para resaltar cuadros / celdas que difieren fuertemente del modelo nulo, y una matriz de trazado podría usarse para examinar las relaciones de pares entre muchas variables diferentes, de modo que pueda incorporar las ventajas de los trazados similares.
- ¿Alguien sabe cómo se llama esta trama?
- ¿Hay un paquete / función que haga esto fácilmente en R u otro software (por ejemplo, Mondrian)? No puedo encontrar nada igual en vcd . Por supuesto, podría estar codificado desde cero, pero eso sería un dolor.
Aquí hay un ejemplo simple de una gráfica de tamiz, observe que es fácil ver cómo los recuentos esperados para las diferentes categorías deberían desarrollarse bajo el modelo nulo, pero es difícil conciliar el sombreado con los números reales, produciendo una gráfica que no es bastante tan fácil de leer y estéticamente horrible:
B ~B
A 38 4
~A 3 19
Para lo que vale, un diagrama de mosaico tiene una especie de problema opuesto: aunque es más fácil ver qué celdas tienen 'demasiados' o 'muy pocos' recuentos (en relación con el modelo nulo), es más difícil reconocer cuáles son las relaciones entre los recuentos esperados habrían sido. Específicamente, los anchos de columna se escalan en relación con la probabilidad marginal, pero las alturas de las filas no, lo que hace que esa información sea casi imposible de extraer.
y ahora para algo completamente diferente...
- ¿Alguien sabe de dónde viene la convención de usar azul para 'demasiados' y rojo para 'muy pocos'? Esto siempre ha sido contradictorio para mí. Me parece que la densidad excepcionalmente alta (o demasiadas observaciones) va con calor , y la baja densidad va con frío , y que (al menos en la iluminación del escenario) los rojos son cálidos y los azules son fríos .
Actualización: si no recuerdo mal, la trama que vi estaba en el pdf de un capítulo (introducción o capítulo 1) de un libro que se puso a disposición gratuitamente en línea como un avance de marketing. Aquí hay una versión aproximada de la idea que codifiqué desde cero:
incluso con esta versión cruda, creo que es más fácil de leer que la trama del tamiz, y de alguna manera más fácil que la trama del mosaico (por ejemplo, es más fácil reconocer cuáles son las relaciones entre las frecuencias celulares estaría bajo independencia). Sería bueno tener una función que: a. haría esto automáticamente con cualquier tabla de contingencia, b. podría usarse como un bloque de construcción de una matriz de parcela, y c. tendría las bonitas características que vienen con las parcelas anteriores (como la leyenda de residuos estandarizados en la trama de mosaico).
shading.points()
para hacer lo que quiera, dentro del marco de strucplot que se citó anteriormente y está disponible como una viñeta en el vcd
paquete.
R
funciónassocplot
se acerca a lo que quieres decir? Si no, apuesto a que unR
programador podría modificar eso omosaicplot
hacer lo que quieras.