Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Histogramas de matrices altas

En este ejemplo se muestra cómo utilizar histogram y histogram2 para analizar y visualizar los datos contenidos en una matriz alta.

Crear tabla alta

Cree un almacén de datos utilizando el conjunto de airlinesmall.csv . Tratar los valores de 'NA' como datos que faltan para que se reemplacen con valores NaN . Seleccione un subconjunto de las variables con las que trabajar. Convertir el almacén de almacenamiento en una tabla alta.

varnames = {'ArrDelay', 'DepDelay', 'Year', 'Month'}; ds = datastore('airlinesmall.csv', 'TreatAsMissing', 'NA', ...     'SelectedVariableNames', varnames); T = tall(ds)
T =    Mx4 tall table      ArrDelay    DepDelay    Year    Month     ________    ________    ____    _____          8          12       1987     10           8           1       1987     10          21          20       1987     10          13          12       1987     10           4          -1       1987     10          59          63       1987     10           3          -2       1987     10          11          -1       1987     10          :           :         :        :        :           :         :        : 

Histograma del diagrama de retardos de llegada

Trace un histograma de la variable ArrDelay para examinar la distribución de frecuencias de los retrasos de llegada.

h = histogram(T.ArrDelay);
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 1 sec - Pass 2 of 2: Completed in 0 sec Evaluation completed in 3 sec 
title('Flight arrival delays, 1987 - 2008') xlabel('Arrival Delay (minutes)') ylabel('Frequency')

La demora de llegada es con mayor frecuencia un pequeño número cerca de 0, por lo que estos valores dominan la gráfica y dificultan ver otros detalles.

Ajustar los límites de bin del histograma

Restrinja los límites de los cubos de histograma para trazar sólo retrasos de llegada entre-50 y 150 minutos. Después de crear un objeto histograma a partir de una matriz alta, no puede cambiar ninguna propiedad que requeriría recalcular los bins, incluidos BinWidth y BinLimits. Además, no se puede utilizar morebins o fewerbins para ajustar el número de bins. En estos casos, utilice histogram para reconstruir el histograma de los datos RAW de la matriz alta.

figure histogram(T.ArrDelay,'BinLimits',[-50,150])
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 1 sec - Pass 2 of 2: Completed in 0 sec Evaluation completed in 2 sec 
title('Flight arrival delays between -50 and 150 minutes, 1987 - 2008') xlabel('Arrival Delay (minutes)') ylabel('Probability')

De esta gráfica, parece que los retrasos largos pueden ser más comunes de lo que inicialmente se esperaba. Para investigar más, encontrar la probabilidad de un retraso de llegada que es una hora o más.

Probabilidad de retrasos de una hora o más

El histograma original devolvió un objeto h que contiene los valores de bin en la propiedad Values y los bordes bin de la propiedad BinEdges . Puede utilizar estas propiedades para realizar cálculos en memoria.

Determine qué bins contienen retardos de llegada de una hora (60 minutos) o más. Elimine el último borde bin del vector de índice lógico para que tenga la misma longitud que el vector de los valores de bin.

idx = h.BinEdges >= 60; idx(end) = [];

Utilice idx para recuperar el valor asociado a cada bin seleccionado. Añada los valores de la papelera juntos, divida por el número total de muestras y multiplique por 100 para determinar la probabilidad general de un retraso mayor o igual a una hora. Dado que el número total de muestras se calcula a partir del conjunto de datos original, utilice gather para evaluar explícitamente el cálculo y devolver un escalar en memoria.

N = numel(T.ArrDelay); P = gather(sum(h.Values(idx))*100/N)
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0 sec Evaluation completed in 0 sec 
P = 4.4809 

En general, las probabilidades de una demora de llegada de una hora o más son de aproximadamente 4,5%.

Trazar histograma bivariado de demoras por mes

Trace un histograma bivariado de los retrasos de llegada que son de 60 minutos o más por mes. Esta gráfica examina cómo la estacionalidad afecta el retraso de llegada.

figure h2 = histogram2(T.Month,T.ArrDelay,[12 50],'YBinLimits',[60 1100],...     'Normalization','probability','FaceColor','flat');
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 1 sec Evaluation completed in 1 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 1 sec Evaluation completed in 1 sec 
title('Probability of arrival delays 1 hour or greater (by month)') xlabel('Month (1-12)') ylabel('Arrival Delay (minutes)') zlabel('Probability') xticks(1:12) view(-126,23)

Estadísticas de retardo por mes

Utilice el objeto histograma bivariado para calcular la probabilidad de tener un retardo de llegada de una hora o mayor en cada mes, y el retraso de llegada media para cada mes. Ponga los resultados en una tabla con la variable P que contiene la información de probabilidad y la variable MeanByMonth que contiene la demora de llegada media.

monthNames = {'Jan','Feb','Mar','Apr','May','Jun',...     'Jul','Aug','Sep','Oct','Nov','Dec'}'; G = findgroups(T.Month); M = splitapply(@(x) mean(x,'omitnan'),T.ArrDelay,G); delayByMonth = table(monthNames, sum(h2.Values,2)*100, gather(M), ...     'VariableNames',{'Month','P','MeanByMonth'})
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 0 sec - Pass 2 of 2: Completed in 1 sec Evaluation completed in 2 sec 
delayByMonth=12×3 table
    Month      P       MeanByMonth
    _____    ______    ___________

    'Jan'    9.6497      8.5954   
    'Feb'    7.7058      7.3275   
    'Mar'    9.0543      7.5536   
    'Apr'    7.2504      6.0081   
    'May'    7.4256      5.2949   
    'Jun'     10.35      10.264   
    'Jul'    10.228      8.7797   
    'Aug'    8.5989      7.4522   
    'Sep'    5.4116      3.6308   
    'Oct'     6.042      4.6059   
    'Nov'    6.9002      5.2835   
    'Dec'    11.384      10.571   

Los resultados indican que los vuelos en el mes festivo de diciembre tienen un 11,4% de probabilidades de ser retrasados por más de una hora, pero se retrasan en 10,5 minutos en promedio. Esto es seguido de cerca por los meses de verano de junio y julio, donde hay alrededor de un 10% de probabilidades de ser retrasado una hora o más y el retraso promedio es de aproximadamente 9 o 10 minutos.

Consulte también

| |

Temas relacionados