일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 나비에 스토크스
- Closed Form
- 논문 리뷰
- 윤리 및 안전
- jensen's inequality
- em알고리즘#expectation maximization#algorithm
- 볼록 함수
- 연구
- python#yaml#가상환경#파이썬
- 닫힌 해
- regret-minimization
- numpy
- discrete choice model
- 대학원
- 옌센 부등식
- EM 알고리즘
- choice model
- DCM
- convex
- 통계
- lccm
- 넘파이
- 안전교육
- Expectation Maximization
- latex#티스토리#tistory#대학원#논문#논문정리
- 젠센 부등식
- 티스토리챌린지
- journal club
- 카이스트
- Python
- Today
- Total
대학원생 리암의 블로그
Discrete Choice Model 설명 [1편] 본문
Discrete Choice Model(이하 dcm)은 decision maker가 여러가지 alternative 중에 한가지를 선택하는 방법을 모델링한다. Decision Maker에게는 선택 가능한 대안들의 집합인 Choice Set이 주어진다. Set 내의 alternative들은 다음과 같은 성질을 띈다:
1. Mutual Exclusivity (상호 배타성): 한 대안을 선택하면 다른 대안은 선택할 수 없음
2. Exhaustiveness (완전성): 모든 가능한 대안이 포함되어야 함
3. Finiteness (유한성): 대안의 수가 유한해야 함
유한성 조건이 일반 회귀 모형과 DCM을 구분짓는 특징이다.
각 decision maker {n}은 각 alternative j에 대해 $U_{nj}$의 효용을 얻는다. 그리고 그 중 가장 utility가 높은 것을 선택한다. 이를 수식으로 나타내면 다음과 같다.
$U_{ni} > U_{nj} \quad \forall j \neq i \tag{1}$
다만 관찰자는 의사 결정자의 Utility를 완전히 알 수 없기 때문에, 보여지는 특성으로 실제 Utility를 추정하고자 한다. 총 효용을 다음과 같이 가정한다:
$U_{nj} = V_{nj} + \epsilon_{nj} \tag{2}$
여기서 $U_{nj}$는 의사 결정자 $n$이 대안 $j$를 선택할 때 얻는 실제 효용이고, $V_{nj}$는 관찰 가능한 특성, $\epsilon_{nj}$는 관찰할 수 없는 잠재 변수다. 이 잠재 변수는 정확히 알 수 없기 때문에 확률 변수로 두며, 이를 Random Utility Model이라고 한다.
앞서 언급한 식을 확률로 정리하면 다음과 같다:
$P_{ni} = \text{Prob}(V_{ni} + \epsilon_{ni} > V_{nj} + \epsilon_{nj} \quad \forall j \neq i) \tag{3}$
이것을 like term끼리 이항해서 정리하면 다음과 같다:
$P_{ni} = \text{Prob}(\epsilon_{nj} - \epsilon_{ni} < V_{ni} - V_{nj} \quad \forall j \neq i) \tag{4}$
그리고 우리는 두 variable이 random variable이면 그 차이 역시 random variable이라는 사실을 알고 있다. 따라서 좌변의 $\varepsilon_{nj} - \varepsilon_{ni}$ 역시 random variable이다.
$\mathbb{P}(\varepsilon_{nj} - \varepsilon_{ni} < V_{ni} - V_{nj}) = \mathbb{P}(d < V_{ni} - V_{nj})$
위 표현식은 Cumulative Distribution Function (CDF)를 떠올리게 한다. 실제로 추후에 해당 분포를 어떻게 설정하는지에 따라 dcm의 여러 종류가 등장하게 된다. 일단은 아래식부터 정리해보자.
$P_{ni} = \mathbb{P}(\varepsilon_{nj} - \varepsilon_{ni} < V_{ni} - V_{nj} \,\, \forall j \neq i)$
$= \int \mathbf{1} (\varepsilon_{nj} - \varepsilon_{ni} < V_{ni} - V_{nj} \,\, \forall j \neq i) f(\varepsilon_n) d\varepsilon_n,$
Indicator function을 활용해서 cumulative probability를 구하고 있다. 이때 multidimensional integral이 사용되는데 저기 뒤의 $d\varepsilon_n$은 모든 epsilon 조합에 적용되는 것이며 $f(\varepsilon_n)$은 모든 epsilon에 대한 joint probability이다.
이때 probability density function인 $f$가 특정 분포일 때만 closed form을 가진다.
>> Logit Model & Nested Logit : pdf가 Generalized Extreme Value 분포라고 가정
Closed form solution이 없지만 simulation을 통해 접근하는 방법도 존재한다:
1. Probit : multivariate normal 분포를 가정
2. Mixed Logit : iid extreme value 분포 + 연구자가 고른 "any distribution"
Logit Model은 critical한 assumption이 있다 : unobserved factors are uncorrelated over alternatives & same variance for all alternatives. 그러나 실제로는 버스를 사람이 많아서 선호하지 않는 사람은 지하철 역시 선호하지 않을 가능성이 크다. 이를 보완하기 위해 등장한 것이 Generalized Extreme Value (GEV)이다. 본 모델은 unobserved variable들끼리의 correlation을 허용하고 correlation이 0일 경우에 logit 모델과 동일해진다는 점이다. 간단한 GEV 모델은 비슷한 factor들을 nest라는 subgroup에 넣는 nested model이고 더 복잡한 모델들은 더 복잡한 correlation pattern 역시 감지할 수 있다.
Probit 모델은 jointly normal함을 가정하고 temporal한 explanation을 할 수 있다는 장점을 가진다. 그렇지만 willingness to pay가 무조건 양수인 상황을 예를 들며 normal distribuation은 음수 값이 있다는 점에서 한계가 생긴다고 한다. (그런데 이 점은 사실 잘 납득이 안된다. mean을 바꿔서 shifting을 해주면 어느정도 해결되지 않나?)
Mixed Logit은 unobserved factor가 correlation을 보정할 수 있는 model + iid extreme value 분포를 따르는 두가지로 compose된다고 한다. 이는 거의 모든 dcm을 approximate 할 수 있다는 점에서 general하다. Mixed probit은 Mixed Logit과 동일하나 두번째 분포를 normal로 가정한다는 점에서 상이하다. 다만 simplicity와 approximation power를 타협한 케이스이다.
중요한 것은 DIFFERENCE이다.
중학교 때 수련회에서 제일 이해가 안됐던게 조교님이 모두가 잘했으니 모든 팀에게 10점씩 주겠습니다 라고 한 것이었다. 모두의 점수가 오르면 변별력이 없다. Choice Model에서도 마찬가지다. 상수를 더하는 것은 의미가 없고 각 alternative들이 가지는 utility의 차이가 중요하다.
$U_c = \alpha T_c + \beta M_c + k_{0c} + \varepsilon_c$
$U_b = \alpha T_b + \beta M_b + k_{0b} + \varepsilon_b$
위 두식을 살펴보자. $k_{0b} - k_{0c} = d$인데 두 차이가 같다면 셀 수 없이 많은 조합이 가능하다. 예를 들어, 3-1 = 4-2 = 5-3 = 6-3 ,,,,,,,이듯이.
따라서 우리는 하나의 variable을 0으로 고정하고 다른 variable을 그 variable에 relative하게 나타낸다.
$U_c = \alpha T_c + \beta M_c + \varepsilon_c$
$U_b = \alpha T_b + \beta M_b + k_b + \varepsilon_b$
여기서 $k_b$가 d에 상응하는 값이다. 일반화하자면 J개의 alternative들이 있을 때 J-1개의 relative한 d값이 존재한다.
$P_{ni} = \mathbb{P}(U_{ni} > U_{nj} \,\, \forall j \neq i) $
$= \mathbb{P}(\varepsilon_{nj} - \varepsilon_{ni} < V_{ni} - V_{nj} \,\, \forall j \neq i) $
$= \mathbb{P}(\tilde{\varepsilon}_{nji} < V_{ni} - V_{nj} \,\, \forall j \neq i) $
$= \int \mathbf{1} (\tilde{\varepsilon}_{nji} < V_{ni} - V_{nj}, \forall j \neq i) g(\tilde{\varepsilon}_{ni}) d\tilde{\varepsilon}_{ni}$
$\tilde{\varepsilon}_{nji} = \varepsilon_{nj} - \varepsilon_{ni}$가 대안들 간의 차이이다.
$\tilde{\varepsilon}_{ni} = \{\tilde{\varepsilon}_{n1i}, \dots, \tilde{\varepsilon}_{nJi}\}$은 $J - 1$ dimensional vector of error differences이다. 즉 자기 자신 제외하고 모든 alternative들과의 차이를 구한 것이다. 이렇게 하면 J개의 alternative에서 J-1개로 줄일 수 있다.
모든 alternative에 상수를 더하는 것이 의미가 없듯이 모든 utility식에 동일한 상수를 곱해도 영향이 없다. 따라서 scale 역시 표준화해서 나타내준다. 이러한 scale 보정은 여러 모델과 비교할 때 필요하다.
Standard Logit 모델은 $\frac{\p\}{2\sqrt{6}}$로 variance를 맞춘다. 이는 1.6정도이며 식에 적용하면 다음과 같다:
$U_{nj} = x_{nj} \left(\frac{\beta}{\sigma}\right) 1.6 + \varepsilon_{nj} $ 이 때 $\varepsilon_{nj} = 1.6$이다.
위에서는 error term들이 서로 independent한 상황을 살펴봤다. 그러나 error term들이 correlate되었을 경우도 있다. 오차 벡터 $\varepsilon_n = \langle\varepsilon_{n1}, \ldots, \varepsilon_{n4}\rangle$의 평균이 0인 공분산 행렬은 다음과 같다:
\begin{pmatrix}\sigma_{11}&\sigma_{12}&\sigma_{13}&\sigma_{14}\\\cdot &\sigma_{22}&\sigma_{23}&\sigma_{24}\\\cdot &\cdot &\sigma_{33}&\sigma_{34}\\\cdot &\cdot &\cdot &\sigma_{44}\end{pmatrix}
대칭 행렬이기에 중복되는 부분은 (·)으로 생략했다.
$\tilde{U}_{nj1}=\tilde{V}_{nj1}-\tilde{\varepsilon}_{nj1}\quad \text{for }j=2,3,4$, where $\tilde{U}_{nj1}=U_{nj}-U_{n1}$,$\tilde{V}_{nj1}=V_{nj}-V_{n1}$, and $\tilde{\varepsilon}_{n1}=\langle(\varepsilon_{n2}-\varepsilon_{n1}),(\varepsilon_{n3}-\varepsilon_{n1}),(\varepsilon_{n4}-\varepsilon_{n1})\rangle$.
예를 들어, 첫 번째와 두 번째 오차의 차이 분산은 다음과 같다:
$\text{Var}(\tilde{\varepsilon}_{n21})=\text{Var}(\varepsilon_{n2}-\varepsilon_{n1})=\text{Var}(\varepsilon_{n1})+\text{Var}(\varepsilon_{n2})-2\text{Cov}(\varepsilon_{n1},\varepsilon_{n2})=\sigma_{11}+\sigma_{22}-2\sigma_{12}$
이어서 공분산도 계산해보자. 공분산 식은 $\mathbb{E}(XY) - \mu_X \mu_Y$인데 평균이 0이기에 앞의 term만 고려하면 된다.
$\tilde{\varepsilon}_{n21}$와$\tilde{\varepsilon}_{n31}$사이의 공분산을 예로 계산해보자.
$\text{Cov}(\tilde{\varepsilon}_{n21},\tilde{\varepsilon}_{n31})=E((\varepsilon_{n2}-\varepsilon_{n1})(\varepsilon_{n3}-\varepsilon_{n1}))=E(\varepsilon_{n2}\varepsilon_{n3}-\varepsilon_{n2}\varepsilon_{n1}-\varepsilon_{n3}\varepsilon_{n1}+\varepsilon_{n1}\varepsilon_{n1})=\sigma_{23}-\sigma_{21}-\sigma_{31}+\sigma_{11}$
오차 차이 벡터의 공분산 행렬은 다음과 같다.
$\tilde{\Omega}_1=\begin{pmatrix}\sigma_{11}+\sigma_{22}-2\sigma_{12}&\sigma_{11}+\sigma_{23}-\sigma_{12}-\sigma_{13}&\sigma_{11}+\sigma_{24}-\sigma_{12}-\sigma_{14}\\\cdot &\sigma_{11}+\sigma_{33}-2\sigma_{13}&\sigma_{11}+\sigma_{34}-\sigma_{13}-\sigma_{14}\\\cdot &\cdot &\sigma_{11}+\sigma_{44}-2\sigma_{14}\end{pmatrix}$
그리고 scaling을 하기 위해 특정 term을 정해서 나누어 줄 수 있다. 예를 들어 첫번째 term((1,1) 위치)이고 $m = \sqrt{\sigma_{11}+\sigma_{22}-2\sigma_{12}}$로 나누어 normalize 해준다.
\begin{pmatrix}1&(\sigma_{11}+\sigma_{23}-\sigma_{12}-\sigma_{13})/m&(\sigma_{11}+\sigma_{24}-\sigma_{12}-\sigma_{14})/m\\\cdot &(\sigma_{11}+\sigma_{33}-2\sigma_{13})/m&(\sigma_{11}+\sigma_{34}-\sigma_{13}-\sigma_{14})/m\\\cdot &\cdot &(\sigma_{11}+\sigma_{44}-2\sigma_{14})/m\end{pmatrix}
우리는 연구를 할 때 aggregate demand를 기반으로 연구하는데 average를 구할 경우 실제 probability와 괴리가 생길 위험이 크다고 한다. 예를 들어, a와 b의 데이터를 이용해서 $\frac{a+b}{2}$를 추정한다고 할 때 average probability와 probability at average의 불가피한 괴리가 있음을 확인할 수 있다.
Sample Enumeration
일반적으로 aggregate demand를 확인하는 방법은 sampling이다.
$\sum_{i=1}^{n} w_{n}P_{ni}(i)$
위 식과 같이 sampling을 한 이후 해당 개체와 similar한 사람이 많을수록 weight를 주어 sum을 구하게 된다. 비슷한 맥락에서 설명 변수의 종류가 적을 때 segmentation을 할 수도 있다. 예를 들어 education level(중졸/고졸/대졸/대학자퇴)과 gender(binary)로만 구분한다고 했을 때 8가지의 segement만 존재한다. 따라서 sample enumeration과 식은 동일하나 n이 finite한 숫자로 고정된다.
$\sum_{i=1}^{8} w_{n}P_{ni}(i)$
'대학원' 카테고리의 다른 글
Discrete Choice Model 설명 [2편] (9) | 2024.09.24 |
---|---|
KAIST 사이버윤리(윤리 및 안전 소과목) 매크로 (1) | 2024.09.11 |
Closed Form (2) | 2024.09.04 |
EM-알고리즘의 수식적 이해 (1) | 2024.09.03 |
Jensen's Inequality (옌센 부등식) 설명 (1) | 2024.09.02 |