실습 · 연습문제 1개
경험적 quantile mapping quantile-mapping
기후 모델 출력의 분포를 관측 분포에 맞추는 가장 널리 쓰이는 편향 보정은 quantile mapping이다. 모델 값 가 과거 기간 모델 분포에서 차지하는 분위 를 구하고, 같은 분위의 관측 값 로 바꾼다.
함수 quantile_map(x, model_ref, obs_ref, n_q=1001)을 완성한다.
| 인자 | shape | 설명 |
|---|---|---|
x |
임의 | 보정할 모델 값 |
model_ref |
(n,) |
보정 기간(과거)의 모델 값 |
obs_ref |
(m,) |
같은 기간의 관측 값 |
n_q |
정수 | 분위 격자의 점 수 |
구현 규칙(테스트가 이 규칙을 가정한다):
- 분위 격자
qs = np.linspace(0, 1, n_q)에서model_ref와obs_ref의 경험적 분위수mq,oq를np.quantile로 구한다. np.interp(x, mq, oq)로 사이 값을 선형 보간한다. 따라서model_ref의 범위를 벗어난x는 관측의 최솟값·최댓값으로 고정된다.- 반환값의 shape은
x와 같다.
2번의 고정은 의도한 규칙이다. 테스트 하나가 이 성질을 확인하는데, 미래 기후에서 보정 기간보다 큰 값이 나오면 이 방법이 극값을 잘라 버린다는 것을 보이기 위해서다.
힌트: 세 줄이면 된다. 결과를 model_ref에 적용해 분위수가 obs_ref와 같아지는지 확인한다.