스피커
|
성적 증명서
|
| |
안녕하세요, 시간을 내어 시청해주셔서 감사합니다. 제 이름은 제이콥 라인입니다. 저는 JMP의 소프트웨어 테스터입니다. 오늘 저는 JMP의 시계열 플랫폼에서 ARIMA 모델 또는 상태 공간 평활화 모델 중에서 선택하는 데 도움이 되도록 작성한 추가 기능을 공유하겠습니다. |
| |
따라서 시계열 플랫폼에서 ARIMA 및 상태 공간 평활화 모델을 피팅하는 방법에 대한 간략한 개요부터 시작하겠습니다. |
| |
이 두 모델 클래스 중에서 선택하는 데 도움이 되는 추가 기능의 필요성을 소개하겠습니다. 그리고 추가 기능의 주요 도구인 시계열 교차 검증에 대한 개요를 제공합니다. 그런 다음 JMP 16.1을 사용하는 추가 기능의 데모를 마치겠습니다. |
| |
JMP의 시계열 플랫폼을 사용하면 다양한 시계열 모델을 맞출 수 있습니다. 이 프레젠테이션의 초점은 ARIMA 및 State Space Smoothing 모델이 될 것이며 이 Steel Shipments 샘플 데이터를 사용하여 이 두 가지를 모두 맞추는 방법을 보여 드리겠습니다. |
| |
철강 선적 샘플 데이터에는 1984년부터 1991년까지 미국 철강 선적의 월별 총계가 포함되어 있습니다. 그리고 Specialized Modeling 메뉴의 Time Series 플랫폼을 사용하여 이를 살펴보겠습니다. |
| |
철강 선적 열은 내 시계열입니다. 날짜 열은 내 시간 ID입니다. 다음 2년 동안의 철강 출하량을 예측하는 데 관심이 있다고 가정해 보겠습니다. 따라서 이것은 월별 데이터이므로 24개의 예측 기간이 필요합니다. 그리고 확인을 클릭하여 시계열 보고서를 시작하겠습니다. |
| |
시계열에 대한 일부 기본 통계와 기본 시계열 진단에 대한 플롯이 있음을 알 수 있습니다. |
| |
이 시리즈에 ARIMA 모델을 맞추고 싶은데 ARIMA 모델을 맞출 때 어떤 종류의 변환이나 차분을 취해야 하는지 결정해야 합니다. 시계열 메뉴의 차이 옵션을 사용하여 이를 살펴보겠습니다. |
| |
주문 1의 비계절별 차분으로 시작하여 견적을 클릭하겠습니다. |
| |
이제 차이점 시리즈의 플롯이 있습니다. 더 고정적이라는 측면에서 더 좋아 보이지만 여기에는 여전히 약간의 계절성이 있습니다. 그리고 진단서를 보면 알 수 있습니다. 나는 12번 래그까지 내려간다. |
| |
자동 상관 값이 높고 부분 자동 상관도 지연 12에 대해 약간 높은 것을 알 수 있습니다. 따라서 이것은 내가 비계절 및 계절 차분을 사용하여 계절 ARIMA 모델을 적합해야 함을 시사합니다. |
| |
보고서를 깔끔하게 유지하기 위해 이 차이 보고서를 닫겠습니다. 그리고 ARIMA 모델 그룹 옵션을 사용하여 몇 가지 다른 ARIMA 모델을 피팅하는 방법을 살펴보겠습니다. |
| |
그래서 비계절 차분 차수가 1이고 계절 미분 차수가 1인 계절성 ARIMA 모델을 맞추기로 결정했습니다. 그러나 자기회귀 및 이동 평균 주문의 경우 0 또는 1이 되도록 합니다. |
| |
따라서 견적을 클릭하면 JMP가 이 16가지 계절별 ARIMA 모델에 맞을 것입니다. 모델 비교 창으로 스크롤하여 이러한 모델을 볼 수 있습니다. 모델은 AIC를 기준으로 내림차순으로 정렬되므로 AIC를 최소화하는 모델을 선택하겠습니다. |
| |
아래로 스크롤하여 모델과 보고서를 볼 수 있습니다. 안정적이고 뒤집을 수 있음을 알 수 있습니다. 매개변수 추정표를 살펴볼 수 있습니다. 예측 및 예측 간격을 살펴보십시오. |
| |
이 모든 진단을 살펴보았고 예측을 위해 고려해야 할 후보로서 이 계절 ARIMA 모델에 만족한다고 가정해 보겠습니다. |
| |
따라서 보고서에서 다른 계절 ARIMA 모델을 제거하겠습니다. |
| |
또한 시계열 메뉴에서 상태 공간 평활화 옵션을 사용하여 이 작업을 수행할 수 있는 예측을 생성하기 위해 상태 공간 평활화 모델을 사용하는 것을 고려하고 싶습니다. |
| |
이것은 월별 데이터이기 때문에 기간이 12라고 말해야 하며 이 시계열에 대해 권장되는 모든 상태 공간 평활 모델에 적합합니다. |
| |
모델 비교 보고서까지 아래로 스크롤하면 JMP가 모든 권장 상태 공간 평활 모델에 맞는 것을 볼 수 있도록 확인을 클릭하여 실행하겠습니다. AIC를 기준으로 내림차순으로 다시 정렬됩니다. |
| |
따라서 AIC를 최소화한 모델은 추세가 없고 승법 계절성이 있는 승법 오차 모델이었습니다. 그래서 이 모델을 선택하겠습니다. |
| |
모델 비교 개요에서 아래로 스크롤하여 모델 적합성을 살펴봅니다. |
| |
그래서 모델 요약을 통해 모수 추정 테이블을 볼 수 있습니다. |
| |
예측 및 예측 간격을 볼 수 있습니다. 이러한 모든 진단을 살펴보았고 예측을 위해 고려해야 할 후보로서 이 상태 공간 평활화 모델에 만족한다고 가정해 보겠습니다. |
| |
따라서 내 모델과 모델 비교 창에서 다른 State Space Smothing Model을 제거하겠습니다. |
| |
이제 문제는 내가 고려하고 있는 이 ARIMA 모델과 예측을 위해 고려 중인 상태 공간 평활화 모델 중에서 어떻게 선택해야 하는지입니다. |
| |
가능성 기반 기준이 서로 다른 모델 클래스 간에 비교할 수 없음을 알려주는 이 읽기 텍스트 경고가 있음을 알 수 있습니다. |
| |
이것이 의미하는 바는 AIC를 단순히 스크롤하여 볼 수 없으며 AIC가 더 낮기 때문에 ARIMA 모델의 경우 예측에 사용할 것이라고 말할 수 없습니다. |
| |
그것은 유효한 결정이 아닙니다. 그럼 어떻게 해야 할까요? JMP에는 이미 사용 가능한 옵션이 있습니다. 데이터가 충분히 긴 경우. |
| |
홀드백을 설정하려면 시계열 플랫폼을 시작할 때 홀드백에 대한 예측 옵션을 사용할 수 있습니다. |
| |
그리고 이것은 훈련 세트에 사용한 모든 시계열 모델에 맞을 것입니다. 그리고 모델 비교 창에서 AIC별로 모델을 정렬하는 대신, |
| |
그것은 제곱 평균 제곱근 오차 또는 홀드백 세트의 RMSE에 따라 모델을 정렬하고 당신은 홀드백 세트의 RMSE를 최소화하는 모델을 선택할 것입니다. |
| |
그러나 데이터가 홀드백 세트를 사용할 만큼 충분히 길지 않은 경우 홀드백에 대한 예측 옵션을 사용할 수 없으며 ARIMA 모델 또는 상태 공간 평활화 모델 중에서 선택하는 데 도움이 되는 다른 방법이 필요합니다. |
| |
그리고 이것을 하기 위해. |
| |
이것이 내가 추가 기능을 만든 이유입니다. 따라서 추가 기능은 시계열 교차 검증이라는 것을 사용하여 선택하는 데 도움이 됩니다. |
| |
시계열 교차 검증은 기본적으로 시계열을 여러 훈련 및 테스트 세트로 나눕니다. 여기서 연속적인 그룹은 훈련 세트를 한 행씩 확장합니다. |
| |
시계열 교차 검증에 대한 자세한 예를 잠시 보여드리겠지만, 제가 이 방법을 발명한 것은 아니라는 점을 지적하고 싶습니다. 그것에 대해 더 알고 싶다면, |
| |
이 강연을 본 후에 Rob Hyndman 박사의 예측 원칙과 실습을 추천하는 리소스입니다. |
| |
그러나 시계열 교차 검증의 예를 살펴보겠습니다. |
| |
내가 영화 팬이기 때문에 2021년 1월부터 7월까지의 북미 박스오피스 결과에 대한 데이터가 있다고 가정해 보겠습니다. |
| |
그리고 ARIMA 모델 또는 State Space Smoothing 모델을 사용하여 박스 오피스에서 다음 6주를 예측하고 싶습니다. 그리고 사용할 예측을 결정하기 위해 시계열 교차 검증을 사용하고 싶습니다. |
| |
앞서 언급했듯이 시계열 교차 검증은 데이터를 훈련 및 테스트 세트 그룹으로 분류하여 훈련 세트를 하나의 행과 각 연속 그룹으로 확장합니다. |
| |
따라서 초기 훈련 세트에서 원하는 행 수를 결정해야 합니다. |
| |
기본적으로 내 추가 기능은 6개의 시계열 교차 검증 그룹을 갖게 합니다. 따라서 초기 훈련 세트에서 사용할 기본 행 수를 제안하지만 원하는 경우 변경할 수 있습니다. |
| |
이 예제의 훈련 세트에서 기본값인 17개의 초기 행을 유지하겠습니다. |
| |
시계열 교차 검증 추가 기능을 시작하면 표준 시계열 보고서가 제공됩니다. 그러나 보고서 맨 아래에 시계열 교차 유효성 검사 컨트롤에 대한 개요 상자도 추가됩니다. |
| |
따라서 여기에서 첫 번째 훈련 세트의 행 수인 초기 행 수, 관심 있는 예측 길이, 계절 모델에 적합할 경우 기간을 지정해야 합니다. |
| |
그래서 저는 6개의 다른 시계열 교차 검증 그룹을 가질 수 있도록 훈련 세트에서 17개의 행을 기본값으로 유지하겠습니다. |
| |
박스 오피스에서 다음 6주를 예측하고 싶기 때문에 예측 길이는 6입니다. 그리고 여기에서는 이 특정 데이터에 대한 계절 모델을 적합하지 않기 때문에 기간을 결측값과 동일하게 유지하겠습니다. |
| |
따라서 첫 번째 시계열 교차 검증 그룹을 살펴보겠습니다. |
| |
첫 번째 훈련 세트에 17개의 행이 있고 다음 6개의 행이 테스트 세트임을 알 수 있습니다. |
| |
내 추가 기능이 수행할 작업은 교육 세트에 요청한 ARIMA 모델에 맞도록 하는 것입니다. 그리고 추천된 상태 공간 평활화 모델을 훈련 세트에 맞출 것입니다. |
| |
AIC에서 각 클래스의 최상의 모델을 선택하고 선택한 모델 예측을 테스트 세트로 가져 와서 예측 오류를 평가합니다. |
| |
두 번째 시계열 교차 검증 그룹은 훈련 세트를 한 행씩 확장하므로 이제 제 훈련 세트는 다음과 같습니다. |
| |
1~18행으로 구성되고 다음 6행은 내 테스트 세트입니다. 그런 다음 첫 번째 시계열 교차 검증 그룹에서 했던 과정을 반복합니다. |
| |
나는 사용자가 요청한 ARIMA 모델에 적합하고 권장되는 State Space Smoothing 모델에 맞습니다. AIC 예측으로 최상의 모델을 테스트 세트에 선택하고 예측 오차를 저장합니다. |
| |
데이터를 모두 사용할 때까지 이 작업을 계속합니다. 따라서 이 예의 최종 시계열 교차 검증 그룹은 훈련 세트에 대해 1~22행을 사용한 다음 나머지 데이터인 마지막 6개 행을 테스트 세트로 사용합니다. |
| |
그래서 모든 시계열 교차 검증 그룹에 대한 예측 오류를 저장하고 있다고 언급했습니다. |
| |
추가 기능은 두 모델 클래스에 대한 전체 RMSE, MAE 및 MAPE를 보고하고 모든 시계열 교차 검증 그룹에 대한 RMSE 플롯을 제공합니다. |
| |
그리고 이 표와 이 도표를 사용하여 예측 또는 상태 공간 평활화 모델 예측을 위해 모든 모델에 맞는지 결정하는 데 도움을 받을 수 있습니다. |
| |
이 데이터와 함께 작동하는 추가 기능을 살펴보겠습니다. |
| |
그래서 저는 박스 오피스 mojo에서 얻은 박스 오피스 데이터를 열고 이 데이터에 대한 시계열 플랫폼을 시작하는 이 스크립트를 실행하겠습니다. 시계열을 살펴보고 싶기 때문입니다. |
| |
저는 주별 박스 오피스의 평균 총수입을 예측하고 있으며 주마다 변동이 있고 평균 총수입이 커지므로 로그 변환을 하고 싶습니다. |
| |
평균 총계에. 평균 총액에 대한 로그 수식 열을 만들어 이를 수행할 수 있지만 |
| |
필요하지 않습니다. 추가 기능을 사용하면 표준 시계열 플랫폼과 마찬가지로 Box Cox 변환을 수행할 수 있습니다. 따라서 추가 기능을 실행하고 면책 조항을 클릭합니다. 다음 6주 동안의 주별 박스오피스 평균 마감을 예측하고 싶습니다. |
| |
로그 변환을 평균 총계로 가져오고 싶으므로 Lambda가 0인 Box Cox 변환을 사용하겠습니다. |
| |
확인을 클릭하겠습니다. |
| |
따라서 Box Cox 변환 응답에 대한 표준 시계열 보고서가 시작됩니다. 모든 종류의 시계열 모델에 맞출 수 있고 이 빨간색 삼각형 메뉴와 함께 JMP에서 사용할 수 있기를 원했습니다. |
| |
그러나 대신 보고서의 맨 아래로 내려가 시계열 교차 검증을 사용하여 내가 적합해야 하는지와 ARIMA 모델 또는 상태 공간 평활화 모델에 대한 권장 사항을 얻을 것입니다. |
| |
이전 예에서 방금 보여준 6개의 시계열 교차 검증 그룹을 얻게 되므로 초기 행을 17로 유지하겠습니다. |
| |
박스 오피스에서 다음 6주를 예측하고 이 예에서는 기간을 결측값과 동일하게 유지하기 때문에 예측 길이를 6으로 유지합니다. |
| |
이제 실행을 클릭하고 모든 시계열 교차 검증 그룹에 어떤 ARIMA 모델을 적용하고 싶은지 말해야 합니다. 따라서 1의 비계절 차분을 사용하고 싶지만 자기회귀 및 이동 평균 주문을 0 또는 1로 설정하겠습니다. |
| |
따라서 Estimate를 클릭하면 모든 시계열 교차 유효성 검사 그룹이 이 네 가지 ARIMA 모델과 권장되는 State Space Smoothing 모델에 맞을 것입니다. |
| |
그래서 견적을 클릭하면 추가 기능이 이 데이터 세트를 6개의 시계열 교차 검증 그룹으로 확장하여 요청된 모델을 테스트 세트로 예측하고 예측 오류를 저장하는 훈련 세트에 맞추는 것입니다. |
| |
그래서 아래로 스크롤하여 결과를 보겠습니다. 전체 ARIMA 모델이 State Space Smoothing 모델보다 낮은 RMSE, MAE 및 MAPE를 생성한 것을 표에서 볼 수 있습니다. 그리고 줄거리를 보면 |
| |
ARIMA 모델이 모든 시계열 교차 검증 그룹에 대해 더 낮은 RMSE를 생성했음을 알 수 있습니다. |
| |
따라서 이 추가 기능은 상태 공간 스모딩 모델 대신 ARIMA 모델을 사용하여 이 데이터에 대한 예측을 생성할 것을 권장합니다. 따라서 빨간색 삼각형 메뉴로 이동하여 ARIMA 모델 그룹 옵션으로 ARIMA 모델을 맞출 수 있습니다. |
| |
추가 기능의 다른 예를 살펴보겠습니다. 이 다음 예를 수행하기 위해 MC3 Quarterly 샘플 데이터의 하위 집합을 사용하겠습니다. |
| |
MC3 Quarterly 샘플 데이터에는 MC3 모델링 대회의 100개가 넘는 다양한 시계열에 대한 데이터가 포함되어 있습니다. 시리즈는 모두 분기별입니다. |
| |
저는 이것이 매우 다양한 시계열을 가지고 있기 때문에 흥미로운 데이터 세트라고 생각합니다. 그러나 이 강연에서 시간상의 이유로 저는 테이블에서 시리즈 중 3개 중 임의의 하위 집합을 가져왔습니다. |
| |
그래서 내 추가 기능을 시작합니다. |
| |
그리고 런처를 설정합니다. Y 열은 시계열이고 시간은 시간 ID입니다. 그리고 여러 시리즈에 대한 데이터가 있으므로 시리즈 열에 대해 by 옵션을 사용해야 합니다. 다시 다음 2년을 예측하고 싶다고 가정해 보겠습니다. 따라서 8개의 예측 기간을 입력하고 확인을 클릭하겠습니다. |
| |
이것은 예상대로 내 테이블의 모든 다른 시리즈에 대한 시계열 보고서를 불러왔습니다. 또한 테이블의 각 시리즈에 대한 시계열 교차 검증 컨트롤도 있습니다. |
| |
따라서 이러한 각 시리즈에 대해 시계열 교차 검증을 사용하여 예측을 위한 ARIMA 모델 또는 상태 공간 평활화 모델 사용에 대한 권장 사항을 얻을 수 있습니다. |
| |
시간상 첫 번째 시리즈에 대해서만 할 것입니다. 나는 이 시리즈에 대한 계절 모델을 맞추기 위해 4라는 기간을 사용할 것입니다. 실행을 클릭하겠습니다. |
| |
따라서 비계절 차분 차수 1을 사용하지만 다른 모든 자기회귀 이동 평균 차수와 계절 미분 차수는 범위를 0 또는 1로 설정합니다. |
| |
이번에도 분기별 데이터이므로 관찰 기간을 4로 설정합니다. 따라서 견적을 클릭하면 이 32개의 ARIMA 모델에 맞는 일이 발생합니다. |
| |
각 시계열 교차 검증 그룹에서 따라서 추가 기능은 시리즈가 N 691인 위치로 이동합니다. |
| |
6개의 다른 시계열 교차 검증 그룹으로 확장하고 있습니다. 요청한 ARIMA 모델을 훈련 세트에 맞추는 것입니다. 훈련 세트에 대한 권장 상태 공간 평활화 모델. |
| |
AIC에서 최고의 모델을 선택합니다. 테스트 세트로 예측하고 예측 오류를 저장합니다. |
| |
잠시만 기다려 보겠습니다. |
| |
여기 우리가 간다. |
| |
스크롤하여 결과를 볼 수 있습니다. 따라서 표에서 볼 수 있듯이 ARIMA 모델은 상태 공간 평활화 모델보다 RMSE, MAE 및 MAPE가 더 낮습니다. |
| |
그리고 플롯에서 마지막 시계열 교차 검증 그룹을 제외한 모든 그룹에서 ARIMA 모델의 RMSE가 더 낮음을 알 수 있습니다. |
| |
상태 공간 평활화 모델보다 마지막 그룹에서 거의 동일했습니다. |
| |
다시 한 번 시계열 교차 검증이며 ARIMA 모델을 사용하여 시리즈 N 691에 대한 예측을 생성하는 것이 좋습니다. 그리고 다른 시리즈로 이동하여 이 과정을 반복할 수 있으며, 이를 위해 상태 공간 평활화 모델을 권장할 수 있습니다. |
| |
따라서 추가 기능의 다른 기능이 실제로 시계열 교차 검증과 관련이 없다는 것을 보여줌으로써 데모를 마치겠습니다. |
| |
또한 테스트 세트를 사용하여 추가 기능으로 예측을 평가할 수 있는 기능을 제공했으며 Steel Shipments 샘플 데이터를 사용하여 이를 다시 보여 드리겠습니다. 그래서 내 추가 기능을 시작합니다. 알겠습니다. 날짜별로 철강 출하량을 예측하고 싶습니다. |
| |
다음 2년을 예측하고 싶다고 가정해 봅시다. 그래서 24개의 예측 기간을 사용하고 앞서 언급했듯이 시리즈가 충분히 길다면 홀드백 세트의 경우 홀드백 옵션에 대한 예측을 사용할 수 있습니다. |
| |
모델을 선택합니다. 그래서 저는 그렇게 하고 있기 때문에 시계열 교차 검증을 사용할 필요가 없습니다. 따라서 훈련 테스트 세트 옵션을 사용할 수 있습니다. |
| |
내가 선택한 모델을 평가하기 위해 독립적인 테스트 세트를 갖습니다. 테스트 세트의 길이를 12로 설정하겠습니다. |
| |
이것이 의미하는 바는 내 데이터의 마지막 12개 행을 가져와 내 분석에서 완전히 제외하여 내 예측이 수행된 방식을 평가하는 데 사용할 수 있다는 것입니다. 그래서 확인을 클릭하겠습니다. |
| |
그리고 테이블에 다른 열을 추가한 것을 볼 수 있습니다. 행이 테스트 세트에 포함되어 있으면 1이고 그렇지 않으면 0인 테스트 세트에 대한 표시기 열일 뿐입니다. |
| |
그리고 이 시계열 모델을 테스트 세트가 0인 행에만 맞출 것입니다. 이를 통해 테스트 세트의 독립성을 유지할 수 있습니다. |
| |
따라서 이 데이터에 일부 ARIMA 모델을 피팅해 보겠습니다. 나는 이 이야기의 시작 부분에서 1의 계절 및 비계절 차분 차수를 사용하여 동일한 컨트롤을 사용하지만 다른 모든 차수의 범위는 0에서 1까지 둡니다. |
| |
따라서 이 16개의 다른 계절 ARIMA 모델을 실행하기 위해 추정치를 클릭하고 권장 상태 공간 평활화 모델도 맞출 것입니다. |
| |
따라서 모델 비교 창으로 스크롤하여 홀드백 세트에서 제곱 평균 제곱근 오차를 최소화하는 모델이 가법 오차가 없는 추세 가법 계절성을 갖는 상태 공간 평활화 모델임을 알 수 있습니다. |
| |
가장 성능이 좋은 ARIMA 모델이 테스트 세트에서 어떻게 수행되는지에도 관심이 있다고 가정해 보겠습니다. 나도 선택할 수 있다. |
| |
그리고 더 이상 예측을 고려하지 않는 다른 모델은 제거하겠습니다. |
| |
그래서 다시 홀드백 옵션에 대한 예측을 사용했기 때문에 예측에 사용할 이 상태 공간 평활 모델을 선택했지만 ARIMA 모델이 테스트 세트에서 어떻게 작동하는지 궁금합니다. |
| |
테스트 세트 분석 상자까지 아래로 스크롤할 수 있습니다. 그리고 이것이 수행할 작업은 보류 옵션에 대한 예측을 사용했기 때문에 업데이트된 매개변수를 얻기 위해 결합된 훈련 및 보류 데이터에 선택한 두 모델을 모두 다시 맞추는 것입니다. |
| |
그런 다음 테스트 세트로 예측하고 실제 테스트 세트 데이터와 비교하여 예측이 어떻게 수행되었는지 평가합니다. |
| |
실행을 클릭하여 해당 분석을 수행하겠습니다. 그리고 테스트 세트 RMSE, MAE 및 MAPE의 테이블과 예측과 비교한 테스트 세트의 플롯이 있음을 알 수 있습니다. |
| |
State Space Smoothing Model이 홀드백 세트에서 더 잘 수행되었을 뿐만 아니라 테스트 세트에서도 더 잘 수행되었음을 알 수 있습니다. 따라서 이 테스트 세트 분석 옵션은 모델 적합이 수행된 방식을 평가하는 도구를 제공합니다. |
| |
그래서 요약하자면. 추가 기능을 사용하면 시계열 교차 검증을 수행할 수 있습니다. |
| |
JMP에 있는 보류 옵션에 대한 예측을 사용할 만큼 충분히 길지 않은 시계열 데이터가 있지만 여전히 다른 모델 클래스 사용을 고려하려는 경우 이 추가 기능이 유용할 수 있습니다. |
| |
또한 추가 기능은 테스트 세트를 사용하여 예측을 평가할 수 있는 기능을 제공합니다. 그리고 부인과 마찬가지로 시계열 데이터에 대한 모든 모델 선택 측정값과 마찬가지로 추가 기능은 더 정확한 예측을 보장하지 않습니다. |
| |
시간 내 주셔서 대단히 감사합니다. 추가 기능을 사용해 보고 나머지 Discovery를 즐기시기 바랍니다. 매우 감사합니다. |