-
Ordinal RegressionArchive/통계&코딩이것저것 2021. 10. 13. 10:51
출처: 위키피디아
ordinal regression (also called "ordinal classification") 은 회귀와 분류의 중간에 위치. ordinal variable (값 자체가 아니라 값들 사이의 순서만이 중요한 변수) 을 예측하는데 쓰인다. ordinal logit 과 ordinal probit이 ordinal reg. 의 한 예이다.
사회과학의 n점 척도(1: very poor, 5: excellent) 를 모델링하는 문제에서 많이 쓰인다. 머신러닝에서는, ranking learning이라고도 한다.
Linear models for ordinal regression
Ordinal regression은 계수벡터와 threshold(실수들을 k개의 단절된 세그먼트(척도)로 나누게 하는 기준) 를 피팅하는 GLM을 이용해 실행된다. 길이가 p인 x벡터 n개와, y1부터 yn이 있다고 가정해보자. 여기서 yi는 K점 척도인 ordinal variable이다. 단순성을 위해, y 가 non-decreasing vector라고 가정한다. 이 데이터에서, 길이p의 계수벡터 w와 threshold를 적합한다. (threshold θ1 < θ2 < ... < θK−1.)
모델은 다음과 같당.
이 모형을 설명하면 끝날거 같다...
로짓 모형을 기억하자.
$$logit(p_i) = \alpha + \beta x$$
pi를 모든 실수 범위로 만들기 위해서 logit 을 썼고, 실수 범위는 선형 식으로 표현이 된다. 이 논리를 똑같이 적용하겠다.
- let G: 어떤 분포의 CDF, G: R -> [0, 1] (R: 실수, 실수를 0과 1사이의 수로 mapping)
e ~ G 인 확률변수라고 가정하자. (연속형 변수)
e를 이산형 순서로 만들기 위해 threshold를 이용한다. (\theta)
ex) -무한대<e<w(\theta_1\)이면 y=1
따라서 \(e<\theta_2\)면 y=1또는2
$$P(e<\theta_2)=p(y=1 or y=2)$$
여기서 X의 효과를 반영시킨다. y*를 가정하자.
$$ y*=x \beta + e$$
e는 여전히 G를 따르고, x의 효과에 따라서 z가 움직이고, 움직인 후에 어떤 threshold에 위치하느냐에 따라서 y를 결정하게 된다.
$$P(y <= 2) = P(y* <= \theta_2)$$
$$P(y <= 2) = P(z <= \theta_2) = P(x\beta + e <= \theta2) = P(e <= \theta2 - x\beta) = G(\theta_2 - x\beta)$$
여기서 G를 로지스틱 분포라고 가정하면, G는 시그모이드 함수니까 위의 모델처럼 된다.
thanks to 바닐라승환
'Archive > 통계&코딩이것저것' 카테고리의 다른 글
[Back to the Basic] 검정 (0) 2021.11.25 네거티브 샘플링을 이용한 Word2Vec 구현(w. TensorFlow) (0) 2021.11.16 Neural Collaborative Filtering 논문 리뷰 (0) 2021.09.14 기업명 표준화(클리닝) (0) 2021.09.06 n-gram을 이용해서 철자를 교정해보자 (0) 2021.09.02