SQL Ranking Window Function

Row_number()

  • Partition 별로 coluumn2 순으로 나열한 후에 Sequence를 생성해준다.
SELECT *, ROW_NUMBER() OVER(PARTITION BY column1 ORDER BY column2 DESC) FROM table

Rank()

  • Row_number()와 비슷하지만, 동일한 값을 가진 경우에 대해서는 동일한 Sequence를 매긴다. 대신 일부 Sequence가 Skip될 수 있다. 예를 들어 Row_number()를 쓸 경우 “1,2,3,4,5,6”으로 나오던 것이 Rank()를 쓰면 “1,2,3,3,5,6”으로 나올 수 있다.
SELECT *, Rank() OVER(PARTITION BY column1 ORDER BY column2 DESC) FROM Table

Dense_Rank()

  • Row_Number()와 Rank()를 섞어놓은 느낌이다. 앞서 예를 들었던 것처럼 Rank()가 “1,2,3,3,5,6”로 나온다면 Dense_Rank()는 “1,2,3,3,4,5”로 나온다.
SELECT *, Dense_Rank() OVER(PARTITION BY column1 ORDER BY column2 DESC) FROM Table

Ntile()

  • Rank(), Dense_Rank(), Row_Number()와는 다르다.Partition 별로 나눈 다음에 Ntile(n)에 있는 n개로 레코드를 나눠준다.SELECT *, Ntile() OVER(PARTITION BY column1 ORDER BY column2 DESC) FROM Table

Percent_Rank()

  • 각 Partition내에서 각 Row 별 Percentile Rank를 생성해준다. 0~1 사이의 값을 Return 해준다.
  • 특정 고객군에서 상위 회원의 비율을 뽑을 때 사용하는 편이다.
SELECT *, PERCENT_RANK() OVER(PARTITION BY column1 ORDER BY column2 DESC) FROM Table

Cume_Dist

  • Percent_Rank()와 유사하다. 하지만 0~1 사이의 값을 Return 하지 않고, Partition내 레코드의 수를 n개라고 할 때 1/n 부터 시작해서 1/n씩 값을 증가하시키면서 1까지의 값을 Return 해준다는 차이가 있다.
SELECT *, Cume_RANK() OVER(PARTITION BY column1 ORDER BY column2 DESC) FROM Table

Reference

  • SQL Ranking Window Function Guide

Read more

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성(Multi Collinearity) * **Multi-Collinearity(다중공선성)**는 독립 변수들 간의 강한 상관관계가 존재할 때 발생합니다. 즉, 한 독립 변수가 다른 독립 변수에 의해 설명될 수 있을 정도로 상관관계가 높은 상황을 의미합니다. * 이 문제는 주로 회귀 분석에서 나타나며, 변수들 간의 관계를 해석하는 데 있어 큰 장애물이 될 수 있습니다. * 일반적인 회귀식을 $Y=

Bayesian P-Value는 불확실성을 감안하여 모델의 적합도를 평가합니다.

Bayesian P-Value는 불확실성을 감안하여 모델의 적합도를 평가합니다.

Bayesian P- Value * Bayesian P-Value는 **모델의 적합도(goodness-of-fit)**를 평가하는 데 사용됩니다. * 사후 분포(posterior distribution)를 이용하여 실제 데이터와 모델이 생성한 예상 데이터를 비교함으로써, 관측된 데이터가 모델에 의해 얼마나 잘 설명되는지를 평가합니다. * 빈도주의 p-값은 "관찰된 데이터보다 극단적인 데이터가 나올 확률"을 계산하지만, Bayesian P-Value는 "모델이 실제

Non-Identifiability는 Model Parameter를 고유하게 식별할 수 없는 현상입니다.

Non-Identifiability는 Model Parameter를 고유하게 식별할 수 없는 현상입니다.

Non Identifiability * Non-Identifiability는 주어진 데이터와 모델에 대해 특정 파라미터를 고유하게 식별할 수 없는 상황을 의미합니다. 즉, 여러 파라미터 값들이 동일한 데이터를 생성할 수 있으며, 이로 인해 특정 파라미터 값을 확정적으로 추정하기 어렵게 됩니다. * 베이지안 추론에서 Non-Identifiability는 사후 분포가 특정 파라미터 값에 대해 명확하게 수렴하지 않고, 여러 값들에 대해 비슷한 확률을

Rootgram은 큰 분산을 갖거나 비정규 형태의 데이터를 위한 히스토그램입니다.

Rootgram은 큰 분산을 갖거나 비정규 형태의 데이터를 위한 히스토그램입니다.

Rootgram * 히스토그램의 변형으로 데이터가 비정규적이거나 큰 분산을 가지는 경우, 정확한 분포를 파악하기 위해 사용됩니다. * 일반적으로 히스토그램은 데이터의 빈도를 직접적으로 나타내기 때문에, 큰 값이 빈번하게 발생하는 경우 상대적으로 작은 값을 잘 드러내지 못하는 경향이 있습니다. 반면, Rootgram은 빈도를 제곱근 형태로 변환하여, 데이터 분포의 차이를 더 잘 시각화할 수 있도록 돕습니다 * 여기서