'히스토그램'에 해당되는 글 5건

  1. 2015.09.24 OpenCV 이미지 유사도 비교 #2 - 히스토그램 비교 (7)
  2. 2015.08.06 R 데이터셋 처리 함수들에 대한 간단한 정리~
  3. 2015.08.04 OpenCV를 활용한 이미지 유사도 비교 방법~ (1)
  4. 2013.08.12 Nonparametric Method - 평균/분산을 모를때 확률분포를 만드는 방법
  5. 2012.12.14 통계를 왜 배워야 하는가?

OpenCV 이미지 유사도 비교 #2 - 히스토그램 비교

|



OpenCV를 활용한 이미지의 유사도 비교에서 먼저 피처 매칭을 살펴봤다. 

오늘은 히스토그램 비교를 알아보도록 하자. 


히스토그램은 매개변수에 따라 Correlation, Chi-square, Intersection, Bhattacharyya 각각의 결과값을 가질 수 있다. 

그래서 중요한 부분이 각각의 결과값을 어떻게 해석하는 것이다. 

Correlation과 Intersection은 값이 클수록 유사한 것이고, 

Chi-square와 Bhattacharyya는 값이 작을수록 유사한 것으로 판단한다. 


Comparing Histogram

먼저 전체 소스를 살펴보면 다음과 같다. 

마찬가지로 C로 구현되어 있는 Histogram 소스를 자바로 변환한 것이다. 


여기에서도 중요한 부분이 102~105번째 줄에 있는 유사성을 판단할 값이다. 

몇 번의 테스트를 통해서 대략적으로 값을 설정했지만, 좀 더 정교하게 다듬을 필요가 있다. 


히스토그램 방식에서는 4개의 결과값을 자체 기준으로 비교해서 세 개 이상이 적합할  때 

두 이미지가 유사한 것으로 판단하는 형태로 코딩을 했다. 


이런 조건들은 자유롭게 변경하면서 테스트하면 좋을 듯 하다. 


Histogram Test

피처 매칭과 동일하게 아이폰 이미지를 가지고 테스트를 해 봤다. 



먼저 동일한 이미지인 iphone1.jpeg를 비교하면 다음과 같이 동일하다고 나온다. 


이번에는 거의 비슷해 보이는 iphone1.jpeg와 iphone2.jpeg를 비교해보자. 

Chi-square를 제외한 나머지 세개가 조건을 충족해서 유사한 이미지로 판단했다. 


마지막으로 완전히 다른 iphone1.jpeg와 iphone3.jpeg를 비교해 보면 다음과 같다. 

Correlation과 Bhattacharyya이 조건을 만족했지만, 전체적으로 3개가 넘지 않아서 다르다고 판단했다. 

히스토그램을 사용하면 조건에 따라 오판하는 경우도 종종 있을 것으로 보인다. 

하지만, 이런 형태로 히스토그램을 사용할 수 있다는 것을 알아 두면 좋겠다. 


잠시 이미지 유사도 비교를 할 필요가 있어 OpenCV를 테스트를 해봤다. 

OpenCV가 실시간 이미지 프로세싱을 위한 라이브러리여서 이미지 유사도에 최적화되어 있지는 않지만, 

이런 형태로 활용할 수 있다는 점을 참고했으면 한다. 


OpenCV 더보기..

OpenCV를 활용한 이미지 유사도 비교 방법~

OpenCV 설치 및 자바 이클립스 환경 설정~

OpenCV 자바 이클립스에서의 프로그래밍 시작하기~

OpenCV 이미지 유사도 비교 #1 - 피처 매칭

OpenCV 이미지 유사도 비교 #2 - 히스토그램 비교





