exponenta event banner

grpstats

Сводная статистика, организованная по группам

Описание

пример

statarray = grpstats(tbl,groupvar) возвращает таблицу или массив наборов данных со средствами для групп данных, указанных в tbl определяется значениями переменной группировки или переменных, указанных в groupvar.

  • Если есть одна переменная группирования, то есть строка в statarray для каждого значения переменной группировки. grpstats сортирует группы по порядку отображения (если группирующая переменная является символьным вектором или строковым скаляром), по возрастанию (если группирующая переменная является числовой) или по порядку уровней (если группирующая переменная является категориальной).

  • Если groupvar является строковым массивом или массивом ячеек символьных векторов, содержащих несколько имен переменных группирования, или вектором номеров столбцов, то есть строка в statarray для каждой наблюдаемой уникальной комбинации значений переменных группировки. grpstats сортирует группы по значениям первой переменной группирования, затем второй переменной группирования и т.д.

  • При наличии переменных в tbl (кроме указанных в groupvar) не являются числовыми или логическими массивами, то вы должны указать имена или номера столбцов числовых и логических переменных, для которых вы хотите вычислить средства, используя аргумент пары имя-значение, DataVars.

пример

statarray = grpstats(tbl,groupvar,whichstats) возвращает значения групп для типов сводной статистики, указанных в whichstats.

пример

