10 votos

Anchura óptima de la bandeja para un histograma bidimensional

Hay muchas reglas para seleccionar la anchura óptima de las casillas en un histograma 1D (véase exemple )

Estoy buscando una regla que aplique la selección de los anchos óptimos de las cajas iguales en bidimensional histogramas.

¿Existe tal norma? Tal vez se pueda adaptar fácilmente una de las reglas conocidas para los histogramas 1D, si es así, ¿podría dar algunos detalles mínimos sobre cómo hacerlo?

5voto

usεr11852 Puntos 5514

Dado que tienes un número fijo $N$ de datos (es decir, que tiene el mismo número de lecturas en ambas dimensiones) que podría utilizar inmediatamente:

  1. La regla de la raíz cuadrada redondeada ( $\sqrt{N}$ ), (es decir, el camino de Excel :) )
  2. La regla de Sturges ( $\log_2N +1$ ),
  3. Alguna otra regla que se base sólo en el número de puntos de datos disponibles (por ejemplo, la regla de Rick).

Para encontrar el número común de recipientes $M$ en cada dimensión.

Por otro lado, es posible que quieras probar algo más robusto como el Regla Freedman-Diaconis que esencialmente define el ancho de banda $h$ como igual a:

$h= 2 IQR(x) N^{-1/3}$ ,

donde IQR es el rango intercuartil de sus datos $x$ . A continuación, se calcula el número de contenedores $M$ a lo largo de cada dimensión, como si fuera igual:

$M = \lceil (max(x)- min(x))/h \rceil$ .

Esto se hace en ambas dimensiones de los datos $x$ Esto le da dos números, posiblemente diferentes, de contenedores que "deberían" utilizarse en cada dimensión. Usted ingenuamente tome el más grande para no "perder" información.

Sin embargo, una cuarta opción sería intentar tratar su muestra como nativamente bidimensional, calcular la norma para cada uno de los puntos de la muestra y luego realizar la regla de Freedman-Diaconis en las normas de la muestra, es decir:

$x_{new} = \sqrt{x_1^2 + x_2^2}$

Bien, aquí hay un código y un gráfico para los procedimientos que describo:

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');

enter image description here

Como otros han señalado el alisado es casi seguramente más apropiado para este caso (es decir, conseguir un KDE). Espero que esto te dé una idea sobre lo que describí en mi comentario respecto a la generalización directa (con todos los problemas que puede conllevar) de las reglas de muestreo 1-D a las reglas de muestreo 2-D. En particular, la mayoría de los procedimientos asumen cierto grado de "normalidad" en la muestra. Si tiene una muestra que claramente no está distribuida normalmente (por ejemplo, es leptocúrtica) estos procedimientos (incluso en 1-D) fallarían bastante.

4voto

AdamSane Puntos 1825

En general, mi consejo sería que es aún más crítico que en 1-D para suavizar cuando sea posible, es decir, para hacer algo como la estimación de la densidad del núcleo (o algún otro método, como la estimación log-spline), que tiende a ser sustancialmente más eficiente que el uso de histogramas. Como señala Whuber, es muy posible dejarse engañar por la apariencia de un histograma, especialmente con pocos intervalos y tamaños de muestra pequeños o moderados.

Si se trata de optimizar el error cuadrático medio integrado (MISE), por ejemplo, hay reglas que se aplican en dimensiones más altas (el número de bins depende del número de observaciones, la varianza, la dimensión y la "forma"), tanto para la estimación de la densidad del kernel como para los histogramas.

[De hecho, muchos de los problemas de uno son también problemas del otro, por lo que parte de la información en este el artículo de la wikipedia será relevante].

Esta dependencia de la forma parece implicar que, para elegir de forma óptima, hay que saber ya lo que se está trazando. Sin embargo, si estás preparado para hacer algunas suposiciones razonables, puedes usarlas (así, por ejemplo, algunos podrían decir "aproximadamente gaussiano"), o alternativamente, puedes usar alguna forma de estimador "plug-in" del funcional apropiado.

Wand, 1997 $^{[1]}$ cubre el caso 1-D. Si puedes conseguir ese artículo, échale un vistazo, ya que gran parte de lo que contiene también es relevante para la situación en dimensiones superiores (en cuanto a los tipos de análisis que se realizan). (Existe en forma de documento de trabajo en Internet si no tienes acceso a la revista).

El análisis en dimensiones superiores es algo más complicado (más o menos de la misma manera que se pasa de 1-D a r-dimensiones para la estimación de la densidad del núcleo), pero hay un término en la dimensión que llega a la potencia de n.

Sección 3.4 Ecuación 3.61 (p83) de Scott, 1992 $^{[2]}$ da la anchura de bandeja asintóticamente óptima:

$h^∗=R(f_k)^{-1/2}\,\left(6\prod_{i=1}^dR(f_i)^{1/2}\right)^{1/(2+d)} n^{−1/(2+d)}$

donde $R(f)=\int_{\mathfrak{R}^d} f(x)^2 dx$ es un término de rugosidad (no el único posible), y creo que $f_i$ es la derivada de $f$ con respecto a la $i^\text{th}$ término en $x$ .

Así que para 2D eso sugiere anchos de bandeja que se reducen a medida que $n^{−1/4}$ .

En el caso de variables normales independientes, la regla aproximada es $h_k^*\approx 3.5\sigma_k n^{−1/(2+d)}$ , donde $h_k$ es la anchura de la bandeja en la dimensión $k$ El $*$ indica el valor asintótico óptimo, y $\sigma_k$ es la desviación estándar de la población en la dimensión $k$ .

Para la normal bivariante con correlación $\rho$ el ancho de la bandeja es

$h_i^* = 3.504 \sigma_i(1-\rho^2)^{3/8}n^{-1/4}$

Cuando la distribución es asimétrica, o de cola pesada, o multimodal, generalmente se obtienen anchos de bandeja mucho más pequeños; en consecuencia, los resultados normales serían a menudo, en el mejor de los casos, límites superiores de bindwith.

Por supuesto, es muy posible que no te interese el error cuadrático medio integrado, sino algún otro criterio.

[1]: Wand, M.P. (1997),
"Elección de la anchura del histograma basada en los datos",
Estadístico americano 51 , 59-64

[2]: Scott, D.W. (1992),
Estimación de la densidad multivariante: Teoría, práctica y visualización ,
John Wiley & Sons, Inc., Hoboken, NJ, USA.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X