Trackback 0 And Comment 7
  1. 2015.09.25 15:05 address edit & del reply

    비밀댓글입니다

    • 미니~ 2015.09.25 23:53 신고 address edit & del

      문의한 부분은 저도 사용해보지 않은 것이네요 ㅠㅠ

  2. 한가위 2015.09.27 09:39 address edit & del reply

    미니님 답변감사합니다 .
    말씀해주신 답변을 토대로 공부해보겠습니다

    • 미니~ 2015.09.29 18:49 신고 address edit & del

      한가위인데도 열심히 하시네요. ^^
      꼭 해결하시길 바랄께요~~

  3. 2015.10.10 23:26 address edit & del reply

    비밀댓글입니다

    • 미니~ 2015.09.25 23:52 신고 address edit & del

      직접 해보지는 않았지만 다음 글을 참고하면 x, y 좌표를 구할 수 있지 않을까 합니다.

      http://stackoverflow.com/questions/8436647/opencv-getting-pixel-coordinates-from-feature-matching

      위 글의 답변을 그대로 옮겨봅니다.
      The DMatch class gives you the distance between the two matching KeyPoints (train and query). So, the best pairs detected should have the smallest distance. The tutorial grabs all matches that are less than 2*(minimum pair distance) and considers those the best.

      So, to get the (x, y) coordinates of the best matches. You should use the good_matches (which is a list of DMatch objects) to look up the corresponding indices from the two different KeyPoint vectors (keypoints_1 and keypoints_2). Something like:

      for(size_t i = 0; i < good_matches.size(); i++)
      {
      Point2f point1 = keypoints_1[good_matches[i].queryIdx].pt;
      Point2f point2 = keypoints_2[good_matches[i].trainIdx].pt;
      // do something with the best points...
      }

  4. Lll 2019.08.19 18:30 address edit & del reply

    C언어로 된 소스 볼 수 있을까요?

R 데이터셋 처리 함수들에 대한 간단한 정리~

|



R을 활용하면 다양한 데이터셋을 data.frame으로 읽어서 많은 작업을 할 수 있다. 

어떤 작업들이 가능한지 R에서 데이터셋을 처리하는 함수를 중심으로 살펴보기로 하자. 


Motor Trend Car Load Test

예제로 사용할 데이터셋은 R에 내장되어 있는 mtcars이다. 

이 데이터는 1974년 Motor Trend US magazine에서 추출한 것으로 1973년, 1974년 모델의 32개 자동차들의 디자인과 성능을 비교한 것이다. 

help 명령어로 데이터 포맷 등을 먼저 살펴보기 바란다. 

> help(mtcars)


데이터셋의 정보 확인 

먼저 mtcars 데이터를 가져와 보자. 

데이터셋을 가져오기 위해서 간략하게 data() 함수를 호출하면 된다. 

> data(mtcars)


32개의 자동차의 성능비교 데이터를 제대로 불러왔는지 다음과 같이 확인한다. 

> mtcars


head()

경우에 따라서는 대량의 데이터셋을 읽어오는 경우가 있다. 

이때는 다음과 같이 head 함수를 사용해서 앞부분의 일부만 읽어올 수 있다.  


str()

str은 자바에서 주로 사용하는 String 관련 함수가 아니라 R 객체의 구조(Structure)를 보여주는 함수이다. 

mtcars는 data.frame이고 11개의 변수에 32개의 데이터가 있다는 것을 보여주고, 

각각의 변수들의 타입과 일부 데이터를 다음과 같이 출력한다. 


summary()

summary는 데이터에 대한 요약 정보를 나타내는데, 

숫자인 경우 최소값, 최대값, 산술평균, 중앙값, 하한 사분위수, 상한 사분위수를 다음과 같이 보여준다. 


중앙값에 대해서는 "평균에 대한 정리(mean, median, mode)"를 참고하고, 사분위수에 대해서는 "변이와 분포" 글을 참고하기 바란다. 


데이터셋의 특정 열 기준으로 작업하기 

데이터셋에서 특정 열을 가져오기 위해서는 $를 사용한다. 

mtcars 데이터에서 첫번째 열인 mpg(mile per gallon)를 가져오려면 다음과 같이 사용한다. 