statarray = grpstats(tbl,groupvar,whichstats,Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары.

пример

means = grpstats(X,group) возвращает вектор столбца или матрицу со средствами групп данных в матрице или векторе X определяется значениями переменной группировки или переменных, group. Строки means соответствуют значениям переменной группировки.

  • Если есть одна переменная группирования, то есть строка в means для каждого значения переменной группировки. grpstats сортирует группы по порядку отображения (если группирующая переменная является символьным вектором или строковым скаляром), по возрастанию (если группирующая переменная является числовой) или по порядку уровней (если группирующая переменная является категориальной).

  • Если group является строковым массивом или массивом ячеек переменных группирования, то есть строка в means для каждой наблюдаемой уникальной комбинации значений переменных группировки. grpstats сортирует группы по значениям первой переменной группирования, затем второй переменной группирования и т.д.

  • Если X является матрицей, то means является матрицей с тем же количеством столбцов, что и X. Каждый столбец means имеет групповое значение для соответствующего столбца X.

пример

[stats1,...,statsN] = grpstats(X,group,whichstats) возвращает векторы столбцов или массивы со значениями групп для суммарных типов статистики, указанных в whichstats.

пример

[stats1,...,statsN] = grpstats(X,group,whichstats,'Alpha',alpha) определяет уровень значимости для доверительных интервалов и интервалов прогнозирования.

пример

grpstats(X,group,alpha) строит график средних значений групп данных в векторе или матрице X определяется значениями переменной группировки, group. Значения переменных группирования находятся на горизонтальной оси графика. Каждая группа имеет 100 × (1 -alpha)% доверительных интервалов.

  • Если X является матрицей, то grpstats строит графики средних и доверительных интервалов для каждого столбца X.

  • Если group является массивом ячеек переменных группировки, то grpstats строит графики средних и доверительных интервалов для групп данных в X определяется уникальными комбинациями значений переменных группировки. Например, если есть две переменные группирования, каждая с двумя значениями, существует четыре возможных комбинации значений переменных группирования. График включает только комбинации значений, которые существуют во входных переменных группировки (не все возможные комбинации).

Примеры

свернуть все

Загрузите образцы данных.

load('hospital')

Массив наборов данных hospital имеет 100 наблюдений и 7 переменных.

Создание массива наборов данных только с переменными Sex, Age, Weight, и Smoker.

dsa = hospital(:,{'Sex','Age','Weight','Smoker'});

Sex - номинальный массив с уровнями Male и Female. Переменные Age и Weight имеют числовые значения и Smoker имеет логические значения.

Вычислите среднее значение для числовых и логических массивов, Age, Weight, и Smoker, сгруппированные по уровням в Sex.

statarray = grpstats(dsa,'Sex')
statarray = 
              Sex       GroupCount    mean_Age    mean_Weight    mean_Smoker
    Female    Female    53            37.717      130.47         0.24528    
    Male      Male      47            38.915      180.53         0.44681    

statarray является массивом наборов данных с двумя строками, соответствующими уровням в Sex. GroupCount - количество наблюдений в каждой группе. Средства Age, Weight, и Smoker, сгруппированные по Sex, приведены в mean_Age, mean_Weight, и mean_Smoker.

Вычислить среднее значение для Age и Weight, сгруппированные по значениям в Smoker.

statarray = grpstats(dsa,'Smoker','mean','DataVars',{'Age','Weight'})
statarray = 
         Smoker    GroupCount    mean_Age    mean_Weight
    0    false     66             37.97      149.91     
    1    true      34            38.882      161.94     

В этом случае не все переменные в dsa (исключая переменную группировки, Smoker) - числовые или логические массивы; переменная Sex - номинальный массив. Если не все переменные во входном массиве наборов данных являются числовыми или логическими, необходимо указать переменные, для которых требуется вычислить сводную статистику с помощью DataVars.

Вычислите минимальный и максимальный вес, сгруппированный по комбинациям значений в Sex и Smoker.

statarray = grpstats(dsa,{'Sex','Smoker'},{'min','max'},...
                     'DataVars','Weight')
statarray = 
                Sex       Smoker    GroupCount    min_Weight    max_Weight
    Female_0    Female    false     40            111           147       
    Female_1    Female    true      13            115           146       
    Male_0      Male      false     26            158           194       
    Male_1      Male      true      21            164           202       

Существует два уникальных значения в Smoker и два уровня в Sex, в общей сложности для четырех возможных комбинаций значений: Женщина-некурящая (Female_0), Курильщица-женщина (Female_1), Мужчина-некурящий (Male_0) и Мужчина Курильщик (Male_1).

Укажите имена столбцов в выходных данных.

statarray = grpstats(dsa,{'Sex','Smoker'},{'min','max'},...
          'DataVars','Weight','VarNames',{'Gender','Smoker',...
					'GroupCount','LowestWeight','HighestWeight'})
statarray = 
                Gender    Smoker    GroupCount    LowestWeight    HighestWeight
    Female_0    Female    false     40            111             147          
    Female_1    Female    true      13            115             146          
    Male_0      Male      false     26            158             194          
    Male_1      Male      true      21            164             202          

Загрузите образцы данных.

load('hospital')

Массив наборов данных hospital имеет 100 наблюдений и 7 переменных.

Создание массива наборов данных только с переменными Age, Weight, и Smoker.

dsa = hospital(:,{'Age','Weight','Smoker'});

Переменные Age и Weight имеют числовые значения и Smoker имеет логические значения.

Вычислите среднее, минимальное и максимальное значение для числовых и логических массивов. Age, Weight, и Smoker, без группировки.

statarray = grpstats(dsa,[],{'mean','min','max'})
statarray = 
           GroupCount    mean_Age    min_Age    max_Age    mean_Weight
    All    100           38.28       25         50         154        


           min_Weight    max_Weight    mean_Smoker    min_Smoker    max_Smoker
    All    111           202           0.34           false         true      

Имя наблюдения All указывает, что все наблюдения в dsa использовались для вычисления суммарной статистики.

Загрузите образцы данных.

load('carsmall')

Все переменные измеряются для 100 автомобилей. Origin - страна происхождения каждого автомобиля (Франция, Германия, Италия, Япония, Швеция или США). Cylinders имеет три уникальных значения, 4, 6, и 8с указанием количества баллонов в каждом вагоне.

Рассчитать среднее ускорение, сгруппированное по стране происхождения.

means = grpstats(Acceleration,Origin)
means = 6×1

   14.4377
   18.0500
   15.8867
   16.3778
   16.6000
   15.5000

means - вектор средних ускорений 6 на 1, где каждое значение соответствует стране происхождения.

Рассчитать среднее ускорение, сгруппированное как по стране происхождения, так и по количеству цилиндров.

means = grpstats(Acceleration,{Origin,Cylinders})
means = 10×1

   17.0818
   16.5267
   11.6406
   18.0500
   15.9143
   15.5000
   16.3375
   16.7000
   16.6000
   15.5000

Существует 18 возможных комбинаций значений переменных группирования, поскольку Origin имеет 6 уникальных значений и Cylinders имеет 3 уникальных значения. В данных появляется только 10 возможных комбинаций, поэтому means является вектором 10 на 1 групповых средств, соответствующих наблюдаемым комбинациям значений.

Возвращает имена групп вместе со средним ускорением для каждой группы.

[means,grps] = grpstats(Acceleration,{Origin,Cylinders},{'mean','gname'})
means = 10×1

   17.0818
   16.5267
   11.6406
   18.0500
   15.9143
   15.5000
   16.3375
   16.7000
   16.6000
   15.5000

grps = 10x2 cell
    {'USA'    }    {'4'}
    {'USA'    }    {'6'}
    {'USA'    }    {'8'}
    {'France' }    {'4'}
    {'Japan'  }    {'4'}
    {'Japan'  }    {'6'}
    {'Germany'}    {'4'}
    {'Germany'}    {'6'}
    {'Sweden' }    {'4'}
    {'Italy'  }    {'4'}

Продукция grps показывает 10 наблюдаемых комбинаций значений группирования переменных. Например, средний разгон 4-цилиндровых автомобилей, сделанных во Франции, составляет 18,05.

Загрузите образцы данных.

load carsmall

Переменная Acceleration был измерен для 100 автомобилей. Переменная Origin - страна происхождения каждого автомобиля (Франция, Германия, Италия, Япония, Швеция или США).

Возвращает минимальное и максимальное ускорение, сгруппированное по стране происхождения.

[grpMin,grpMax,grp] = grpstats(Acceleration,Origin,{'min','max','gname'})
grpMin = 6×1

    8.0000
   15.3000
   13.9000
   12.2000
   15.7000
   15.5000

grpMax = 6×1

   22.2000
   21.9000
   18.2000
   24.6000
   17.5000
   15.5000

grp = 6x1 cell
    {'USA'    }
    {'France' }
    {'Japan'  }
    {'Germany'}
    {'Sweden' }
    {'Italy'  }

Автомобиль-образец с наименьшим ускорением производится в США, а автомобиль-образец с наибольшим ускорением - в Германии.

Загрузите образцы данных.

load('carsmall')

Переменная Weight был измерен для 100 автомобилей. Переменная Model_Year имеет три уникальных значения, 70, 76, и 82, которые соответствуют модельным годам 1970, 1976 и 1982.

Рассчитайте средний вес и интервалы прогнозирования 90% для каждого модельного года.

[means,pred,grp] = grpstats(Weight,Model_Year,...
                      {'mean','predci','gname'},'Alpha',0.1);

Планки ошибок графика, показывающие средний вес и интервалы прогнозирования 90%, сгруппированные по модельному году. Маркируйте горизонтальную ось именами групп.

ngrps = length(grp); % Number of groups
errorbar((1:ngrps)',means,pred(:,2)-means)
xlim([0.5 3.5])
set(gca,'xtick',1:ngrps,'xticklabel',grp)
title('90% Prediction Intervals for Weight by Year')

Figure contains an axes. The axes with title 90% Prediction Intervals for Weight by Year contains an object of type errorbar.

Загрузите образцы данных.

load('carsmall')

Переменные Acceleration и Weight - значения ускорения и веса, измеренные для 100 автомобилей. Переменная Cylinders - количество баллонов в каждом вагоне. Переменная Model_Year имеет три уникальных значения, 70, 76, и 82, которые соответствуют модельным годам 1970, 1976 и 1982.

Среднее ускорение графика, сгруппированное по Cylindersс 95% доверительными интервалами.

grpstats(Acceleration,Cylinders,0.05)

Figure contains an axes. The axes with title Means and Confidence Intervals for Each Group contains an object of type errorbar.

ans = 3×1

   16.6706
   16.4765
   11.6406

Среднее ускорение для автомобилей с 8 цилиндрами значительно ниже, чем для автомобилей с 4 или 6 цилиндрами.

Среднее ускорение и вес графика, сгруппированные по Cylindersи 95% доверительные интервалы. Масштабировать Weight значения на 1000, таким образом, Weight и Acceleration одинаковый порядок величины.

grpstats([Acceleration,Weight/1000],Cylinders,0.05)

Figure contains an axes. The axes with title Means and Confidence Intervals for Each Group contains 2 objects of type errorbar.

ans = 3×2

   16.6706    2.3726
   16.4765    3.1255
   11.6406    3.9703

Средний вес автомобилей увеличивается с количеством цилиндров, а средний разгон уменьшается с количеством цилиндров.

Среднее ускорение графика, сгруппированное по обоим Cylinders и Model_Year. Укажите 95% доверительные интервалы.

grpstats(Acceleration,{Cylinders,Model_Year},0.05)

Figure contains an axes. The axes with title Means and Confidence Intervals for Each Group contains 9 objects of type errorbar, text.

ans = 8×1

   16.1875
   16.8667
   16.7036
   15.5000
   17.0000
   16.0333
   11.0217
   13.2222

Существует девять возможных комбинаций значений переменных группирования, поскольку существует три уникальных значения в Cylinders и три уникальных значения в Model_Year. На сюжете не показаны 8-цилиндровые автомобили с 1982 модельным годом, потому что данные не включали эту комбинацию.

Средний разгон 8-цилиндровых автомобилей, сделанный в 1976 году, значительно больше среднего разгона 8-цилиндровых автомобилей, сделанного в 1970 году.

Входные аргументы

свернуть все

Входные данные, указанные как таблица или массив наборов данных. tbl должен включать хотя бы одну переменную, которая является переменной группировки.

Сводная статистика может рассчитываться только для переменных с числовым или логическим типом данных. При наличии переменных в tbl (кроме переменных группировки) не являются числовыми или логическими массивами, а затем используют аргумент пара имя-значение DataVars для указания имен или номеров столбцов числовых и логических переменных для расчета сводной статистики.

идентификаторы для переменных группировки во входных данных, tbl, указано как одно из следующих:

Символьный вектор, строковый массив или массив ячеек символьных векторовИмена переменных группировки
Положительное целое число или вектор положительных целых чиселПеременные номера переменных группировки
Вектор логических значений с числом элементов, равным числу переменных в tblЛогический индикатор со значением true для группирования переменных и false иначе
[]Без групп (возвращает сводную статистику для всех данных)

Любая переменная, которая идентифицируется groupvar как переменная группирования должна иметь допустимый тип данных переменной группирования: категориальный массив, логический или числовой вектор, вектор datetime или duration, строковый массив или массив ячеек символьных векторов.

Например, рассмотрим входную таблицу, tbl, с шестью переменными. Имя четвертой переменной Gender. Чтобы быть допустимой переменной группировки, тип данных Gender может быть строковым массивом, массивом ячеек символьных векторов или номинальным массивом с уникальными значениями Male и Female. Задание переменной Gender в качестве переменной группировки можно использовать любой из следующих синтаксисов:

  • statarray = grpstats(tbl,'Gender')

  • statarray = grpstats(tbl,4)

  • statarray = grpstats(tbl,logical([0 0 0 1 0 0]))

Типы данных: double | logical | char | string | cell

Тип вычисляемой сводной статистики, указанный как одно из следующих значений.

  • Вектор символов или строковый скаляр, указывающий тип сводной статистики, как описано в этой таблице.

    НапечататьОписание
    'mean'Средний
    'sem'Стандартная ошибка среднего значения
    'numel'Количество, или количество, не-NaN элементы
    'gname'Название группы
    'std'Стандартное отклонение
    'var'Различие
    'min'Минимум
    'max'Максимум
    'range'Диапазон
    'meanci'95% доверительный интервал для среднего. Можно указать различные уровни значимости с помощью Alpha аргумент пары имя-значение.
    'predci'95% интервал прогнозирования для нового наблюдения. Можно указать различные уровни значимости с помощью Alpha аргумент пары имя-значение.

  • Дескриптор функции для указания любого другого типа сводной статистики. Можно использовать дескриптор для любой функции, которая принимает столбец или матрицу данных и каждый раз возвращает тот же размер выходных данных. grpstats вызывает дескриптор функции (даже если выходные данные для некоторых групп пусты).

    • Если функция принимает столбец данных, то функция может вернуть либо скалярное значение, либо вектор столбца nvals-by-1 для описательной статистики nvals длины (например, доверительный интервал имеет длину два). Если функция принимает матрицу, функция должна возвращать либо вектор строки 1 за ncols, либо матрицу nvals за ncols, где ncols - количество столбцов в матрице входных данных.

    • Для функций, которые не вычисляют статистику по столбцам, укажите направление вычисления при указании функции. Например, для использования sum функция, укажите дескриптор функции как @(x)sum(x,1) потому что sum вычисляет статистику по столбцам для матриц с двумя или более строками, но не для однострочных матриц.

  • Строковый массив или массив ячеек символьных векторов или дескрипторов функций для задания нескольких типов сводной статистики.

Пример: stat1 = grpstats(X,group,'sem')

Пример: stat1 = grpstats(X,group,@(x)sum(x,1))

Пример: [stat1,stat2,stat3] = grpstats(X,group,{'mean','std',@skewness})

Уровень значимости, заданный как скалярное значение в диапазоне (0,1).

  • При указании 'meanci' или 'predci' в whichstats, вы можете использовать alpha чтобы указать уровень значимости для доверительных или прогнозируемых интервалов. При указании alpha, то grpstats возвращает значение 100 × (1 -alpha)% доверительных или прогнозируемых интервалов. Если не указать alpha, то grpstats возвращает 95% интервалов (alpha = 0.05).

  • Использовать alpha с синтаксисом для построения группы и соответствующего 100 × (1 -alpha)% доверительных интервалов.

Типы данных: double

Входные данные, заданные как вектор или матрица. Если X является матрицей, то grpstats возвращает сводную статистику для каждого столбца X.

Типы данных: double | single

Группировка переменных, указанных как категориальный массив, логический или числовой вектор, вектор datetime или duration, строковый массив или массив ячеек символьных векторов. Каждое уникальное значение в переменной группировки определяет группу. grpstats группирует данные для сводной статистики с использованием значений переменной группирования.

Для каждой строки входных данных должно быть значение переменной группирования X. Наблюдения (строки) с одинаковым значением переменной группировки находятся в одной группе. Использовать [] для вычисления суммарной статистики для всех данных без использования групп.

Например, если Gender - строковый массив или массив ячеек символьных векторов со значениями 'Male' и 'Female', вы можете использовать Gender как групповая переменная для суммирования данных по полу.

Для группирования данных сводной статистики можно также использовать несколько переменных группирования. В этом случае укажите массив ячеек переменных группировки.

Например, если Smoker является логическим вектором со значениями 0 для некурящих и 1 для курильщиков, затем указание массива ячеек {Gender,Smoker} делит наблюдения на четыре группы: Курильщик мужского пола, Некурящий мужского пола, Курильщик женского пола и Некурящий женского пола. grpstats возвращает сводную статистику только для комбинаций значений, существующих во входных переменных группировки (не все возможные комбинации).

Типы данных: single | double | logical | char | string | cell | categorical | datetime | duration

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'DataVars',[1,3,4],'Alpha',0.01 указывает, что сводная статистика рассчитывается для 1-й, 3-й и 4-й переменных в массиве наборов данных с 99% доверительными интервалами.

Уровень значимости для доверительных интервалов и интервалов прогнозирования, указанный как пара, разделенная запятыми, состоящая из 'Alpha' и скалярное значение в диапазоне (0,1).

При включении 'meanci' или 'predci' в whichstats, вы можете использовать Alpha чтобы указать уровень значимости для доверительных или прогнозируемых интервалов. Если задать значение α, то grpstats возвращает 100 × (1 - α)% доверительных или прогнозируемых интервалов.

Если не указано значение для Alpha, то grpstats возвращает 95% интервалов (α = 0,05).

Пример: 'Alpha',0.1

Типы данных: double

Имена или столбцы переменных, указывающие переменные во входных данных tbl вы хотите вычислить сводную статистику для, указанной как пара, разделенная запятыми, состоящая из 'DataVars' и строковый массив, клеточный массив символьных векторов, вектор положительных целых чисел или логический вектор. Используйте символьный вектор или строковый скаляр, чтобы указать имя переменной, положительное целое число, чтобы указать номер столбца переменной, или логические значения, чтобы указать, какие переменные включить (true если вы хотите вычислить сводную статистику, false в противном случае).

Необходимо указать DataVars при наличии переменных в tbl (кроме переменных группировки, указанных в groupvar), которые не являются числовыми или логическими массивами. Сводная статистика может рассчитываться только для переменных с числовым или логическим типом данных.

Пример: 'DataVars',{'Height','Weight'}

Типы данных: double | string | cell | char

Имена переменных для вывода statarray, указанная как пара, разделенная запятыми, состоящая из 'VarNames' и строковый массив или массив ячеек символьных векторов. По умолчанию grpstats создает имена выходных переменных путем добавления префикса к именам переменных из входных данных tbl. Этот префикс соответствует имени сводной статистики.

Пример: 'VarNames',{'Gender','GroupCount','MaleMean','FemaleMean'}

Типы данных: string | cell

Выходные аргументы

свернуть все

Сводная статистика группы, возвращенная в виде таблицы или массива наборов данных. Если tbl является таблицей, grpstats прибыль statarray в виде таблицы. Если tbl - массив наборов данных, grpstats прибыль statarray в виде массива наборов данных.

statarray содержит сводные статистические значения для групп данных в tbl определяется уровнями переменных группировки, определенными groupvar. Есть строка в statarray для каждого наблюдаемого значения или комбинации значений в переменных, указанных groupvar. Продукция statarray содержит:

  • Все переменные группировки, указанные groupvar.

  • Переменная GroupCount, содержащий количество наблюдений в каждой группе.

  • Группировать сводные статистические значения для всех переменных в tbl (кроме указанных groupvar) или только для переменных, указанных с помощью DataVars.

Общее число переменных в statarray является ngroupvars + 1 + ndatavars × nstats, где ngroupvars - количество переменных вgroupvar, ndatavars - количество переменных, для которых вычисляется сводная статистика, а nstats - количество типов сводной статистики, указанных в whichstats.

grpstats присваивает имена по умолчанию переменным в statarray, если имена переменных не указаны с помощью аргумента пара имя-значение VarNames.

Групповое значение для групп данных в векторе или матрице X определяется уровнями group, возвращается в виде массива ngroups-by-ncols. Здесь ngroups - количество уникальных значений в переменной группирования, ncols - количество столбцов в X. Если X является вектором, то means является вектором-столбцом.

Сводная статистика групп данных в векторе или матрице X определяется уровнями group, возвращенные как массивы ngroups-by-ncols. Здесь ngroups - количество уникальных значений в переменной группирования, ncols - количество столбцов в X. Необходимо указать выходной аргумент для каждого типа сводной статистики, указанного в whichstats.

Если тип сводной статистики в whichstats возвращает значение длины nvals (например, доверительный интервал является описательной статистикой длины 2), затем соответствующим выходным аргументом является массив ngroups-by-ncols-by-nvals.

Алгоритмы

  • grpstats удовольствия NaNs как отсутствующие значения и удаляет их из входных данных перед вычислением суммарной статистики.

  • grpstats игнорирует пустые имена групп.

Альтернативная функциональность

MATLAB ® включает функцию groupsummary, который также возвращает сводки групп и рекомендуется при работе с таблицей.

Расширенные возможности

Представлен до R2006a