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 Tall arrays

En este ejemplo se muestra cómo usar y analizar y visualizar los datos contenidos en una matriz alta.histogramhistogram2

Crear tabla alta

Cree un almacén de datos utilizando el conjunto de información.airlinesmall.csv Trate los valores como datos faltantes para que se reemplacen por valores.'NA'NaN Seleccione un subconjunto de las variables con las que trabajar. Convierta el almacén de datos 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          :           :         :        :        :           :         :        : 

Trazar histograma de retrasos de llegada

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

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

El retardo de llegada es con mayor frecuencia un pequeño número cerca de 0, por lo que estos valores dominan la trama y dificultan la consulta de otros detalles.

Ajustar los límites de ubicación del histograma

Restrinja los límites de ubicación del histograma para trazar solo los retrasos de llegada entre-50 y 150 minutos. Después de crear un objeto de histograma a partir de una matriz alta, no puede cambiar ninguna propiedad que requiera volver a calcular las ubicaciones, incluido y.BinWidthBinLimits Además, no puede utilizar o ajustar el número de bins.morebinsfewerbins En estos casos, se utiliza para reconstruir el histograma a partir de los datos sin procesar de la matriz alta.histogram

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

A partir de esta gráfica, parece que los retrasos prolongados podrían ser más comunes de lo esperado inicialmente. Para investigar más, encuentre la probabilidad de un retraso de llegada que sea una hora o mayor.

Probabilidad de retrasos una hora o mayor

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

Determine qué contenedores contienen retrasos de llegada de una hora (60 minutos) o más. Quite el último borde de 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) = [];

Se usa para recuperar el valor asociado a cada ubicación seleccionada.idx Agregue los valores de bin juntos, divida por el número total de muestras y multiplique por 100 para determinar la probabilidad global de un retardo mayor o igual a una hora. Puesto que el número total de muestras se calcula a partir del conjunto de datos original, se utiliza para evaluar explícitamente el cálculo y devolver un escalar en memoria.gather

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.55 sec Evaluation completed in 0.64 sec 
P = 4.4809 

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

Trazar histograma bivariado de retrasos por mes

Trazar 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 al retardo 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 0.97 sec Evaluation completed in 1 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.88 sec Evaluation completed in 0.93 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 de histograma bivariado para calcular la probabilidad de tener un retraso de llegada una hora o mayor en cada mes, y el retraso de llegada media para cada mes. Coloque los resultados en una tabla con la variable que contiene la información de probabilidad y la variable que contiene el retardo de llegada medio.PMeanByMonth

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.57 sec - Pass 2 of 2: Completed in 1.3 sec Evaluation completed in 2.4 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 retrasarse 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