> mtcars$mpg


 참고로 mpg는 1 갤론당 몇 마일을 갈 수 있는지를 나타내는 지표인데, US Gallon으로 표시되어 있으므로 약 3.8리터당 몇 마일을 가는지를 나타낸다. 

(1 갤론의 경우, 미국에서는 3.8리터에 해당하고, 영국, 캐나다 등 다른 나라에서는 4.5리터에 해당한다고 한다.)



stem()

stem은 "stem-and-Leaf Plots"라고 이야기하는데, 글자 그대로 줄기와 잎으로 재구성하는 방식이라고 할 수 있다. 

실제 분석할 때 유용하게 활용할 수 있는 함수인데 실제 예제를 통해서 이해해 보도록 하자. 


먼저 출력 데이터를 보면 | 가 있는데, 설명에 따르면 소수점(decimal point)을 기준으로 나눈 것을 알 수 있다. 

stem을 해석하려면 | 왼쪽의 데이터를 줄기로 보고, | 오른쪽 데이터를 잎으로 보면 된다. 

그래서 데이터 구성이 10.4, 10,4, 12.3, 14.3, 14.7, 14.0 .... 이런 형태로 되어 있다는 것이다. 


실제 동일한지 확인하기 위해서 mpg 열기준으로 정렬한 데이터를 보자. (정렬은 다음에 다룰 예정이다.)


10.4, 10.4는 일치하지만 13.3이 12.3으로 잘못 표시되어 있다. 15.0도 마찬가지로 14.0으로 해석된다. 

| 왼쪽의 stem 값을 보면 홀수값이 없이 짝수만 나와 있는 것을 알 수 있다. 

그래서 13은 12로 간주하고, 15는 14로 간주해서 보여주고 있다. 


hist()와 boxplot()

도수분포표를 그래프로 나타내는 히스토그램에 대해서 학창시절에 배운 기억이 있을 것이다. 

이 히스토그램을 그리는 함수가 hist이다. 


> hist(mtcars$mpg)


그리고 변이와 분포에서 설명한 "box and whisker diagram"을 boxplot으로 그릴 수 있다. 

> boxplot(mtcars$mpg)


fivenum()과 quantile()

fivenum은 5개의 숫자를 구하는데 사용한다. 최소값, 하한 사분위수, 중앙값, 상한 사분위수, 그리고 최대값을 나타내느데 사용한다. 

보통 Tukey Five-Number Summary라고 한다. 


qunatile도 유사하게 0%, 25%, 50%, 75%, 100%의 값을 나타낸다 


그러나 위 결과를 잘 살펴보면 25%에서 fivenum과 quantile의 값이 다른 것을 알 수 있다. 

fivenum은 우리가 알고 있는 사분위수를 구한 값이고, quantile은 확률적으로 균등하게 자른 개념이기 때문에 이런 차이가 발생할 수 있다. 


"본 글은 카톨릭의대 문건웅 교수님의 R 예제를 기반으로 작성했습니다."


미니의 R 주요 강좌...

데이터 통계 분석을 위한 R 설치와 활용

R 실행을 위한 기본적인 내용들~

R 데이터 구조에 대한 정리

R 패키지 설치하기

R 데이터셋 처리 함수들에 대한 간단한 정리~

R 데이터셋 정렬하기~

R 데이터셋의 일부 데이터 가져오기

R의 lapply, sapply, vapply를 이해하자~

R의 apply, tapply의 활용법을 알아보자~

R의 split 활용

R의 함수 작성 및 활용~

R 시뮬레이션 - 랜덤 변수 샘플링

R 함수에서 캐시 활용하기~

R 디버깅 툴 활용하기~





Trackback 0 And Comment 0

OpenCV를 활용한 이미지 유사도 비교 방법~

|



OpenCV는 인텔이 개발한 오픈소스 컴퓨터비전 C 라이브러리이다. 

실시간 이미지 프로세싱을 위한 라이브러리로 윈도우, 리눅스 등 여러 플랫폼에서 활용할 수 있다. 

