grpstats

Итоговая статистика организована группой

Синтаксис

statarray = grpstats(tbl,groupvar)
statarray = grpstats(tbl,groupvar,whichstats)
statarray = grpstats(tbl,groupvar,whichstats,Name,Value)
means = grpstats(X,group)
[stats1,...,statsN] = grpstats(X,group,whichstats)
[stats1,...,statsN] = grpstats(X,group,whichstats,'Alpha',alpha)
grpstats(X,group,alpha)

Описание

пример

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 array
    {'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 array
    {'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')

Загрузите выборочные данные.

load('carsmall')

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

Постройте среднее ускорение, сгруппированное Cylinders, с 95% доверительных интервалов.

grpstats(Acceleration,Cylinders,0.05)

ans = 3×1

   16.6706
   16.4765
   11.6406

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

Постройте среднее ускорение и вес, сгруппированный Cylinders, и 95% доверительных интервалов. Масштабируйте значения Weight 1 000, таким образом, средние значения Weight и Acceleration являются тем же порядком величины.

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

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)

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 цилиндрами, сделанных в 1 976, является значительно более крупным, чем среднее ускорение автомобилей с 8 цилиндрами, сделанных в 1 970.

Входные параметры

свернуть все

Входные данные, заданные как таблица или массив набора данных. 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'Рассчитайте, или номер, non-NaN элементов
'gname'Название группы
'std'Стандартное отклонение
'var'Дисперсия
'min'Минимум
'max'Максимум
'range'Область значений
'meanci'95%-й доверительный интервал для среднего значения
'predci'95%-й интервал прогноза для нового наблюдения

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

Можно задать различные уровни значения для 'meanci' и опций 'predci' с помощью аргумента пары "имя-значение", Alpha.

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

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

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

Для функций, которые не вычисляют постолбцовую статистику, задайте направление вычисления при определении функции.

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

Уровень значения, заданный как скалярное значение в области значений (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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 (например, доверительный интервал является описательной статистической величиной длины два), то соответствующим выходным аргументом является ngroups-by-ncols-by-nvals массив.

Алгоритмы

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

  • grpstats игнорирует пустые названия группы.

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

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