Kernel Density Estimation(커널밀도추정)
Density Estimation(밀도추정)
: 통계란, 데이터는 어떤변수가 가질 수 있는 다양한 가능성 중에 하나가 현실 세계에 구체화된 값이다. 그리고 우리는 그 변수의 성질을 파악하기위해서 부단히 노력을 한다.
하나의 데이터로 특성을 파악하기에는 어렵기 때문에 수많은 데이터를 이용해서 데이터의 특성을 파악하고자 노력을 한다.
이렇게 얻어진 데이터를 이용해서 데이터들의 분포로 부터 원래변수의 분포특성을 추정하고자 하는 것이 density estimation 이라고 한다.
- 밀도(density)는 수학적으로는 질량/부피 이지만,
밀도추정(density estimate), 기계학습, 확률, 통계 등에서 말하는 밀도(density)는 확률밀도(probagiltity density function)을 추정하는 것과 동일하다.

f(a)는 x=a에서의 확률밀도(probability density)이다. 즉 x가 a라는 값을 가질 상대적인 가능성(relative likelihood)를 나타낸다.
즉 다시말하면 x=a 일 확률은 0이지만, x=a에서의 밀도는 0이 아니다. 또한 x가 a,b 사이의 값을 가질 확률은 그 구간의 확률밀도함수의 적분값으로 계산된다.
어떤 변수의 확률밀도함수(PDF)를 구할 수 있으면 그 변수가 가질 수 있는 값의 범위 및 확률, 기계학습 추정등에서 가장 핵심정인 요소중의 하나이다.
Parametric vs Non-parametric 밀도추정.
밀도추정(density estimation)방법은 크게 parametric 방법과 non-parametric 방법으로 나뉜다.
parametric density estimate는 확률밀도함수(PDF)에 대한 모델을 정해놓고 데이터들로부터 모델의 파라미터만 추정하는 방식이다. 즉 예를 들면 일일 교통량이 정규분포를 따른다고 가정해버리면 관측된 데이터들로 부터 평균과 분산만 구하면 되기 때문에 밀도추정 문제가 비교적으로 간단한 문제가 되어버린다.
현실을 그와 동일하게 움직이는 것이 아니기 때문에 사전정보 없이 순수하게 관측된 데이터를 가지고 확률밀도함수(PDF)를 추정해야 한다. 이를 non-parametric density estimate라고 한다.
non-parametric density estimate의 가장 간단한 형태가 히스토그램이다. 즉, 관측된 데이터들로 부터 히드토그램을 구한 후 구해진 히소토그램을 정규화하여 확률밀도함수로 사용되는 것이다.
Kernel density Estimation(커널 밀도 추정)
non-parametric density estimate의 가장 단순한 방법은 histogram방법이지만, 이 방법은 bin의 경계에서 불연속성이 나타나는 점, bin의 크기 및 시작 위치에 따라서 hitogram이 달라진다는 점, 고차원(high dimension) 데이터에는 메모리 문제 등으로 사용하기 힘들다는 점 등의 문제점이 있다.
연속성의 문제점을 해결하기 위해서 kernel function을 이용하여 문제점을 개선하자.
kernel function에 대한 이해>
: kernel function은 원점을 중심으로 대칭이면서 적분값이 1인 non-negative 함수로 정의 되며 대표적으로 gaussian, epanechnikov, uniform 함수가 대표적인 예이다.
여러 종류의 커널 함수들.
- x 변수(random variable), x1,x2 ... xn 을 관측된 샘플 데이터라고 하자, K를 커널 함수라고 하자. 이 때 KDE 에서는 랜덤 변수 x에 대한 pdf를 다음과 같이 추정하자.식 4

여기서 h는 커널이 뽀족한 형태(h가 작으값: h가 분모로 들어가기 때문에 작아야 fh 값이 크게 나옴)인지 완만한 형태인지를 조절하는 파라미터 이다.
수식(식 4)을 설명하면 1. 관측된 데이터 각각마다 해당 데이터 값을 중심으로 하는 커널함수를 생성한다. 2. 이렇게 만들어진 커널함수를 모두 더한 후 전체 데이터 개수로 나눈다.

히스토그램을 이용한 밀도추정 방법과 KDE방법을 비교하면, 히스토그램 방법은 이산적으로 각데이터에 대응되는 bin의 값을 증가시킴으로써 불연속성이 발생하는 반면, KDE방법은 각 데이터를 커널함수로 대치하여 더함으로써 그림 4의 오른쪽 그래프와 같이 smooth한 확률밀도함수를 얻을 수 있는 장점을 갖는다.
정리해서 말하면 확률밀도 함수를 smooth한 것드로도 볼 수 있으며 이 때, smoothing 하는 정도는 어떤 bandwidth 값의 커널 함수를 사용했느냐에 따라 달라진다. 실제로 KDE를 사용할 때, 중요한 이슈는 어떤 커널을 사용할지와 bandwidth 파라미터인 h값을 어떻게 설정할지이다.
위키피디아에 의하면 Epanechnikov 커널이며 계산의 편의상 gaussian 커널함수도 많이 사용한다.

