Largura ideal da bandeja para histograma bidimensional


8

Existem muitas regras para selecionar uma largura ideal de compartimento em um histograma 1D (veja, por exemplo )

Estou procurando uma regra que aplique a seleção das larguras ideais de barras iguais em histogramas bidimensionais .

Existe essa regra? Talvez uma das regras conhecidas dos histogramas 1D possa ser facilmente adaptada. Nesse caso, você poderia fornecer alguns detalhes mínimos sobre como fazê-lo?


Ideal para que finalidade? Observe também que os histogramas 2D sofrerão com os mesmos problemas observados nos histogramas comuns; portanto, convém voltar a atenção para alternativas como estimativas de densidade do kernel.
whuber

1
Existe uma razão para você não adaptar algo simples como o regra ou fórmula de Sturges para o seu problema diretamente? Ao longo de cada dimensão, você tem o mesmo número de leituras de qualquer maneira. Se você quiser algo um pouco mais sofisticado (por exemplo, regra de Freedman-Diaconis), poderá "ingenuamente" tirar o máximo entre o número de caixas retornadas para cada dimensão independentemente. Você está essencialmente olhando para um KDE discreto (2d) de qualquer maneira, então talvez essa seja sua melhor escolha. (n)
precisa saber é o seguinte

Com o objetivo de não ter que escolher uma largura de compartimento manualmente, portanto, subjetivamente? Para selecionar uma largura que descreva os dados subjacentes com pouco ruído e sem suavização? Não sei se entendi sua pergunta. "Ideal" é uma palavra muito vaga? Que outras interpretações você pode ver aqui? De que outra forma eu poderia ter formulado a pergunta? Sim, eu conheço o KDE, mas preciso de um histograma 2D.
Gabriel

@ usεr11852 Você poderia expandir seu comentário em uma resposta, talvez com mais alguns detalhes?
Gabriel

@Glen_b você poderia colocar isso na forma de uma resposta? Meu conhecimento de estatística é bastante limitado e muitas das coisas que você diz passam por cima da minha cabeça, para que todos os detalhes possíveis sejam apreciados.
Gabriel

Respostas:


4

Meu conselho geralmente é que é ainda mais crítico do que em 1-D suavizar sempre que possível, ou seja, fazer algo como estimativa de densidade de kernel (ou algum outro método, como estimativa de log-spline), que tende a ser substancialmente mais eficiente do que usar histogramas. Como o whuber aponta, é bem possível ser enganado pela aparência de um histograma, especialmente com poucos compartimentos e tamanhos de amostra pequenos a moderados.

Se você está tentando otimizar o erro quadrado integrado médio (MISE), digamos, existem regras que se aplicam em dimensões mais altas (o número de posições depende do número de observações, da variação, da dimensão e da "forma"), para estimativa de densidade de kernel e histogramas.

[De fato, muitos dos problemas de um também são do outro, portanto, algumas das informações neste artigo da wikipedia serão relevantes.]

Essa dependência da forma parece implicar que, para escolher da melhor maneira, você já precisa saber o que está tramando. No entanto, se você estiver preparado para fazer algumas suposições razoáveis, poderá usá-las (por exemplo, algumas pessoas podem dizer "aproximadamente gaussianas") ou, alternativamente, usar alguma forma de estimador "plug-in" do apropriado funcional.

[1]

A análise em dimensões mais altas é um pouco mais complicada (da mesma maneira que ocorre das dimensões 1-D para r para a estimativa da densidade do kernel), mas há um termo na dimensão que chega ao poder de n.

[2]

h=R(fk)1/2(6i=1dR(fi)1/2)1/(2+d)n1/(2+d)

R(f)=Rdf(x)2dxfifithx

n1/4

hk3.5σkn1/(2+d)hkkσkk

ρ

hi=3.504σi(1ρ2)3/8n1/4

Quando a distribuição é distorcida, ou de cauda pesada ou multimodal, geralmente resultam larguras de binárias muito menores; consequentemente, os resultados normais costumam ser, na melhor das hipóteses, limites superiores quando ligados.

Obviamente, é perfeitamente possível que você não esteja interessado em erro quadrado integrado médio, mas em algum outro critério.

