Main Content

histcounts

히스토그램 Bin 도수

설명

예제

[N,edges] = histcounts(X)X 값을 Bin으로 분할하고 Bin 도수와 Bin 경계값을 반환합니다. histcounts 함수는 자동 비닝(Binning) 알고리즘을 사용합니다. 이 알고리즘은 X에 있는 요소의 범위를 포괄하고 분포의 기본 형태를 표시하도록 선택된, 균일한 Bin을 반환합니다.

예제

[N,edges] = histcounts(X,nbins)는 스칼라 nbins로 지정된 Bin의 개수를 사용합니다.

예제

[N,edges] = histcounts(X,edges)X를 벡터 edges로 지정된 Bin 경계값을 갖는 Bin으로 분류합니다.

예제

[N,edges,bin] = histcounts(___)는 위에 열거된 구문을 사용하여 인덱스 배열 bin을 반환합니다. binX와 동일한 크기의 배열이며, 이 배열의 요소는 X의 대응하는 요소에 대한 Bin 인덱스입니다. k번째 Bin의 요소 개수는 nnz(bin==k)이며, N(k)와 동일합니다.

예제

N = histcounts(C)(여기서 C는 categorical형 배열임)는 벡터 N을 반환합니다. 이 벡터는 C에서 C의 각 범주와 일치하는 값을 가지는 요소의 개수를 나타냅니다. NC의 각 범주에 대해 하나의 요소를 가집니다.

N = histcounts(C,Categories)C에서 Categories로 지정된 범주의 서브셋과 일치하는 값을 가지는 요소의 개수만 계산합니다.

예제

[N,Categories] = histcounts(___)는 categorical형 배열에 대해 위에 열거된 구문에 사용 시 N의 각 도수에 해당하는 범주도 반환합니다.

예제

[___] = histcounts(___,Name,Value)는 하나 이상의 이름-값 인수를 사용하여 추가 파라미터를 지정합니다. 예를 들어, 숫자형 데이터에 대해 BinWidth를 스칼라로 지정하여 Bin의 너비를 조정할 수 있습니다.

예제

모두 축소

100개의 난수 값을 Bin에 분포시킵니다. histcounts는 데이터의 기본 분포를 나타내는 데 적합한 Bin 너비를 자동으로 선택합니다.

X = randn(100,1);
[N,edges] = histcounts(X)
N = 1×7

     2    17    28    32    16     3     2

edges = 1×8

    -3    -2    -1     0     1     2     3     4

10개의 숫자를 균일한 간격의 6개 Bin에 분포시킵니다.

X = [2 3 5 7 11 13 17 19 23 29];
[N,edges] = histcounts(X,6)
N = 1×6

     2     2     2     2     1     1

edges = 1×7

         0    4.9000    9.8000   14.7000   19.6000   24.5000   29.4000

1,000개의 난수를 Bin에 분포시킵니다. 벡터를 사용하여 Bin 경계값을 정의합니다. 여기서 첫 번째 요소는 첫 번째 Bin의 왼쪽 경계값이고, 마지막 요소는 마지막 Bin의 오른쪽 경계값입니다.

X = randn(1000,1);
edges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5];
N = histcounts(X,edges)
N = 1×10

     0    24   149   142   195   200   154   111    25     0

100보다 작은 모든 소수를 Bin에 분포시킵니다. 'Normalization''probability'로 지정하여, sum(N)1이 되도록 Bin 도수를 정규화합니다. 즉, 각 Bin 도수는 한 관측값이 해당 Bin에 속할 확률을 나타냅니다.

X = primes(100);
[N,edges] = histcounts(X, 'Normalization', 'probability')
N = 1×4

    0.4000    0.2800    0.2800    0.0400

edges = 1×5

     0    30    60    90   120

-5와 5 사이의 임의의 정수 100개를 Bin에 분포시키고 'BinMethod''integers'로 지정하여 정수의 중앙에 위치하는 동일 너비 Bin을 사용합니다. histcounts에 대한 세 번째 출력값을 지정하여 데이터의 Bin 인덱스를 나타내는 벡터를 반환합니다.

X = randi([-5,5],100,1);
[N,edges,bin] = histcounts(X,'BinMethod','integers');

Bin 인덱스 벡터 bin에서 숫자 3이 나오는 횟수를 세어 세 번째 Bin의 Bin 도수를 구합니다. 결과는 N(3)과 동일합니다.

count = nnz(bin==3)
count = 8

투표 항목을 나타내는 categorical형 벡터를 생성합니다. 벡터의 범주는 'yes', 'no', 'undecided'입니다.