원래 C 언어로 되어 있지만 최근에는 Java 언어로도 적용할 수 있고, 안드로이드 및 아이폰과 같은 모바일 환경도 지원한다. 



다양한 이미지 프로세싱 알고리즘을 지원하기 때문에 

처음에는 두 이미지가 동일한지 비교하는 메소드 같은 것이 존재할 줄 알았다. 

그러나 두 이미지의 동일성을 OpenCV로 비교하는 것은 생각보다 쉽지 않았다. 


히스토그램 비교, 템플릿 매칭, 피처 매칭의 세 가지 방법이 있다고 하는데

각각의 방법으로 구현한 다음 많은 테스트를 통해 실제 어느 정도 값이 나오면 일치한다고 판단할지를 정해야 한다. 

이 부분은 다음 번 글에서 자바 기반의 소스와 함께 정리하면서 한번 더 논의해 보기로 한다. 


OpenCV를 활용한 이미지 비교와 관련해 위에서 언급한 세 가지 기술에 대해 살펴보도록 하자. 


Comparing histograms

히스토그램을 이용한 비교는 간단하면서 처리 속도가 빠른 방식으로 가장 오래된 방식이기도 하다. 

이 방식은 숲 이미지는 녹색 계열로 되어 있고, 바다는 청색 계열로 되어 있을 것이라는 아이디어에서 출발한다. 

그래서 숲과 관련된 두 장의 사진을 비교한다면, 두 이미지 모두 녹색을 많이 가지고 있기 때문에 히스토그램 사이에 유사성이 나타나게 된다. 


하지만 이 방식을 사용할 경우, 바나나와 노란색으로 이루어진 벤치를 같은 이미지로 착각하는 오류를 일으킬 수 있다. 

OpenCV 메소드는 compareHist()이며 C 언어 기반의 사용 예제는 여기를 참고하기 바란다. 

매개변수에 따라 Correlation, Chi-square, Intersection, Bhattacharyya 형태의 결과값을 제공한다. 


혹시 자바로 만든 예제를 원할 경우, OpenCV 이미지 유사도 비교 #1 - 피처 매칭 을 참고하기 바란다. 


Template matching

템플릿 매칭은 큰 이미지에서 주어진 작은 이미지가 존재하는지를 검색하는데 주로 사용한다.

아래 그림처럼 작은 이미지의 강아지가 큰 이미지에서 있는 부분(우측의 빨간색 사각형 부분)을 찾을 때 효과적이다. 


 

그러나 템플릿 매칭은 동일한 크기와 방향을 가진 똑같은 이미지를 가지고 검색할 때 좋은 결과가 나온다. 

즉, 서로 다른 이미지가 얼마나 유사한지를 확인하는 것은 쉽지 않다. 

OpenCV 메소드는 matchTemplate()이며, C 언어 기반의 사용 예제는 여기를 참고한다. 


Feature matching

피처 매칭은 개인적으로 이미지 유사성 비교를 할 때 가장 효과적인 방식이라고 본다. 

이미지로부터 수 많은 피처(feature)를 추출하는데, 해당 부분이 회전되거나, 확대/축소되거나, 찌그러져도 동일한 피처으로 인식하도록 보장한다. 

이런 방식으로 추출된 피처들을 다른 이미지의 피처셋과 비교하면서 유사성을 검사하게 된다. 

두 개의 이미지에서 추출한 피처들이 높은 비율로 일치한다면 동일한 또는 유사한 이미지로 볼 수 있다는 것이다.  



그러나 세가지 방식 중 가장 속도가 느리고, 완전히 정확하지는 않다는 단점이 있다. 

피처 매칭과 관련된 예제는 여기를 참고하면 된다. 


실제 피처 매칭을 적용하려고 해도 결과값을 수치화해서 유사하다고 판단할 수 있는 범위를 산정해야 한다. 

이를 위해서는 많은 테스트가 필요하지 않을까 한다. 


