No necesita ser extendido. La prueba original de Mantel, como se presenta en el artículo de Mantel de 1967 , permite matrices asimétricas. Recordemos que esta prueba compara dos n ×n matrices de distancias X y Y .
En este punto, podemos anticipar una modificación de nuestra estadística que simplificará los procedimientos estadísticos que se desarrollarán a continuación. La modificación es eliminar la restricción i < j , y reemplazarla solo por la restricción i ≠ j . Donde Xyo j= Xj i e Yyo j= Yj i , el efecto de la modificación es simplemente duplicar exactamente el valor de la suma. Sin embargo, los procedimientos desarrollados son apropiados incluso cuando las relaciones de distancia no son simétricas, es decir, cuando es posible que Xyo j≠ Xj i y Yyo j≠ Yj i ; un caso particular cubierto es Xyo j= - Xj i, Yyo j= - Yj i ...
(en la sección 4; énfasis agregado).
La simetría parece ser una condición artificial en muchos programas, como el ade4
paquete para R
, que utiliza objetos de una clase "dist" para almacenar y manipular matrices de distancia. Las funciones de manipulación suponen que las distancias son simétricas. Por esta razón, no puede aplicar su mantel.rtest
procedimiento a matrices asimétricas, pero eso es puramente una limitación de software, no una propiedad de la prueba en sí.
La prueba en sí no parece requerir ninguna propiedad de las matrices. Obviamente (en virtud de la referencia explícita a las referencias antisimétricas al final del pasaje anterior) ni siquiera necesita que las entradas en o sean positivas. Simplemente es una prueba de permutación que utiliza alguna medida de correlación de las dos matrices (consideradas como vectores con elementos) como estadística de prueba.Y n 2XYnorte2
En principio podemos enumerar elposibles permutaciones de nuestros datos, calcule [el estadístico de prueba] para cada permutación y obtenga la distribución nula de contra la cual se puede juzgar el valor observado deZ Z Zn !ZZZ
[ ibid. ]
De hecho, Mantel señaló explícitamente que las matrices no tienen que ser matrices de distancia y enfatizó la importancia de esta posibilidad :
Las fórmulas de casos generales serán apropiadas también para casos en los que los e no siguen las regularidades aritméticas y geométricas impuestas en el problema de agrupamiento; por ejemplo , . Es la aplicabilidad del procedimiento general a arbitrarias e que subyace a su extensión a una variedad más amplia de problemas ...Xyo jYyo jXyo k≤ Xyo j+ Xj kXyo jYyo j
(El ejemplo establece la desigualdad del triángulo).
Como ejemplo, ofreció "el estudio de las relaciones interpersonales" en el que "tenemos individuos y 2 medidas diferentes, simétricas o asimétricas , que relacionan a cada individuo con el restante " (énfasis agregado).norten - 1
En un apéndice, Mantel derivó la "varianza permutacional de , sin hacer una suposición más fuerte que la de que los elementos diagonales de las matrices son constantes, potencialmente diferentes de cero.Z= ∑ ∑ Xyo jYyo j
En conclusión, desde el principio, cada uno de los axiomas métricos ha sido explícitamente considerado y rechazado como no esencial para la prueba:
Las "distancias" pueden ser negativas.
Las "distancias" entre un objeto y sí mismo pueden ser distintas de cero.
La desigualdad del triángulo no necesita sostenerse.
Las "distancias" no necesitan ser simétricas.
Terminaré comentando que la estadística propuesta de Mantel, , puede funcionar mal para distancias no simétricas. El reto es encontrar una prueba estadística que efectivamente distingue dos de tales matrices: el uso que en la prueba de permutación en lugar de la suma de los productos.Z= ∑i , jXyo jYyo j
Este es un ejemplo de la prueba en R
. Dadas dos matrices de distancia x
y y
, devuelve una muestra de la distribución de permutación (como un vector de valores de la estadística de prueba). No requiere eso x
ni y
tiene propiedades particulares en absoluto. Solo necesitan tener el mismo tamaño de matriz cuadrada.
mantel <- function(x, y, n.iter=999, stat=function(a,b) sum(a*b)) {
permute <- function(z) {
i <- sample.int(nrow(z), nrow(z))
return (z[i, i])
}
sapply(1:n.iter, function(i) stat(x, permute(y)))
}