농업 기업에서 매년 작물 수확량을 정확하게 예측하는 능력은 사업의 효율성, 수익성 및 지속가능성을 향상시키는 데 매우 중요합니다. 수확량을 조기에 예측할수록 자원 배분, 공급망 관리, 수확 일정 계획, 저장 물류 등을 더욱 효율적으로 결정할 수 있습니다.
현재 사탕무 산업이 직면한 과제는 기후 변화로 인해 연간 수확량 변동성이 커지고 있다는 점입니다. 급변하는 날씨는 수확량 예측을 어렵게 만들고 궁극적으로 모든 이해관계자의 비용 증가로 이어집니다.
데이터 분석과 머신러닝의 힘을 활용하는 것은 수확량 예측의 정확성과 적시성을 향상시키는 한 가지 방법입니다. JMP를 사용하여 사탕무 수확량을 예측하는 예측 모델을 구축했습니다. 데이터 수집, 정제, 전처리, 탐색적 데이터 분석, 특징 엔지니어링, 모델 선택, 학습, 평가, 튜닝, 그리고 이후 배포 및 유지 관리까지 모든 과정을 JMP만으로 수행할 수 있었습니다.
안녕하세요 여러분. 오늘은 JMP를 이용한 예측 모델링, 특히 농작물 수확량 예측에 대해 알아보겠습니다. 하지만 제가 보여드릴 이 과정은 농작물 수확량 예측에만 적용되는 것이 아닙니다. 어떤 분야에도 활용할 수 있습니다. 이 영상을 통해 여러분도 직접 JMP를 활용해 볼 수 있는 유용한 팁들을 알려드리겠습니다. 특히 농작물 수확량 예측에 도움이 되겠지만, 앞서 말씀드린 것처럼 어떤 결과를 예측하든 이 과정은 적용 가능합니다.
JMP를 사용하여 농작물 수확량 예측 모델을 구축하는 방법에 대한 간략한 가이드와 몇 가지 예시를 제공해 드리겠습니다. 앞서 언급했듯이, 이 방법은 모든 예측 작업에 적용할 수 있습니다. 여기서 구체적으로 다루는 문제는 농업 분야에서 사업 의사 결정을 위해 작물 수확량을 조기에 정확하게 예측하는 것이 매우 중요하다는 점입니다. 하지만 사탕무의 수확량과 품질은 해마다 변동성이 매우 큽니다. 이러한 변동성은 시간이 지남에 따라 빈도와 심각성이 증가하고 있어 예측이 더욱 어려워지고 있습니다. 따라서 JMP와 같은 예측 기능을 갖춘 애플리케이션의 활용은 수확량을 정확하게 예측하는 데 점점 더 중요하고 필수적인 요소가 되고 있습니다.
변동성이 증가하는 주요 원인 중 하나는 기후 변화입니다. 여기서 살펴보겠지만, 사탕무 재배에 대한 개요를 간단히 설명해 드리겠습니다. 수확량이란 정확히 무엇을 의미할까요? 여기 사탕무가 있는데, 수확량에는 두 가지 측면이 있습니다. 첫 번째는 사탕무의 크기입니다. 여기 '세척 후 뿌리 무게'라고 적혀 있습니다. 보시다시피 사탕무에 흙이 묻어 있죠. 흙을 제거한 후 무게를 재면 수확량을 알 수 있습니다.
두 번째 요소는 품질 요소인데, 이는 사탕무에 함유된 당분의 농도를 나타냅니다. 간단히 말해서, 당분 농도에 사탕무의 크기를 곱하면 얻을 수 있는 수확량이 됩니다.
수확량을 정확하게 예측하려면 어떻게 해야 할까요? 우선 가장 중요한 것부터 시작해 보겠습니다. 사업 유형에 관계없이 동일한 개념입니다. 우리가 해야 할 일은 가능한 한 많은 지역과 여러 해에 걸쳐 최대한 많은 데이터를 수집하여 농작물 수확량에 영향을 미칠 수 있는 가능한 모든 요인과 그 결과인 수확량 값을 포함하는 하나의 큰 표 형식 데이터 세트를 만드는 것입니다. 이렇게 하면 종속 변수와 함께 다양한 독립 변수를 포함하는 대규모 과거 데이터 세트를 구축할 수 있습니다.
농업의 경우, 이러한 예시들 중 일부는 수확량 데이터, 이상적으로는 토양 건강, 날씨, 병해충, 농장 관리 방식, 종자 품종, 토양 지형 데이터, 원격 탐사 데이터 등과 관련된 데이터가 정말 필요합니다. 데이터가 많을수록, 데이터의 질이 좋을수록, 수확량을 더 정확하게 예측할 수 있고, 수확량 변동을 이러한 요인들 중 어느 하나에 정확하게 귀속시킬 수 있으며, 결과적으로 변수들 간의 차이를 더 잘 구분할 수 있습니다.
농업에서는 최종 수확량에 영향을 미칠 수 있는 변수가 매우 많습니다. 하나의 데이터 세트에 모든 정보를 담는 것은 거의 불가능합니다. 하지만 목표는 수확량을 정확하게 예측하기 위해 가능한 한 많은 데이터를 확보하는 것입니다. 먼저, 얻을 수 있는 모든 데이터를 찾아 하나의 데이터 세트로 통합하고, 데이터를 정리하고 처리합니다. 그런 다음 JMP에서 탐색적 데이터 분석을 수행하여 데이터 세트 내에 숨겨진 패턴과 추세를 발견합니다. 이를 통해 사탕무 품질과 수확량에 가장 중요한 예측 변수를 식별할 수 있습니다. 마지막으로 이러한 중요한 예측 변수를 사용하여 미래 수확량을 예측하는 예측 모델을 구축할 수 있습니다.
JMP 프로세스 개요를 간단히 설명드리겠습니다. 첫 번째 단계는 데이터 수집인데, 사실 이 단계가 가장 중요합니다. 아무리 강조해도 지나치지 않습니다. 데이터의 품질은 매우 중요합니다. 제 멘토 중 한 분이 자주 하시는 말씀인데, "쓰레기를 넣으면 쓰레기가 나온다"는 것입니다. 아무리 좋은 프로세스를 갖추더라도 좋은 데이터가 없으면 좋은 모델을 만들 수 없습니다. 따라서 정말 좋은 품질의 데이터를 확보하는 데 집중해야 합니다.
농업에서 한 가지 이점은 수확량에 중요한 변수 중 하나가 날씨라는 점입니다. 오늘날의 기술 덕분에 우리는 특정 지역이나 경작지 등 특정 지역의 날씨 데이터를 사후적으로 수집하는 매우 효과적인 방법을 가지고 있습니다. 다른 곳에서 얻은 날씨 데이터를 매우 정확하게 가져와 활용할 수 있는 기술이 이미 존재합니다.
농업 분야에서 이는 매우 중요한 부분입니다. 왜냐하면 많은 경우, 협력하는 기업이나 회사가 이미 훌륭한 데이터 관리 체계를 갖추고 있어야 하기 때문입니다. 즉, 중요한 변수들을 추적하고, 가능한 한 많은 데이터를 수집하여 쉽게 접근할 수 있도록 잘 저장해 두어야 합니다. 만약 그렇지 않다면, 좋은 예측 모델을 구축할 가능성이 낮아지고, 실제로 필요한 데이터를 수집하여 제대로 된 모델을 만들기까지 수년이 걸릴 수도 있습니다.
그다음에는 데이터 클리닝, 전처리, 특징 엔지니어링, 탐색적 데이터 분석, 모델 선별, 학습, 튜닝 및 평가가 있습니다. 마지막으로 모델 배포 및 유지 관리가 포함될 수 있습니다. 여기서 첫 번째 단계는 데이터 수집입니다. 앞서 말씀드렸듯이, 데이터는 여러 위치, 여러 데이터베이스, 심지어 여러 스프레드시트에 저장되어 있는 경우가 많은데, JMP의 목표는 이 모든 데이터를 한곳으로 모으는 것입니다.
이 특정 사례, 즉 농작물 수확량 데이터에는 세 가지 데이터 세트가 있었습니다. 생육 기간 중 샘플 데이터, 기상 데이터, 그리고 최종 수확량 데이터였습니다. 중요한 것은 모든 데이터 세트 간의 공통점을 찾는 것인데, 이는 잠시 후에 보여드리겠습니다. 그런 다음 JMP 쿼리 빌더를 사용하여 이러한 모든 데이터 소스를 매우 빠르고 간편하며 정확하게 한 곳으로 가져올 수 있습니다. 이 특정 사례에서는 계약 번호와 연도가 공통점이었고, 이를 통해 데이터를 결합할 수 있었습니다.
그럼 바로 첫 번째 단계인 데이터 전처리 과정을 보여드리겠습니다. 데이터 정규화는 보유하고 있는 데이터나 수행하려는 분석에 따라 필요할 수도 있고 필요하지 않을 수도 있지만, 모델 성능을 향상시킬 수 있습니다. JMP에서 살펴보겠습니다. 여기 JMP 플랫폼과 기상 데이터가 있습니다. JMP를 열고 분포(distribution)로 이동하면 몇 가지 기상 변수가 있습니다. 이 변수들을 분포에 추가해 보겠습니다.
자, 여기를 좀 더 자세히 살펴보겠습니다. 강수량 데이터에서 왼쪽으로 치우친 것을 볼 수 있습니다. 데이터가 정규화되지 않으면 모델에 문제가 생길 수 있습니다. 모델이 왜곡된 데이터에서 관계를 파악하기가 더 어려울 수 있습니다. 이를 해결하기 위해 데이터를 정규화할 수 있습니다. 여기 누적 강수량 데이터를 예로 들어 보겠습니다. JMP를 실행하고 해당 데이터셋을 찾습니다. 새 열을 추가합니다. 공식을 입력하면 됩니다. 원래 열은 강수량 열이었습니다.
자, 이제 이 데이터를 정규화하기 위해 왼쪽으로 치우친 데이터의 제곱근을 구해야 합니다. 그 값을 열의 수식에 추가합니다. 적용을 클릭합니다. 이제 새 열이 생성된 것을 볼 수 있습니다. 이름을 '정규화된 강수량'으로 변경하여 알아보기 쉽게 하겠습니다. 이제 분포로 돌아가서 두 열을 함께 살펴보겠습니다. 이 부분은 무시하세요. 나중에 다시 사용하겠습니다. 여기 원본 데이터가 보입니다. 이 축들을 여기에 붙여넣겠습니다.
보시다시피, 원래 데이터의 분포는 왼쪽으로 치우쳐 있는 것이 분명합니다. 하지만 정규화된 데이터(제곱근을 취한 데이터)를 사용하면 모델링이 훨씬 쉬워질 것입니다. 다만 한 가지 유의해야 할 점은, 클라이언트와 협업할 때 강수량과 같은 데이터는 해석하기 매우 쉽다는 것입니다. 그런데 제곱근을 취한 데이터를 사용해서 모델을 보여주면, 강수량의 제곱근 값은 더 이상 해석하기 어려워집니다. 클라이언트는 대개 명확하게 설명 가능한 데이터를 원하기 때문입니다. 따라서 이 과정의 마지막 단계에서는 클라이언트가 이해하기 쉽도록 해당 값들을 역제곱근으로 변환하는 작업을 해야 할 수도 있습니다.
어쨌든, 우리가 할 수 있는 한 가지는 바로 이것입니다. 다시 슬라이드쇼로 돌아가 보죠. 다음 단계는 데이터 정리입니다. 형식을 지정하는 것은 종종 매우 유용합니다. 먼저 테이블 분할을 살펴볼 수 있습니다. 이 데이터 세트를 보면 강수량, 기온, 최저 기온, 최고 기온에 대한 열과 월 열이 각각 따로 있는 것을 알 수 있습니다. 분석을 위해서는 각 기온 변수별로 월 열이 있는 것이 이상적이지 않을 수 있습니다. 순서를 바꿔야 할 수도 있으므로, 테이블 분할로 이동합니다. 월을 기준으로 분할하려고 합니다. 날씨 데이터를 분할하고 나머지 열은 모두 유지합니다.
자, 여기 새 데이터셋을 보시면, 보시다시피 각 월별로 열이 하나씩 생겼습니다. 이렇게 하면 작업하기가 훨씬 수월해지죠. 여기 1개월, 2개월처럼 각 월별 열이 있습니다. 일단 이렇게 살펴보겠습니다. 이 부분은 나중에 다시 확인하도록 하고, 다음으로는 데이터 결합 기능을 살펴보겠습니다. JMP의 아주 유용한 기능 중 하나로, 여러 데이터셋을 아주 빠르게 결합할 수 있습니다. 한번 간단히 살펴보겠습니다.
보시다시피 날씨 데이터를 열었습니다. 데이터를 분리하여 이제 두 번째 테이블이 생겼는데, 여기에는 계약 ID와 수익률, 그리고 현장 정보가 있습니다. 이 데이터 세트를 날씨 데이터와 결합하고 싶습니다. 어떻게 할까요? 수익률 데이터 세트를 가져와서 테이블, 쿼리 빌더를 사용하면 됩니다. 여기에 수익률 데이터가 있습니다. 여기에 날씨 데이터를 통합하려고 합니다. 이미 JMP에서 JMP와 동일한 두 열, 즉 계약 ID를 찾은 것을 볼 수 있는데, 바로 우리가 원하는 것입니다.
자, 여기서, 만약 그렇지 않다면, 종종 이 부분을 제거해야 할 수도 있습니다. 여기 있는 X 버튼을 클릭하여 제거할 수 있습니다. 하지만 이 경우에는 제거할 필요가 없다고 가정해 보겠습니다. 그런 다음 계약 ID를 추가할 수 있습니다. 계약 ID는 공통 연결 고리로 사용할 것입니다. 이제 어떤 조인을 사용할지 결정합니다. 여기 SQL 쿼리가 있는데, 왼쪽 외부 조인입니다. 하지만 우리는 이것을 원하지 않습니다. 두 데이터 세트에서 데이터가 일치하는 경우에만 내부 조인을 사용합니다. 쿼리를 작성합니다. 여기에서 모든 열을 추가하고 쿼리를 실행하면 두 테이블을 결합한 데이터 세트가 생성됩니다. 여기에 수확량 데이터가 있습니다. 이제 모든 날씨 데이터를 분석할 수 있습니다.
그다음 단계는 이상치를 탐색하는 것입니다. 데이터셋이 작고 열 수가 적은 경우에는 JMP에서 분석하려는 모든 데이터를 입력하기만 하면 이상치를 쉽게 분석할 수 있습니다. 분포 분석의 예를 보여드리겠습니다. 이상치가 어디에 있는지 없는지 쉽게 파악할 수 있는 경우가 많습니다. 여기에서 이상치가 명확하게 나타나는 것을 볼 수 있습니다.
하지만 여기처럼 수백 개의 열이 있는 대규모 데이터 세트에서는 일일이 분석하는 것이 너무 시간이 많이 걸립니다. JMP에서는 분석, 스크리닝, 이상치 탐색을 통해 이상치를 찾아낼 수 있습니다. 여기에서 모든 열을 추가하고 이상치 검사를 실행합니다. 분위수 범위 이상치를 선택해 보겠습니다. 그러면 모든 열과 이 검사를 기반으로 한 이상치 개수 목록이 즉시 표시됩니다. 이상치를 확인하는 방법은 여러 가지가 있지만, 이 방법은 가장 간단합니다. 여기에서 이상치를 선택하고, 제외하거나 제거할 수 있습니다. 이상치를 선택하고 나중에 다시 확인하기 위해 셀에 색을 입히는 등 다양한 옵션이 있습니다. 이 방법을 사용하면 대규모 데이터 세트에서도 모든 이상치를 매우 빠르게 제거할 수 있습니다.
다음 단계는 특징 엔지니어링입니다. 이 단계에서는 더 나은 정보를 제공하여 향후 모델 성능을 향상시킬 수 있습니다. 이를 위해서는 도메인 지식이 필요하거나 탐색적 데이터 분석 결과를 바탕으로 특정 열을 특정 방식으로 조합하면 예측 능력이 향상될 수 있다는 직감을 얻을 수 있습니다. 예를 들어, 이 경우에는 여름 강수량을 밀 단위로 나타내는 특징을 만들고 싶을 수 있습니다. 어떻게 하면 될까요?
아주 간단하게, JMP로 돌아가 보겠습니다. 여기 데이터셋이 있고, 새 열을 추가합니다. '여름 강수량(밀리미터)'이라고 하겠습니다. 공식을 선택하고, '여름 강수량' 데이터셋으로 이동합니다. 통계 기능을 사용하면 평균값을 쉽게 구할 수 있습니다. 적용하고 싶은 변수들을 드래그해서 추가합니다. 이제 보시다시피 '여름 정보'라는 특징이 추가되었습니다. 이것은 앞서 살펴본 사각형 형태의 데이터입니다. 특징 엔지니어링은 우리가 앞으로 살펴봐야 할 부분입니다. 데이터의 예측력을 높이는 특징들을 추가하여 모델의 예측 능력을 향상시키는 것입니다.
탐색적 데이터 분석에서 할 수 있는 몇 가지 추가적인 작업이 있습니다. 반응 변수 선별과 예측 변수 선별은 JMP에서 매우 유용한 도구입니다. 반응 변수 선별은 여기서는 자세히 살펴보지 않겠지만, 예측 변수 선별과 원리는 동일합니다. 반응 변수 선별은 Y와 X의 관계 분석을 통해 개별 변수를 살펴보고, 각 독립 변수가 종속 변수에 미치는 영향을 분석할 수 있습니다.
예측 변수 스크리닝에 대해 좀 더 자세히 살펴보겠습니다. 이는 대규모 데이터 세트에서 숨겨진 추세를 찾아내는 데 매우 유용한 도구입니다. JMP에서 분석 > 스크리닝 > 예측 변수 스크리닝을 선택하면 랜덤 포레스트 머신 러닝 프로세스가 사용됩니다. 우리는 수확량이라는 반응에 가장 중요한 예측 변수가 무엇인지, 그리고 그 이유는 무엇인지 알아보고자 합니다. 이를 통해 재배지가 중요한 변수일 수 있음을 알 수 있습니다. 가능한 한 많은 변수, 즉 모든 데이터를 포함하는 것이 좋습니다.
이건 전부 샘플 데이터라서, 여기서 뭘 기대하지는 마세요. 오늘은 속도를 위해 바로 실행해 볼 수도 있겠네요. 여기에 넣고 실행하면, 백그라운드에서 부트스트랩 포레스트가 실행되면서 수확량의 가장 중요한 예측 변수를 보여줄 겁니다. 이 분석에 따르면, 이건 말 그대로 샘플 데이터이기 때문에 결과를 너무 맹신해서는 안 됩니다. 어느 정도는 걸러서 받아들여야 해요. 보시다시피, 이 경우 수확량의 가장 중요한 예측 변수는 재배지입니다. 세 곳의 재배지와 최저 기온 11도를 고려했을 때 말이죠.
이제, 이를 통해 나중에 모델에 포함하고 싶은 중요한 변수들을 식별하고 강조 표시하거나 선택하여 복사할 수 있습니다. 나중에 이러한 변수들을 활용할 수 있습니다. 예측 변수 선별 도구는 주어진 반응 변수 데이터 세트에서 가장 중요한 예측 변수를 신속하게 식별하는 데 매우 유용한 플랫폼입니다.
이제 우리가 찾아낸 예측 변수들을 바탕으로, 주성분 분석(PCA)을 빠르게 살펴볼 수 있습니다. 여기서는 방금 분리해낸 수확량의 중요한 예측 변수들을 추가합니다. 수확량 자체도 함께 넣습니다. 분석을 실행하고 레이블을 제거하면 다음과 같은 결과가 나옵니다. 이 분석은 데이터 세트에 대한 많은 정보를 빠르게 제공해 줍니다. 매우 복잡한 데이터 세트에서도 변수들 간의 관계를 아주 간단하게 파악할 수 있습니다.
여기서 보시는 것처럼, 이 두 열, 즉 최대 토양 변수 4와 최대 온도 4가 매우 높을 때, 이 그래프에 따르면 지구 복사량은 낮아지는 강한 상관관계를 확인할 수 있습니다. 반대로, 이 그래프에서 직각을 이루는 경우에는 이 변수들 사이에 아무런 관계가 없음을 알 수 있습니다.
이제 모델링 과정에 대해 설명드리겠습니다. 이 방법이 유용한 이유는 두 변수, 즉 최대 토양 온도 2와 최대 온도 2가 예상대로 매우 높은 양의 상관관계를 보이기 때문입니다. 두 변수를 모두 사용하더라도 모델에 추가적인 정보를 얻기는 어려울 것이므로, 모델링 과정에서 둘 중 하나만 선택하고 다른 하나는 제외할 수 있습니다. 이 경우에도 마찬가지로 모델을 더욱 정교하게 다듬기 위해 주성분 분석(PCA)을 활용할 수 있습니다.
슬라이드 자료로 돌아가 보겠습니다. 모델 스크리닝입니다. 이제 중요한 변수들을 파악했습니다. 어떤 모델이 가장 적합한지 알아보고 싶을 수 있습니다. JMP로 돌아가서 쿼리, 스크리닝, 예측 모델링, 모델 스크리닝을 선택합니다. JMP 플랫폼을 열고 앞서 찾은 중요한 변수들을 붙여넣을 수 있습니다. 그런 다음 원하는 결과값을 입력합니다. 비교할 모델들을 모두 선택할 수 있습니다. 모든 시나리오에서 재현성을 위해 난수 시드를 설정하는 것이 매우 중요합니다.
나중에 다시 이 부분을 살펴보려고 할 때, 난수 시드를 입력하지 않으면 다른 결과가 나올 수 있습니다. 하지만 1, 2, 3과 같은 난수 시드 값을 입력하면 항상 쉽고 반복 가능한 결과를 얻을 수 있습니다. 이제 다양한 옵션을 살펴볼 수 있습니다. JMP를 활용하여 유효성 검사 열을 생성할 수도 있고, 다양한 2차 변수를 추가할 수도 있습니다. 이 부분은 시간이 다소 걸릴 수 있으므로 오늘은 실행하지 않겠습니다. 다양한 지표(일반적으로 RSC와 모델 R²)를 기준으로 가장 성능이 좋은 모델을 선택할 수 있으며, 플랫폼 내에서 선택할 수 있는 다른 옵션도 있습니다. 또한, 어떤 모델이 데이터에 가장 적합한지 찾을 수 있는 유용한 도구도 있습니다.
다음 단계는 검증입니다. 이는 모델 학습에 도움이 됩니다. 데이터셋에 과적합되지 않도록 하는 것이 중요합니다. JMP에서 검증 열을 매우 빠르게 생성할 수 있으며, 그 방법을 보여드리겠습니다. 여기 데이터셋이 있습니다. 분석, 예측 모델링, 검증 열 생성을 차례로 선택합니다. 여기에서 열을 기준으로 계층화하는 옵션을 제공합니다.
이 예시에서 데이터셋에는 세 개의 사이트에서 가져온 필드 값이 있습니다. 이제 사이트를 기준으로 층화(stratification)를 하고 싶습니다. 잠시 후 열을 분할할 예정인데, 이 과정에서 1, 2, 3 중 하나의 값이 무작위로 부여될 것이기 때문입니다. 사이트를 기준으로 층화하지 않으면, 데이터셋에 있는 사이트 수, 즉 각 사이트의 행 수가 불균등할 경우, 데이터셋이나 모델이 한쪽으로 치우쳐 편향될 수 있는 문제가 발생할 수 있습니다.
데이터셋을 계층화해야 할 열을 고려하는 것이 중요합니다. 좋습니다. 이제 여러 데이터셋을 빠르게 생성하고, 데이터를 분할하는 여러 옵션을 설정할 수 있습니다. 예를 들어 데이터의 70%는 학습용, 20%는 검증용, 10%는 테스트용으로 사용할 수 있습니다.
여기서 조정된 비율과 얻을 수 있는 행 수를 확인할 수 있습니다. 데이터셋의 크기에 따라 학습, 검증, 테스트 데이터셋을 사용할지, 아니면 학습과 검증 데이터셋만 사용할지, 그리고 어떤 방식으로 분할할지 결정하는 것이 중요합니다. 데이터셋에 따라 이러한 값들은 약간씩 달라질 수 있습니다.
여기서부터 진행해 보겠습니다. 보시다시피, 검증 열을 매우 빠르게 구축하여 모델을 만들 때 검증 열을 추가할 수 있는 옵션을 만들었습니다. 또 하나, 오른쪽에 보이는 것처럼 이것은 부스팅 트리 모델입니다. 언급할 가치가 있는 것은 분할 수, 학습률, 최소 분할 횟수 등 최적의 값으로 모델을 튜닝하는 것입니다. 여기에서 볼 수 있는 모든 값을 조정할 수 있습니다. 튜닝 디자인 테이블을 사용할 수도 있습니다. 시간을 내어 다양한 옵션을 시도해 보고 이러한 값을 변경하여 오류율과 R² 측면에서 최상의 성능을 얻는 방법을 확인하는 것이 좋습니다.
하지만 JMP는 종종 사용자가 입력한 데이터셋을 기반으로 이러한 값에 대한 권장값을 제시하는데, 제가 직접 테스트해본 결과 이 권장값이 매우 정확하고 다른 옵션들을 비교해봐도 가장 좋은 성능을 보이는 경우가 많았습니다. 이 점도 고려해 볼 만합니다.
이제 모델 평가로 넘어가 보겠습니다. 앞서 말씀드린 것처럼 R²와 RMSE가 표시됩니다. 모델 성능을 평가하는 몇 가지 방법을 살펴보겠습니다. JMP로 돌아가면 방금 생성한 모델이 있습니다. 여기에서 요인 프로파일링, 프로파일러를 선택할 수 있습니다. 이미 켜져 있습니다. 여기에 모델과 프로파일러가 있고, 열을 빠르게 저장하고 예측 공식을 생성할 수 있습니다.
예측을 위해 백그라운드에서 실행되는 공식은 데이터 세트의 열에 저장됩니다. 이제 이 작업이 완료되었습니다. 데이터 세트로 이동해 보세요. 여기에서 수확량에 대한 예측값을 확인할 수 있습니다. 이제 Y를 X로 분석해 보겠습니다. JMP에서 이를 수행하는 방법은 여러 가지가 있지만, 이것은 그중 하나일 뿐입니다. 응답 변수는 수확량입니다. 아래로 내려가면 X에 대한 예측값을 볼 수 있습니다. 보시다시피 그다지 좋은 모델은 아닙니다. 이 선에서 회귀선을 도출하고, 회귀선의 적합도를 프로파일러를 통해 확인할 수 있습니다. 이제 이 플랫폼에서 수확량에 대한 예측값을 볼 수 있습니다.
예를 들어, 50을 예측한다고 가정해 봅시다. 그러면 "50을 예측했을 때 실제 값은 얼마일까?"라고 질문할 수 있습니다. 예상값은 49.694입니다. 즉, 과대 예측하고 있는 것입니다. 이때 즉시 95% 신뢰구간의 하한값과 상한값을 확인할 수 있습니다. 이는 모델이 실시간으로 데이터셋을 사용하여 얼마나 잘 예측하는지 살펴보는 한 가지 방법일 뿐입니다. 매우 유용한 도구입니다.
자, 이제 모델 배포에 대해 알아보겠습니다. 프로파일러에는 특히 농작물 수확량 예측에 유용한 멋진 구성 요소들이 있습니다. 미래를 예측하고 싶거나 연중 다양한 시기에 여러 요인이 작용하는 경우, 모델 시뮬레이터를 사용하여 미래의 가능한 시나리오를 예측할 수 있습니다. 지금 바로 보여드리겠습니다.
자, 여기 모델이 있다고 가정해 봅시다. 프로파일러로 내려가 보겠습니다. 자, 이걸 농업에 어떻게 활용할 수 있을까요? 여기 보시면 세 개의 서로 다른 지역이 있습니다. 연중 시기에 따라 다른 변수들이 유입됩니다. 시뮬레이터로 가보죠. 이 모든 변수를 무작위로 변경할 수 있습니다. 숫자를 선택하려면... Shift 키를 누른 상태에서 Shift 키를 누른 채 클릭하고, Shift 키를 누른 채 Ctrl 키를 누릅니다. 네, Ctrl 키를 누른 채 클릭하고 무작위로 선택하면 됩니다.
보시다시피, 이제 모델 실행 횟수를 무작위로 생성하는 옵션이 생겼습니다. 좀 더 자세히 살펴보겠습니다. 실행 횟수는 10,000으로 설정했습니다. 원하는 숫자로 변경할 수 있습니다. 10,000으로 설정해 보겠습니다. 노이즈를 추가하는 옵션도 있습니다. 예를 들어 3월이라고 가정해 보겠습니다. 여기 있는 변수 중 일부는 3월 이전 데이터입니다. 3월에는 다음과 같이 평가할 수 있습니다.
3월의 누적 전 세계 복사량은 실제로 60,000이었습니다. 이 값을 고정하고 나머지 값들은 무작위로 설정한 다음, 평균과 표준편차를 사용하여 모델을 10,000번 반복 실행할 수 있습니다. 이렇게 하면 평균 주변에 더 많은 값이 생성되고 극단적인 값들은 줄어들게 됩니다. 하지만 이렇게 하면 결과를 표로 정리하여 방대한 데이터셋을 만들 수 있습니다. 또한, 매우 유용하게 다양한 시나리오를 시뮬레이션해 볼 수도 있습니다. 예를 들어, 정규분열을 적용한다고 가정해 보겠습니다. 데이터셋의 특정 부분을 제외하고 싶습니다. 여기서는 20 미만의 값과 30 이상의 값을 제외하려고 합니다. 입력하세요.
보시다시피 이제 분포를 검열했습니다. 극단적인 값에 도달할 가능성을 제거한 것입니다. 더 나아가, 데이터를 잘라내고 발생할 수 있는 시나리오를 시뮬레이션할 수도 있습니다. 이제 모든 잠재적 결과를 얻었습니다. 표를 만들고, 분석에서 분포를 선택한 다음, 수율을 추가합니다. 좋습니다. 이제 10,000번의 시뮬레이션을 통해 생성된 모델 값을 출력으로 확인할 수 있습니다.
이제 평균값 53, 중앙값 52.96을 확인할 수 있습니다. 우리가 입력한 값으로 가장 가능성이 높은 시나리오는 약 53이었습니다. 확률이 여기에 잘 표시되어 있는 것을 볼 수 있습니다. 이 열을 복사하여 필요한 출력 위치에 붙여넣고 모델에 다양한 입력값을 적용했을 때의 결과를 그래프로 나타낼 수 있습니다. 이는 다양한 여름 날씨 시나리오에 따른 미래 수확량을 예측하고 모든 가능한 시나리오를 분석에 포함하는 데 매우 유용합니다. 이제 엑셀로 돌아가 보겠습니다.
요약하자면, JMP는 예측 모델을 구축할 수 있는 올인원 플랫폼입니다. 다양한 비즈니스 사례에 적용 가능하며, 여기서는 농업 분야에 대한 몇 가지 통찰력을 보여드렸습니다. 하지만 이 모든 과정은 미래를 예측하려는 모든 사용 사례에 적용 가능합니다. 방대한 데이터 세트를 보유하고 있지만 그 잠재력을 충분히 활용하지 못하는 기업들이 JMP를 통해 데이터를 결합하고 탐색하여 숨겨진 트렌드를 발견하고, 미래에 데이터 기반 의사결정을 내릴 수 있도록 지원합니다. 하지만 무엇보다 중요한 것은 좋은 모델을 만들기 위해서는 충분하고 양질의 데이터가 필요하다는 점입니다. 이 내용이 도움이 되었기를 바랍니다. 질문이 있으시면 언제든지 문의해 주세요. 이상입니다. 감사합니다.