[1]: Wand, MP (1997),
"Escolha baseada em dados da largura do compartimento do histograma",
American Statistician 51 , 59-64.

[2]: Scott, DW (1992),
Estimativa de densidade multivariada: Teoria, Prática e Visualização ,
John Wiley & Sons, Inc., Hoboken, NJ, EUA.


σk

1
k

4

N

  1. N
  2. log2N+1
  3. Alguma outra regra baseada apenas no número de pontos de dados disponíveis (por exemplo, regra de Rick).

M

h

h=2IQR(x)N1/3

xM

M=(max(x)min(x))/h

x

No entanto, uma quarta opção seria tentar tratar sua amostra como bidimensional nativa, calcular a norma para cada um dos pontos da amostra e executar a regra Freedman – Diaconis nas normas da amostra. ou seja:

xnew=x12+x22

OK, aqui estão alguns códigos e uma plotagem para os procedimentos que eu descrevo:

rng(123,'twister');     % Fix random seed for reproducibility
N = 250;                % Number of points in our sample

A = random('normal',0,1,[N,2]);  % Generate a N-by-2 matrix with N(0,1)
A(:,2) = A(:,2) * 5;             % Make the second dimension more variable


% The sqrt(N) rule:    
nbins_sqrtN = floor(sqrt(N));

% The Sturges formula:    
nbins_str = ceil(log2(N) +1);

% The Freedman–Diaconis-like choice:    
IQRs = iqr(A);              % Get the IQ ranges across each dimension
Hs = 2* IQRs* N^(-1/3);     % Get the bandwidths across each dimension
Ranges = range(A);          % Get the range of values across each dimension
% Get the suggested number of bins along each dimension
nbins_dim1 = ceil(Ranges(1)/Hs(1)); % 12 here
nbins_dim2 = ceil(Ranges(2)/Hs(2)); % 15 here
% Get the maximum of the two
nbins_fd_1 = max( [nbins_dim1, nbins_dim2]);


% The Freedman–Diaconis choice on the norms

Norms = sqrt(sum(A.^2,2));        % Get the norm of each point in th 2-D sample
H_norms = 2* iqr(Norms)* N^(-1/3);% Get the "norm" bandwidth
nbins_fd_2 = ceil(range(Norms)/ H_norms);   % Get number of bins 

[nbins_sqrtN nbins_str nbins_fd_1 nbins_fd_2]

% Plot the results / Make bivariate histograms
% I use the hist3 function from MATLAB
figure(1);
subplot(2,2,1);
hist3(A,[ nbins_sqrtN nbins_sqrtN] );
title('Square Root rule');

subplot(2,2,2);
hist3(A,[ nbins_str nbins_str] );
title('Sturges formula rule');

subplot(2,2,3);
hist3(A,[ nbins_fd_1 nbins_fd_1]);
title('Freedman–Diaconis-like rule');

subplot(2,2,4);
hist3(A,[ nbins_fd_2 nbins_fd_2]);
title('Freedman–Diaconis rule on the norms');

insira a descrição da imagem aqui

Como outros observaram, a suavização é quase certamente mais apropriada para este caso (ou seja, obter um KDE). Espero que isso dê uma idéia do que descrevi no meu comentário sobre a generalização direta (com todos os problemas que isso pode acarretar) de regras de amostra 1-D para regras de amostra 2-D. Notavelmente, a maioria dos procedimentos assume algum grau de "normalidade" na amostra. Se você tiver uma amostra que claramente não é normalmente distribuída (por exemplo, é leptokurtótica), esse procedimento (mesmo em 1-D) falharia bastante.


1
Fico feliz que você tenha achado Gabriel útil, mas eu proporia aceitar a resposta de Glen_b. Embora convenientes, os métodos descritos em minha resposta são heurísticas generalizadas a partir do caso 1-D; Adicionei-os para ilustrar os pontos que fiz no meu comentário. Eu realmente aprecio o polegar para cima (para que você ainda possa votar em mim como uma resposta útil, se ainda não o fez :)), mas a resposta correta é da Glen_b.
usεr11852
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.