A = [0 0 1 1 1 0 0 0 0 NaN NaN 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1];
C = categorical(A,[1 0 NaN],{'yes','no','undecided'})
C = 1x27 categorical
     no      no      yes      yes      yes      no      no      no      no      undecided      undecided      yes      no      no      no      yes      no      yes      no      yes      no      no      no      yes      yes      yes      yes 

각 범주에 포함되는 요소의 개수를 확인합니다.

[N,Categories] = histcounts(C)
N = 1×3

    11    14     2

Categories = 1x3 cell
    {'yes'}    {'no'}    {'undecided'}

입력 인수

모두 축소

Bin 사이에 분포시킬 데이터로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. X가 벡터가 아닌 경우, histcounts는 이를 단일 열 벡터 X(:)으로 처리합니다.

histcounts는 모든 NaN 값을 무시합니다. 마찬가지로, Bin 경계값이 Inf 또는 -Inf를 명시적으로 Bin 경계값으로 지정하지 않는 한 histcountsInf 값과 -Inf 값을 무시합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration

categorical형 데이터로, categorical형 배열로 지정됩니다. histcounts는 정의되지 않은 categorical형 값을 무시합니다.

데이터형: categorical

Bin 개수로, 양의 정수로 지정됩니다. nbins를 지정하지 않으면 histcountsX의 값을 기반으로 하여 사용할 Bin의 개수를 자동으로 계산합니다.

예: [N,edges] = histcounts(X,15)는 15개의 Bin을 사용합니다.

Bin 경계값으로, 벡터로 지정됩니다. 벡터의 첫 번째 요소는 첫 번째 Bin의 앞쪽 경계값을 지정합니다. 마지막 요소는 마지막 Bin의 뒤쪽 경계값을 지정합니다. 뒤쪽 경계값은 마지막 Bin에 대해서만 포함됩니다.

datetime형 데이터와 duration형 데이터의 경우, edges는 단조 증가(Monotonically Increasing)하는 순서의 datetime형 벡터 또는 duration형 벡터여야 합니다.

도수에 포함되는 범주로, string형 벡터, 문자형 벡터로 구성된 셀형 벡터, pattern 스칼라 또는 categorical형 벡터로 지정됩니다. 기본적으로 histcounts는 categorical형 배열 C의 각 범주에 대해 Bin을 사용합니다. 범주의 고유한 서브셋을 대신 지정하려면 Categories를 사용하십시오.

예: h = histcounts(C,["Large","Small"])은 범주 LargeSmall의 categorical형 데이터 개수만 계산합니다.

예: h = histcounts(C,"Y" + wildcardPattern)은 모든 범주에서 이름이 문자 Y로 시작하는 categorical형 데이터의 개수를 셉니다.

데이터형: string | cell | pattern | categorical

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: [N,edges] = histcounts(X,'Normalization','probability')sum(N)이 1이 되도록 N의 Bin 도수를 정규화합니다.

Bin 너비로, 양의 스칼라로 지정됩니다. BinWidth를 지정할 경우 histcounts 함수는 최대 65,536개(즉, 216)의 Bin을 사용할 수 있습니다. 지정된 Bin 너비에 더 많은 Bin이 필요할 경우 histcounts 함수는 최대 Bin 개수에 해당하는 더 큰 Bin 너비를 사용합니다.

  • datetime형 데이터와 duration형 데이터의 경우, BinWidth는 duration형 스칼라 또는 calendarDuration형 스칼라일 수 있습니다.

  • BinWidthBinMethod, NumBins 또는 BinEdges와 함께 지정할 경우 histcounts 함수는 마지막 파라미터만 적용합니다.

  • 이 옵션은 categorical형 데이터에 적용되지 않습니다.

예: histcounts(X,'BinWidth',5)는 너비가 5인 Bin을 사용합니다.

Bin의 경계값으로, 숫자형 벡터로 지정됩니다. 첫 번째 요소는 첫 번째 Bin의 앞쪽 경계값을 지정합니다. 마지막 요소는 마지막 Bin의 뒤쪽 경계값을 지정합니다. 뒤쪽 경계값은 마지막 Bin에 대해서만 포함됩니다.

Bin 경계값을 지정하지 않으면 histcounts 함수가 자동으로 Bin 경계값을 지정합니다.

  • BinEdgesBinMethod, BinWidth, NumBins 또는 BinLimits와 함께 지정할 경우 histcounts 함수는 BinEdges만 적용하므로 BinEdges를 마지막에 지정해야 합니다.

  • 이 옵션은 categorical형 데이터에 적용되지 않습니다.

