Como testar a uniformidade em várias dimensões?

13

Testar a uniformidade é algo comum, no entanto, pergunto-me quais são os métodos para fazer isso em uma nuvem multidimensional de pontos.

gui11aume
fonte
Pergunta interessante. Você está considerando entradas independentes?
1
@ Procrastinator Estou pensando neste ponto agora. Tentando descobrir se é possível ter uniformidade sem independência. Qualquer dica é bem vinda.
gui11aume
4
Sim, é possível ter uniformidade sem independência. Por exemplo, faça a amostra da unidade cubo gerando uma grade uniforme de cubos ϵ cobrindo R n e compensando sua origem de acordo com uma distribuição uniforme no cubo ϵ . Reter os centros dessas £ -cubes caindo dentro da unidade de cubo. Se quiser, subamostra deles aleatoriamente. Todos os pontos têm chances iguais de serem selecionados: a distribuição é uniforme. O resultado também parece uniforme, mas como não há dois pontos a uma distância ϵ um do outro, obviamente os pontos não são independentes. nϵRnϵϵϵ
whuber

Respostas:

14

O método padrão usa a função K de Ripley ou algo derivado dela, como uma função L. Este é um gráfico que resume o número médio de vizinhos dos pontos em função da distância máxima afastada ( ). Para uma distribuição uniforme em n dimensões, essa média deve se comportar como ρ n : e sempre será para ρ pequeno . Ele se afasta desse comportamento devido ao agrupamento, outras formas de não independência espacial e efeitos de borda (de onde é crucial especificar a região amostrada pelos pontos). Por causa dessa complicação - que piora à medida que nρnρnρnaumenta - na maioria das aplicações, uma faixa de confiança é erguida para a função K nula por simulação e a função K observada é super-plotada para detectar excursões. Com algum pensamento e experiência, as excursões podem ser interpretadas em termos de tendências de agrupar ou não a determinadas distâncias.

figura 1

Exemplos de uma função K e sua função L associada de Dixon (2001), ibid. A função L é construída de modo que para uma distribuição uniforme seja a linha horizontal em zero: uma boa referência visual. As linhas tracejadas são faixas de confiança para essa área de estudo específica, computadas por simulação. O traço cinza sólido é a função L dos dados. A excursão positiva nas distâncias de 0 a 20 m indica algum agrupamento nessas distâncias.eu(ρ)-ρ

Postei um exemplo trabalhado em resposta a uma pergunta relacionada em /stats//a/7984 , em que um gráfico derivado da função K para uma distribuição uniforme em um coletor bidimensional incorporado em é estimado por simulação.R3

Em R, o spatstat funções keste k3estcalcular a função K para e n = 3 , respectivamente. Em mais de três dimensões, você provavelmente está sozinho, mas os algoritmos seriam exatamente os mesmos. Você pode fazer os cálculos a partir de uma matriz de distância conforme calculado (com eficiência moderada) por .n=2n=3stats::dist

whuber
fonte
você já descobriu a relação entre a ponte browniana e os enredos que mostra na resposta à qual vincula?
gui11aume
13

Acontece que a pergunta é mais difícil do que eu pensava. Ainda assim, fiz minha lição de casa e, depois de olhar em volta, encontrei dois métodos além das funções de Ripley para testar a uniformidade em várias dimensões.

Eu criei um pacote R chamado unfque implementa os dois testes. Você pode baixá-lo no github em https://github.com/gui11aume/unf . Uma grande parte está em C, portanto você precisará compilá-lo em sua máquina R CMD INSTALL unf. Os artigos nos quais a implementação se baseia estão em formato pdf no pacote.

O primeiro método vem de uma referência mencionada por @Procrastinator ( Testando a uniformidade multivariada e suas aplicações, Liang et al., 2000 ) e permite testar a uniformidade apenas no hipercubo da unidade. A idéia é projetar estatísticas de discrepância assintoticamente gaussianas pelo teorema do limite central. Isso permite calcular umaχ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

A segunda abordagem é menos convencional e usa árvores abrangentes mínimas . O trabalho inicial foi realizado por Friedman & Rafsky em 1979 (referência na embalagem) para testar se duas amostras multivariadas são da mesma distribuição. A imagem abaixo ilustra o princípio.

uniformidade

Os pontos de duas amostras bivariadas são plotados em vermelho ou azul, dependendo da amostra original (painel esquerdo). A árvore de abrangência mínima da amostra agrupada em duas dimensões é calculada (painel do meio). Esta é a árvore com a soma mínima dos comprimentos das arestas. A árvore é decomposta em subárvores onde todos os pontos têm os mesmos rótulos (painel direito).

Na figura abaixo, mostro um caso em que pontos azuis são agregados, o que reduz o número de árvores no final do processo, como você pode ver no painel direito. Friedman e Rafsky calcularam a distribuição assintótica do número de árvores que se obtém no processo, o que permite realizar um teste.

não uniformidade

Essa idéia de criar um teste geral de uniformidade de uma amostra multivariada foi desenvolvida por Smith e Jain em 1984 e implementada por Ben Pfaff em C (referência no pacote). A segunda amostra é gerada uniformemente no casco convexo aproximado da primeira amostra e o teste de Friedman e Rafsky é realizado no conjunto de duas amostras.

A vantagem do método é que ele testa uniformidade em todas as formas multivariadas convexas e não apenas no hipercubo. A grande desvantagem é que o teste tem um componente aleatório porque a segunda amostra é gerada aleatoriamente. Obviamente, é possível repetir o teste e calcular a média dos resultados para obter uma resposta reproduzível, mas isso não é útil.

Continuando a sessão R anterior, aqui está como ele vai.

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

Sinta-se livre para copiar / bifurcar o código no github.

gui11aume
fonte
1
Excelente visão geral, obrigado! Para as gerações futuras, também achei este artigo um resumo "prático" útil (não afiliado aos autores de forma alguma).
MInner 11/02/19
3

O par seria uniforme dependente de onde U U n i(você,Z)vocêvocênEuform(0 0,1)Z=você0 0<p<1W1-pWvocênEuform(0 0,1)você

nnχ2

Michael R. Chernick
fonte
1
2n
@whuber não acho que tenhamos decidido qual é o número mínimo de células e que várias dimensões não significam necessariamente grande aqui. Poderia ser, estamos apenas lidando com 3 ou 4.
Michael R. Chernick
5
Sua resposta se torna mais útil para todos os leitores quando você delineia seu escopo e potencial aplicabilidade. (Uma estratégia alternativa, no espírito de uma boa consultoria estatística, é usar comentários para perguntar ao OP sobre o número possível de dimensões e depois adaptar sua resposta a isso.) (+1 para a melhoria.)
whuber
"Então faça um teste \ Chi ^ 2 para uniformidade." - você poderia expandir isso? Na Wikipedia, en.wikipedia.org/wiki/Pearson%27s_chi-squared_test, há apenas o teste Chi2 de bondade de ajuste, de homogeneidade e de independência.
Yaroslav Nikitenko