마찬가지로 자바로 만든 예제를 원할 경우, OpenCV 이미지 유사도 비교 #2 - 히스토그램 비교 을 참고하기 바란다. 


다음 글에서는 히스토그램과 피처 매칭을 자바로 구현한 다음 그 값의 범위를 정하는 것에 대해서 정리해 보려고 한다. 


OpenCV 더보기..

OpenCV를 활용한 이미지 유사도 비교 방법~

OpenCV 설치 및 자바 이클립스 환경 설정~

OpenCV 자바 이클립스에서의 프로그래밍 시작하기~

OpenCV 이미지 유사도 비교 #1 - 피처 매칭

OpenCV 이미지 유사도 비교 #2 - 히스토그램 비교





Trackback 0 And Comment 1
  1. 정원영 2015.11.12 15:59 address edit & del reply

    안녕하세요! 요새 OpenCV를 다시 써보고 있습니다. 예전에 학교에서 잠깐 실습했을 때,
    Feature매칭에서 A(작은),B(큰)를 비교할 때 A가 2개이상 B에 있을 경우엔 유일성에 실패하여 매칭이 안되는 이슈가 있었던 걸로 기억하는데..
    (예를들어 하트10카드에서 하트모양 찾기 등)
    유일성 검사 같은 방법으로 걸러낼 수가 있을까요? 좋은 글 감사합니다.

Nonparametric Method - 평균/분산을 모를때 확률분포를 만드는 방법

|



지금까지 살펴본 확률분포는 모두 평균이나 분산과 같은 매개변수들을 기반으로 확률분포를 정하게 됩니다. 

예를 들어, 정규분포(Normal Distribution)에서는 평균과 분산을 알고서 확률분포를 구하게 되죠.. 



그런데 만약 평균과 분산과 같은 매개변수를 모를 경우, 확률 분포를 어떻게 알 수 있을까요?

특히 정규분포와 달리 여러개의 봉으로 이루어진 데이터라면, 기존의 방식으로 확률 분포를 알수는 없을 겁니다. 

이렇게 매개변수가 없을 때, 확률 분포를 구하는 방법을 Nonparamtric Method라고 합니다. 

(보통 비모수적 방법이라고 이야기 하는 것 같습니다.)


Nonparametric Method는 보통 Histogram, Kernel Density, Nearest Neighbour 세가지가 있는데요. 

각각에 대해서 간략하게 정리해보도록 하겠습니다. 


Histogram Density Model

히스토그램은 많이 들어봤을 겁니다. 

막대그래프와 달리 각 영역이 붙어 있는 것이 특징인데요. 

바로 이 영역의 넓이를 Δ라고 하는데, 이 Δ값에 따라서 확률 분포가 결정되게 됩니다.



위 그림과 같이 초록색과 같은 데이터 분포에 대해, 히스토그램을 그려보면 Δ값에 따라 다르게 나타나는 것을 알 수 있습니다. 

원래 데이터는 봉이 두개인 그래프인데요.. 

Δ값이 너무 작거나 너무 크면 해당 그래프의 모습을 반영하지 못하고 있습니다. 

위 그림에서는 Δ값이 0.08일때, 적절하게 확률 분포를 나타내 주고 있는 것을 알 수 있습니다. 

이와같이 적절한 Δ의 값을 결정하는 것은 Histogram Density Model에서는 중요한 부분이라 할 수 있습니다. 


하지만 히스토그램은 빠르고 쉽게 그릴 수 있다는 장점이 있지만 다음과 같은 문제점도 가지고 있습니다. 

먼저 경계값에 데이터가 몰려 있을 경우, 제대로 확률분포를 만들어 내지 못할 수 있습니다. 

그리고 예전에 Curve Fitting에서 Dimension의 저주라고 이야기한 것처럼, 차원이 늘어날 수록 문제가 발생하게 됩니다. 

(2013/04/22 - [Cloud&BigData/Machine Learing] - Curve Fitting으로 살펴보는 Frequentest와 Bayesian Treatment)