Bin 제한으로, 요소를 2개 가진 벡터 [bmin,bmax]로 지정됩니다. 첫 번째 요소는 첫 번째 Bin 경계값을 나타냅니다. 두 번째 요소는 마지막 Bin 경계값을 나타냅니다.

이 옵션은 Bin 제한 값(X>=bmin & X<=bmax) 내에 있는 데이터만 사용하여 계산합니다.

이 옵션은 categorical형 데이터에 적용되지 않습니다.

예: histcounts(X,'BinLimits',[1,10])110(구간의 끝점 포함) 사이에 있는 X의 값만 비닝합니다.

비닝 알고리즘으로, 다음 표에 있는 값 중 하나로 지정됩니다.

설명

'auto'

디폴트 'auto' 알고리즘은 데이터 범위를 포괄하고 기본 분포의 형태를 표시할 수 있는 Bin 너비를 선택합니다.

'scott'

스콧의 법칙(Scott's Rule)은 데이터가 정규분포에 가까운 경우 가장 적합합니다. 이 법칙은 대부분의 다른 분포에도 적합합니다. 이 법칙은 Bin 너비로 3.5*std(X(:))*numel(X)^(-1/3)을 사용합니다.

'fd'

프리드만-다이아코니스 법칙(Freedman-Diaconis Rule)은 데이터의 이상값에 덜 민감하며, 두꺼운 꼬리 분포의 데이터에 더 적합할 수 있습니다. 이 법칙은 Bin 너비로 2*iqr(X(:))*numel(X)^(-1/3)을 사용합니다.

'integers'

정수 규칙은 각 정수에 대해 Bin을 생성하므로 정수 데이터에 유용합니다. 이 규칙은 Bin 너비로 1을 사용하며, 정수 사이의 중간 위치에 Bin 경계값을 배치합니다.

잘못하여 너무 많은 Bin을 생성하지 않으려면 이 규칙을 사용하여 65536개의 Bin 제한(216)을 생성할 수 있습니다. 데이터 범위가 65536보다 큰 경우 정수 규칙은 대신 더 넓은 Bin을 사용합니다.

'integers'는 datetime형 데이터나 duration형 데이터를 지원하지 않습니다.

'sturges'

스터지스의 법칙(Sturges' Rule)은 간단하기 때문에 많이 사용됩니다. 이 법칙은 Bin 개수를 ceil(1 + log2(numel(X)))개로 선택합니다.

'sqrt'

제곱근 규칙은 타 소프트웨어 패키지에서 널리 사용됩니다. 이 법칙은 Bin 개수를 ceil(sqrt(numel(X)))개로 선택합니다.

histcounts 함수는 이러한 식을 정확히 그대로 사용하는 대신 Bin 경계값이 "적절한" 숫자가 되도록 Bin 개수를 약간 조정합니다.

datetime형 데이터나 duration형 데이터의 경우, 비닝 알고리즘을 다음 시간 단위 중 하나로 지정하십시오.

설명데이터형
"second"

각 Bin은 1초입니다.

datetimeduration
"minute"

각 Bin은 1분입니다.

datetimeduration
"hour"

각 Bin은 1시간입니다.

datetimeduration
"day"

각 Bin은 달력상의 1일입니다. 이 값은 일광 절약 시간제 변동을 고려합니다.

datetimeduration
"week"각 Bin은 달력상의 1주일입니다.datetime
"month"각 Bin은 달력상의 1개월입니다.datetime
"quarter"각 Bin은 달력상의 1사분기입니다.datetime
"year"

각 Bin은 달력상의 1년입니다. 이 값은 윤일을 고려합니다.

datetimeduration
"decade"각 Bin은 10년(달력상의 10년)입니다.datetime
"century"각 Bin은 1세기(달력상의 100년)입니다.datetime

  • datetime형 데이터나 duration형 데이터에 대해 BinMethod를 지정할 경우 histcounts 함수는 최대 65,536개(즉, 216)의 Bin을 사용할 수 있습니다. 지정된 Bin 기간에 더 많은 Bin이 필요할 경우 histcounts 함수는 최대 Bin 개수에 해당하는 더 큰 Bin 너비를 사용합니다.

  • BinLimits, NumBins, BinEdges 또는 BinWidth를 지정하면 BinMethod'manual'로 설정됩니다.

  • BinMethodBinWidth, NumBins 또는 BinEdges와 함께 지정할 경우 histcounts 함수는 마지막 파라미터만 적용합니다.

  • 이 옵션은 categorical형 데이터에 적용되지 않습니다.

예: histcounts(X,'BinMethod','integers')는 Bin을 정수의 중앙에 맞춥니다.

정규화 유형으로, 다음 표에 있는 값 중 하나로 지정됩니다. i는 Bin이며, i에 대해 다음과 같습니다.

  • vi는 Bin의 값입니다.

  • ci는 Bin의 요소 개수입니다.

  • wi는 Bin의 너비입니다.

  • N은 입력 데이터의 요소 개수입니다. 데이터에 누락값(예: NaN)이 포함되어 있거나 데이터의 일부가 Bin 제한을 벗어나는 경우 이 값은 비닝(Binning)된 데이터보다 클 수 있습니다.

Bin 값참고
'count'(디폴트 값)

vi=ci

  • 관측값의 도수 또는 빈도입니다.

  • Bin 값의 합은 최대 numel(X)이며, categorical형 데이터인 경우에는 최대 sum(ismember(X(:),'Categories'))입니다. 일부 입력 데이터가 Bin에 포함되지 않는 경우에만 합이 이보다 작습니다.

'probability'

vi=ciN

  • 상대 확률입니다.

  • 입력 데이터에 있는 요소의 총 개수에 대한 개별 Bin 요소의 개수는 최대 1입니다.

'percentage'

vi=100*ciN

  • 상대 백분율입니다.

  • 각 Bin에 있는 요소의 백분율은 최대 100입니다.

'countdensity'

vi=ciwi

  • Bin의 너비를 기준으로 스케일링한 도수 또는 빈도입니다.

  • categorical형 데이터의 경우, 이는 'count'와 동일합니다.

  • 'countdensity'datetime형 또는 duration형 데이터를 지원하지 않습니다.

  • 모든 Bin 면적의 합은 최대 numel(X)입니다.

'cumcount'

vi=j=1icj

  • 누적 도수, 즉 각 Bin과 이전의 모든 Bin의 관측값 개수입니다.

  • N(end)는 최대 numel(X)이며, categorical형 데이터인 경우에는 최대 sum(ismember(X(:),'Categories'))입니다.

'pdf'

vi=ciNwi

  • 확률 밀도 함수 추정값입니다.

  • categorical형 데이터의 경우 이는 'probability'와 같습니다.

  • 'pdf'datetime형 또는 duration형 데이터를 지원하지 않습니다.

  • 모든 Bin 면적의 합은 최대 1입니다.

'cdf'

vi=j=1icjN

  • 누적 분포 함수 추정값입니다.

  • 각 Bin의 도수는 Bin과 이전의 모든 Bin의 관측값의 누적 상대 수와 같습니다.

  • N(end)는 최대 1입니다.

예: histcounts(X,'Normalization','pdf')는 확률 밀도 함수의 추정값을 사용하여 데이터를 비닝합니다.

Bin 개수로, 양의 정수로 지정됩니다. NumBins를 지정하지 않으면 histcounts 함수는 입력 데이터를 기반으로 하여 사용할 Bin의 개수를 자동으로 계산합니다.

  • NumBinsBinMethod, BinWidth 또는 BinEdges와 함께 지정할 경우 histcounts 함수는 마지막 파라미터만 적용합니다.

  • 이 옵션은 categorical형 데이터에 적용되지 않습니다.

출력 인수

모두 축소

Bin 도수로, 행 벡터로 반환됩니다.

Bin 경계값으로, 벡터로 반환됩니다. 첫 번째 요소는 첫 번째 Bin의 앞쪽 경계값입니다. 마지막 요소는 마지막 Bin의 뒤쪽 경계값입니다.

Bin 인덱스로, X와 동일한 크기의 배열로 반환됩니다. bin의 각 요소는 X의 해당하는 요소가 어떤 번호의 Bin에 포함되는지를 설명합니다.

bin에서 값 0은 어느 Bin에도 속하지 않는 요소를 나타냅니다(예: NaN 값).

도수에 포함되는 범주로, 문자형 벡터로 구성된 셀형 벡터로 반환됩니다. CategoriesN의 각 도수에 대응하는 범주를 C에 포함합니다.

  • histcountsdiscretize 함수와 유사하게 동작합니다. 각 Bin의 요소 개수를 구하려면 histcounts를 사용해야 합니다. 반면, 각 요소가 속해 있는 Bin을 찾으려면(요소 개수는 세지 않음) discretize를 사용해야 합니다.

확장 기능

버전 내역

R2014b에 개발됨

모두 확장