¿Cómo probar la uniformidad en varias dimensiones?

13

La prueba de uniformidad es algo común, sin embargo, me pregunto cuáles son los métodos para hacerlo en una nube de puntos multidimensional.

gui11aume
fuente
Interesante pregunta. ¿Estás considerando entradas independientes?
1
@ Procrastinator Estoy pensando en este punto en este momento. Tratando de averiguar si es posible tener uniformidad sin independencia. Cualquier pista es bienvenida.
gui11aume
44
Sí, es posible tener uniformidad sin independencia. Por ejemplo, la muestra de la unidad -cube mediante la generación de una cuadrícula uniforme de ε -cubes cubriendo R n y compensando su origen de acuerdo con una distribución uniforme en la ε cubo. Retenga los centros de esos cubos ϵ que caen dentro del cubo de la unidad. Si lo desea, submuestreo de ellos al azar. Todos los puntos tienen las mismas posibilidades de ser seleccionados: la distribución es uniforme. El resultado también parece uniforme, pero dado que no hay dos puntos que puedan estar a una distancia ϵ entre sí, obviamente los puntos no son independientes. nϵRnϵϵϵ
whuber

Respuestas:

14

El método estándar utiliza la función K de Ripley o algo derivado de ella, como una función L. Esta es una gráfica que resume el número promedio de vecinos de los puntos en función de la distancia máxima de separación ( ). Para una distribución uniforme en n dimensiones, ese promedio debe comportarse como ρ n : y siempre lo hará para pequeños ρ . Se aleja de dicho comportamiento debido a la agrupación, otras formas de no independencia espacial y efectos de borde (de donde es crucial especificar la región muestreada por los puntos). Debido a esta complicación, que empeora cuando nρnρnρnaumenta: en la mayoría de las aplicaciones se erige una banda de confianza para la función K nula mediante simulación y la función K observada se sobreplota para detectar excursiones. Con algo de pensamiento y experiencia, las excursiones se pueden interpretar en términos de tendencias a agruparse o no a ciertas distancias.

Figura 1

Ejemplos de una función K y su función L asociada de Dixon (2001), ibid. La función L se construye de modo que para una distribución uniforme es la línea horizontal en cero: una buena referencia visual. Las líneas discontinuas son bandas de confianza para esta área de estudio en particular, calculadas mediante simulación. La traza gris sólida es la función L para los datos. La excursión positiva a distancias de 0-20 m indica cierta agrupación a estas distancias.L(ρ)ρ

Publiqué un ejemplo trabajado en respuesta a una pregunta relacionada en /stats//a/7984 , donde un gráfico derivado de la función K para una distribución uniforme en un distribuidor bidimensional incrustado en es estimado por simulación.R3

En R, los spatstat funciones kesty k3estcalcular el K-función para y n = 3 , respectivamente. En más de 3 dimensiones, probablemente esté solo, pero los algoritmos serían exactamente los mismos. Puede realizar los cálculos a partir de una matriz de distancia tal como se calculó (con eficiencia moderada) por .n=2n=3stats::dist

whuber
fuente
¿alguna vez descubriste la relación entre el puente browniano y las tramas que muestras en la respuesta a la que vinculas?
gui11aume
13

Resulta que la pregunta es más difícil de lo que pensaba. Aún así, hice mi tarea y después de mirar alrededor, encontré dos métodos además de las funciones de Ripley para probar la uniformidad en varias dimensiones.

Hice un paquete R llamado unfque implementa ambas pruebas. Puede descargarlo de github en https://github.com/gui11aume/unf . Una gran parte está en C, por lo que deberá compilarlo en su máquina R CMD INSTALL unf. Los artículos en los que se basa la implementación están en formato pdf en el paquete.

El primer método proviene de una referencia mencionada por @Procrastinator ( Prueba de uniformidad multivariante y sus aplicaciones, Liang et al., 2000 ) y permite probar la uniformidad solo en el hipercubo de la unidad. La idea es diseñar estadísticas de discrepancia que sean asintóticamente gaussianas según el teorema del límite central. Esto permite calcular una estadística , que es la base de la prueba.χ2

library(unf)
set.seed(123)
# Put 20 points uniformally in the 5D hypercube.
x <- matrix(runif(100), ncol=20)
liang(x) # Outputs the p-value of the test.
[1] 0.9470392

El segundo enfoque es menos convencional y utiliza árboles de expansión mínima . El trabajo inicial fue realizado por Friedman & Rafsky en 1979 (referencia en el paquete) para probar si dos muestras multivariadas provienen de la misma distribución. La imagen a continuación ilustra el principio.

uniformidad

Los puntos de dos muestras bivariadas se trazan en rojo o azul, dependiendo de su muestra original (panel izquierdo). Se calcula el árbol de expansión mínimo de la muestra agrupada en dos dimensiones (panel central). Este es el árbol con la suma mínima de longitudes de borde. El árbol se descompone en subárboles donde todos los puntos tienen las mismas etiquetas (panel derecho).

En la figura a continuación, muestro un caso en el que se agregan puntos azules, lo que reduce la cantidad de árboles al final del proceso, como puede ver en el panel derecho. Friedman y Rafsky han calculado la distribución asintótica del número de árboles que se obtienen en el proceso, lo que permite realizar una prueba.

no uniformidad

Smith y Jain desarrollaron esta idea para crear una prueba general de uniformidad de una muestra multivariada en 1984, y Ben Pfaff la implementó en C (referencia en el paquete). La segunda muestra se genera de manera uniforme en el casco convexo aproximado de la primera muestra y la prueba de Friedman y Rafsky se realiza en el grupo de dos muestras.

La ventaja del método es que prueba la uniformidad en cada forma multivariada convexa y no solo en el hipercubo. La gran desventaja es que la prueba tiene un componente aleatorio porque la segunda muestra se genera al azar. Por supuesto, uno puede repetir la prueba y promediar los resultados para obtener una respuesta reproducible, pero esto no es útil.

Continuando con la sesión R anterior, así es como va.

pfaff(x) # Outputs the p-value of the test.
pfaff(x) # Most likely another p-value.

Siéntase libre de copiar / bifurcar el código de github.

gui11aume
fuente
1
Gran resumen, gracias! Para las generaciones futuras, también encontré que este artículo es un resumen "práctico" útil (no afiliado a los autores de ninguna manera).
Minero
3

(U,Z)UUniform(0,1)Z=U0<p<1W1pWUniform(0,1)U

nnχ2

Michael R. Chernick
fuente
1
Creo que la última vez que ofreció esta solución, Michael, alguien señaló que no es factible en más de un pequeño número de dimensiones, porque como mínimo necesita 2nortecélulas.
whuber
@whuber, no creo que hayamos decidido cuál debe ser el número mínimo de celdas y varias dimensiones no significan necesariamente grandes aquí. Podría ser que solo estamos tratando con 3 o 4.
Michael R. Chernick
55
Su respuesta se vuelve más útil para todos los lectores cuando delimita su alcance y aplicabilidad potencial. (Una estrategia alternativa, en el espíritu de una buena consulta estadística, es utilizar comentarios para preguntarle al OP sobre el posible número de dimensiones y luego adaptar su respuesta a eso.) (+1 para la mejora.)
whuber
"Entonces haz una prueba de \ Chi ^ 2 para determinar la uniformidad". ¿Podrías expandir eso? En Wikipedia en.wikipedia.org/wiki/Pearson%27s_chi-squared_test solo hay una prueba Chi2 de bondad de ajuste, de homogeneidad y de independencia.
Yaroslav Nikitenko