이러한 문제를 해결하기 위해 Kernel density나 Nearest neighbour 를 사용하게 됩니다. 


Kernel Density Estimators

Kernel Density는 히스토그램의 경계 문제를 해결한 것인데요. 

어떤 값 x가 R이라고 하는 영역에 들어갈 확률을 P라고 하면 다음과 같이 나타낼 수 있습니다. 



이때 전체 N 중에서 K개가 R에 들어갈 확률을 P라고 하면, 앞서 배운 Binomial Distribution이 되고 기대값은 다음과 같이 나타낼 수 있습니다. 



만약 N이 상당히 크다고 가정하면 다음과 같이 이야기할 수 있습니다. 


 

또한 전체 확률 P는 개별적인 확률인 p(x)와 R의 볼륨을 V라고 하면 둘의 곱으로 나타낼 수 있습니다. 



위 두 식을 결합하면 다음과 같이 p(x)를 나타낼 수 있습니다. 



여기에서 K를 고정해놓고 V값을 결정해서 확률분포를 알아내는 것이 K-nearest-neighbour 방식이고, 

V를 고정해 놓은 상태에서 K값을 결정해서 확률분포를 만드는 것을 Kernel 방식이라고 합니다. 


Kernel 방식에서 K값을 결정하기 위해서 다음과 같은 수식을 사용합니다. 

Xn이 X를 중심으로 h라는 큐브 영역에 들어가는지 확인하는 것입니다. 

이러한 Kernel function을 Parzen window라고 한다네요.. 



이 식을 위 p(x)를 구하는 곳에 대입하면 다음과 같습니다. 

V를 hD로 표시해서 점 하나가 아닌 전체를 고려한 것이라고 보면 됩니다. 



원래 목적이었던 경계값 측면에서 보면 이 식도 h라는 영역에 들어가면 1, 아니면 0이 되므로 약간 보정할 필요가 있습니다. 

만약 정규분포와 같은 수식을 활용하면 경계값에 들어가느냐 아니냐를 판단하기 보다 얼마나 가까운지로 결정할 수 있으므로 

히스토그램의 경계값 문제를 어느정도 해결한다고 생각해도 됩니다. 

정규분포의 수식으로 대체한 것은 너무 복잡하니 생략할 께요. 


히스토그램이 Δ값에 영향을 받은 것처럼, Kernel 방식도 h 값에 의해 Fitting이 다음과 같이 달라집니다. 



Nearest-neighbour methods

이름 그대로 가까운 것을 찾아서 확률분포를 구성하는 것입니다. 

앞의 식에서 K를 정해놓고 V(volumn)을 늘려가면서 결정하는 방식이 바로 Nearest-neighbour 입니다. 

쉽게 설명하면 점 x가 있는데, 주위에 K/3가 빨간점이고 2K/3가 파란점이라면 x를 파란점으로 판단하는 것이죠. 

이럴 경우, K가 바로 영역의 크기를 나타내게 되는데요.. 

K를 어떻게 고정하느냐에 따라서 판단 영역의 차이가 발생하게 됩니다. 


 

x가 주어졌을 때, 클래스에 속할 확률을 구하는 것은 베이즈 정리를 잘 활용하면 되겠죠. 

이 부분은 이전의 의사결정이론에서도 한번 다뤘기 때문에 해당 내용을 참고해 보기 바랍니다. 


실제로 K값에 따른 확률분포를 구성하면 다음과 같습니다. 






Trackback 0 And Comment 0

통계를 왜 배워야 하는가?

|



미분적분, 수치해석, 확률통계~ 고등학교 때부터 대학교 초기까지 배웠던 통계 관련 과목들입니다. 

그동안 별로 관심을 가지지 않고 지냈었는데.. 최근 프로젝트와 맞물려서 다시 공부를 해야 겠다는 생각을 했네요. 

역시 사람은 뭐든지 필요할 때가 되어야 비로소 진정한 의미를 알고 다시 시작하는 건가 봅니다. ^^


