실습 · 연습문제 2개
자기상관을 보정한 추세의 표준오차 trend-effective-n
연평균 기온 편차처럼 자기상관이 있는 시계열에서 최소제곱 추세의 표준오차를 그대로 쓰면, 추세가 실제보다 확실해 보인다. 함수 trend_test(y)를 완성해 (slope, se_naive, n_eff, se_adj)를 반환한다.
y의 길이를 , 시점을 가운데로 옮긴 라 할 때:
- 기울기 , 잔차 .
- 순진한 표준오차 .
- 잔차의 lag-1 자기상관 .
- 유효 표본 수 . 단, 3보다 작으면 3, 보다 크면 으로 자른다(이어도 표본 수를 늘리지 않는다).
- 보정한 표준오차 .
모든 반환값은 Python float(또는 0차원 NumPy 값)이다.
힌트: 2번의 분모 가 5번에서 로 바뀐다고 보면 된다. 잔차의 자유도를 유효 표본 수로 다시 세는 것이다.
동서 방향 에너지 스펙트럼으로 흐릿함 재기 zonal-spectrum
RMSE는 예보가 작은 규모의 변동을 잃어도 오히려 좋아질 수 있다. 위도권을 따라(동서 방향) 에너지 스펙트럼을 비교하면 어느 규모에서 변동이 사라졌는지 보인다. 함수 energy_ratio(fc, truth)를 완성해 (ratio, k_half)를 반환한다.
| 인자 | shape | 설명 |
|---|---|---|
fc |
(..., nlon) |
예보. 마지막 축이 위도권 한 바퀴(주기 경계) |
truth |
(..., nlon) |
같은 shape의 정답 |
- 파수별 평균 에너지 를 구한다. 는 마지막 축의
np.fft.rfft이고, 윗줄은 앞쪽 모든 축(사례, 위도 등)에 대한 평균이다. ratio[k-1], . 길이는nlon // 2이다(평균에 해당하는 은 뺀다).k_half는 비율이 처음으로 0.5보다 작아지는 파수 (정수)다. 그런 파수가 없으면None.
k_half는 "이 예보가 실제로 표현하는 가장 작은 규모"의 대략적인 지표다. 파장으로는 위도권 둘레를 k_half로 나눈 길이다.
힌트: np.fft.rfft(x, axis=-1)의 길이는 nlon // 2 + 1이다. 앞쪽 축이 여러 개면 reshape(-1, nlon)으로 펴서 평균한다.