n은 데이터의 수, 감마는 데이터의 표준편차 이다.
Density plot in R
- 필요조건 moonbook package를 설치 후 .
- densityplot(age~walk_yn, data=mydata)
### 여기서 age는 densityplot를 그릴 데이터를 의미, walk_yn은 그룹을 나눈 변수. data=mydata에서 mydata는 main data를 의미한다.
Density Estimation(밀도추정)
: 통계란, 데이터는 어떤변수가 가질 수 있는 다양한 가능성 중에 하나가 현실 세계에 구체화된 값이다. 그리고 우리는 그 변수의 성질을 파악하기위해서 부단히 노력을 한다.
하나의 데이터로 특성을 파악하기에는 어렵기 때문에 수많은 데이터를 이용해서 데이터의 특성을 파악하고자 노력을 한다.
이렇게 얻어진 데이터를 이용해서 데이터들의 분포로 부터 원래변수의 분포특성을 추정하고자 하는 것이 density estimation 이라고 한다.
- 밀도(density)는 수학적으로는 질량/부피 이지만,
밀도추정(density estimate), 기계학습, 확률, 통계 등에서 말하는 밀도(density)는 확률밀도(probagiltity density function)을 추정하는 것과 동일하다.

f(a)는 x=a에서의 확률밀도(probability density)이다. 즉 x가 a라는 값을 가질 상대적인 가능성(relative likelihood)를 나타낸다.
즉 다시말하면 x=a 일 확률은 0이지만, x=a에서의 밀도는 0이 아니다. 또한 x가 a,b 사이의 값을 가질 확률은 그 구간의 확률밀도함수의 적분값으로 계산된다.
어떤 변수의 확률밀도함수(PDF)를 구할 수 있으면 그 변수가 가질 수 있는 값의 범위 및 확률, 기계학습 추정등에서 가장 핵심정인 요소중의 하나이다.
Parametric vs Non-parametric 밀도추정.
밀도추정(density estimation)방법은 크게 parametric 방법과 non-parametric 방법으로 나뉜다.
parametric density estimate는 확률밀도함수(PDF)에 대한 모델을 정해놓고 데이터들로부터 모델의 파라미터만 추정하는 방식이다. 즉 예를 들면 일일 교통량이 정규분포를 따른다고 가정해버리면 관측된 데이터들로 부터 평균과 분산만 구하면 되기 때문에 밀도추정 문제가 비교적으로 간단한 문제가 되어버린다.
현실을 그와 동일하게 움직이는 것이 아니기 때문에 사전정보 없이 순수하게 관측된 데이터를 가지고 확률밀도함수(PDF)를 추정해야 한다. 이를 non-parametric density estimate라고 한다.
non-parametric density estimate의 가장 간단한 형태가 히스토그램이다. 즉, 관측된 데이터들로 부터 히드토그램을 구한 후 구해진 히소토그램을 정규화하여 확률밀도함수로 사용되는 것이다.
Kernel density Estimation(커널 밀도 추정)
non-parametric density estimate의 가장 단순한 방법은 histogram방법이지만, 이 방법은 bin의 경계에서 불연속성이 나타나는 점, bin의 크기 및 시작 위치에 따라서 hitogram이 달라진다는 점, 고차원(high dimension) 데이터에는 메모리 문제 등으로 사용하기 힘들다는 점 등의 문제점이 있다.
연속성의 문제점을 해결하기 위해서 kernel function을 이용하여 문제점을 개선하자.
kernel function에 대한 이해>
: kernel function은 원점을 중심으로 대칭이면서 적분값이 1인 non-negative 함수로 정의 되며 대표적으로 gaussian, epanechnikov, uniform 함수가 대표적인 예이다.

- x 변수(random variable), x1,x2 ... xn 을 관측된 샘플 데이터라고 하자, K를 커널 함수라고 하자. 이 때 KDE 에서는 랜덤 변수 x에 대한 pdf를 다음과 같이 추정하자.식 4

여기서 h는 커널이 뽀족한 형태(h가 작으값: h가 분모로 들어가기 때문에 작아야 fh 값이 크게 나옴)인지 완만한 형태인지를 조절하는 파라미터 이다.
수식(식 4)을 설명하면 1. 관측된 데이터 각각마다 해당 데이터 값을 중심으로 하는 커널함수를 생성한다. 2. 이렇게 만들어진 커널함수를 모두 더한 후 전체 데이터 개수로 나눈다.

히스토그램을 이용한 밀도추정 방법과 KDE방법을 비교하면, 히스토그램 방법은 이산적으로 각데이터에 대응되는 bin의 값을 증가시킴으로써 불연속성이 발생하는 반면, KDE방법은 각 데이터를 커널함수로 대치하여 더함으로써 그림 4의 오른쪽 그래프와 같이 smooth한 확률밀도함수를 얻을 수 있는 장점을 갖는다.
정리해서 말하면 확률밀도 함수를 smooth한 것드로도 볼 수 있으며 이 때, smoothing 하는 정도는 어떤 bandwidth 값의 커널 함수를 사용했느냐에 따라 달라진다. 실제로 KDE를 사용할 때, 중요한 이슈는 어떤 커널을 사용할지와 bandwidth 파라미터인 h값을 어떻게 설정할지이다.
위키피디아에 의하면 Epanechnikov 커널이며 계산의 편의상 gaussian 커널함수도 많이 사용한다.

n은 데이터의 수, 감마는 데이터의 표준편차 이다.
Density plot in R
- 필요조건 moonbook package를 설치 후 .
- densityplot(age~walk_yn, data=mydata)
### 여기서 age는 densityplot를 그릴 데이터를 의미, walk_yn은 그룹을 나눈 변수. data=mydata에서 mydata는 main data를 의미한다.
댓글
댓글 쓰기