앞으로 꾸준히 통계 부분에 대해서는 공부를 하면서 가끔 정리해 볼 계획입니다. 

제가 뭐 통계학자도 아니고, 수학을 전공한 사람도 아니기에 제가 이해하는 수준에서 나중에 참고할 수 있도록 부담없이 정리하려고 합니다. 

혹시 제가 잘못 이해하고 있는 것을 본 전문가들은 가감없이 댓글 달아주시면 좋겠습니다. 


통계의 중요성

먼저 통계가 무엇인지부터 정리를 해야 할 것 같네요. 

Head First Statistics 책을 보면 다음과 같이 나와 있습니다. (일단 Head First 책으로 시작해서 관련 내용을 많이 참조했습니다.)

Statistics are numbers that summarize raw facts and figures in some meaningful way. 

They present key ideas that may not be immediately apparent by just looking at the raw data.


즉, 통계도 하나의 숫자라는 것인데요. 의미있는 핵심적인 내용을 보여주는 숫자라는 것입니다. 


그럼 통계를 왜 배워야 할까요? 

통계를 제대로 배운다면 객관적인 결정을 내릴 수 있게 되고, 뛰어난 직관처럼 보이는 정확한 예측을 할 수 있게 되며, 원하는 메시지를 가장 효과적인 방식으로 전달할 수 있게 됩니다. 


또한 통계는 사실에 기초를 두고 있지만 간혹 사실과 다른 내용으로 보여지도록 만들 수도 있다고 합니다. 

다음 그림을 보면 이해가 빠를 것 같습니다. 



위 그림을 보면 동일한 회사의 월별 수익 변화를 나타내고 있습니다. 

그런데 첫번째 그림을 보면 이익의 변화가 거의 없어 보이고, 두번째는 이익이 증가하고 있는 것으로 보입니다. 

당연히 눈치채셨겠지만, 바로 수직축의 값이 다르기 때문입니다. 

즉, 아래 그래프에서 보면 0부터 시작하지 않고 2.0부터 시작한 걸 확인할 수 있습니다. 


그러나 그래프를 자세히 살펴보지 않는다면 이런 부분을 정확하게 확인하지 못하고 직관적으로 이익이 증가하고 있다는 잘못된 판단을 할 수도 있는 것이겠죠.. 

그래서 통계에 대한 공부가 필요한 것 같습니다. (물론 위 그림은 초등학생도 파악할 수 있는 것이긴 하지만.. ^^)

통계라는 숫자를 정확하게 읽고 분석하고 예측할 수 있도록 앞으로 기초부터 꾸준히 스터디를 해보려고 합니다. 


기본 용어

도수(Frequency): 도수는 어떤 특정한 그룹이나 범위 안에 얼마나 많은 항목이 들어 있는지 나타내는 값입니다. 항목의 수를 센 값이라고 하네요. 

범주적 데이터(Categorical data): 일정한 범주로 나눈 다음 각 범주의 성질이나 특징을 묘사하는 데이터입니다. 정성적 데이터라고도 한다고 합니다. 

수치적 데이터(Numerical data): 숫자를 다루는 데이터로서 값의 측정이나 개수처럼 숫자로서의 의미를 갖는다고 합니다. 정량적 데이터라고도 합니다. 

도수밀도(Frequency density): 그룹으로 묶인 데이터의 도수가 얼마나 집중되어 있는지 나타냅니다. "Frequency / Group width"로 계산합니다.

히스토그램(Histogram): 그룹으로 묶인 데이터를 위한 차트로 각 막대의 높이는 도수가 아니라 도수밀도의 값을 나타냅니다. (막대 사이의 빈 공간이 없는 막대그래프를 생각하면 됩니다.)

누적도수(Cumulative frequency): 특정 값에 이르기까지의 도수의 합을 의미합니다. 즉 누적도수는 도수의 누적 합계입니다. 





Trackback 0 And Comment 0
prev | 1 | next