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 object. The axes object 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 object. The axes object 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 значения 1 000 так средние значения Weight и Acceleration тот же порядок величины.

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

Figure contains an axes object. The axes object 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 object. The axes object 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 цилиндрами, сделанных в 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%-й доверительный интервал для среднего значения. Можно задать различные уровни значения с помощью Alpha аргумент пары "имя-значение".
    'predci'95%-й интервал предсказания для нового наблюдения. Можно задать различные уровни значения с помощью Alpha аргумент пары "имя-значение".

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

    • Если функция принимает столбец данных, то функция может возвратить или скалярное значение или nvals-by-1 вектор-столбец для описательной статистики длины nvals (например, доверительный интервал имеет длину два). Если функция принимает матрицу, функция должна возвратить или 1 ncols вектором-строкой или nvals-by-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 или вектора длительности, массива строк или массива ячеек из символьных векторов. Каждое уникальное значение в сгруппированной переменной задает группу. 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 имя аргумента и 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 обработки NaNs как отсутствующие значения, и удаляет их из входных данных прежде, чем вычислить итоговую статистику.

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

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

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

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

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