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 Nonsmoker (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 или вектор длительности, строковые массивы или массив ячеек векторов символов.

Для примера рассмотрим вход таблицу 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 вызывает указатель на функцию (даже если выход для некоторых групп пуст).

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

    • Для функций, которые не вычисляют столбчатую статистику, задайте направление расчета с заданием функции. Для примера использовать sum function, задайте указатель на функцию следующим @(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 или вектор длительности, строковые массивы или массив ячеек из векторов символов. Каждое уникальное значение в сгруппированной переменной задает группу. 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-й переменных в массиве набора данных с доверия интервалами.

Уровень значимости для интервалов доверия и предсказания, заданный как разделенная разделенными запятой парами, состоящая из '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.

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

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

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

Алгоритмы

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

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

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

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

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

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