WTI 원유 가격 예측 AppSheet 문자 분류 모델 1차 완성 (성능 63%) 및 향후 계획
감정적 충동을 이성적 사고로 억눌러 보니 조금은 기분이 낳아졌습니다. 133개월 동안 자산변화를 기록한 것 중에 원유 가격을 기록하였습니다. 이것을 바탕으로 볼린저 밴드와 스토캐스틱의 차트 상태를 feature로 지정하고 AppSheet에서 제공하는 분류모델을 생성했습니다. 현재는 정분류율 63% 이므로 데이터 보정을 위한 계획을 수립합니다.
AppSheet 소개 및 입력 데이터 집계
AppSheet는 구글 자회사가 출시한 no code 모바일 플랫폼입니다. ocr, 바코드 인식 등 기능을 제공하는 데, 문자분류 및 수치회귀 분석 모델도 제공합니다. 숫자 모델의 경우 필드(항목) 이 2개 이상이어도 상관없지만, 문자분류는 반드시 1개 필드(항목)에 입력 데이터를 몰아넣어야 하는 기준이 있습니다.
필자는 132개월 동안 자산 변화를 기록하면서 매주 원유가격을 기록하였었습니다.
![132개월 동안 기록한 WTI 원유 주간 가격](https://blog.kakaocdn.net/dn/ed8rvD/btr7s3BBAbu/SmpopcFAiS6zKEaXx724V1/img.png)
이를 바탕으로 차트의 상태를 볼린저와 스토캐스틱 상태로 정리하였습니다.
![차트 상태 입력 결과](https://blog.kakaocdn.net/dn/A1niO/btr7n2pyesC/PEbGl4ud6V9TiRN07qF6nk/img.png)
그리고 분류분석 기준을 준수하기 위해 이 2개 지표를 하나의 필드로 묶었습니다.
![분류모델 학습 위해 1개 필드 병합 후 모델 분석 결과](https://blog.kakaocdn.net/dn/bcJNOP/btr7eZ2jQly/v8mMgcrhTwYROUhSNnQ6hk/img.png)
22년 6월 부터 수익 중인 원유 ETF와 원유 인버스 매매 시 사용했던, WTI 원유 차트의 볼린저 밴드와 스토캐스틱 상태를 132개월 데이터를 모두 입력해야 했습니다.
![132개월 중 80 개월 입력한 주간 원유 차트 결과](https://blog.kakaocdn.net/dn/McBHW/btr7hSnEpLm/hTyOQ0eNLp7wwQFIYyQsc1/img.png)
아직 50개월 (1년) 데이터 입력은 하지 못했지만 대략 80개월 WTI 원유 볼린저밴드와 스토캐스틱 상태로 차주 원유 상태를 예상하는 모델을 AppSheet 기능으로 생성하였습니다.
AppSheet 분류모델 학습 결과
AppSheet > Intellegence > Predictive Models에서 "원유예측_모델" 문자분석을 위해, 볼린저 밴드와 스토캐스틱 상태를 1개 필드로 병합한 "원유상승_요인"을 입력변수로 학습하였습니다. 그 결과 정분류율 63% 모델이 3분 만에 생성되었습니다.
![63% 정분류율 모델 생성 결과](https://blog.kakaocdn.net/dn/dVReIj/btr7gjMHm7x/Qn97Xtth3v7s1pXNzokYS0/img.png)
생성 방법은 1개 필드의 내용을 원핫 인코딩하여 상승과 하락 라벨을 학습한 것 같습니다. 학습 과정을 공개하지 않아 어떤 분류 알고리즘을 사용하였는지는 알 수 없습니다.
23년 4월 1주차 원유 예상 결과
63% 확률이면 2/3 는 맞다고 가정하고 23년 4월 1주 차 금요일 WIT 원유 상태를 보면 23년 3월 5주 차 보다 상승하는 것으로 예상됩니다.
![23년 4월 1주차 원유 상승 예상](https://blog.kakaocdn.net/dn/k8KCA/btr7iJDZl8w/b6i9R0BIA4tMhnahf2L52K/img.png)
분류모델 정성적 평가
63% 모델은 아직 낮은 성능이므로 50개월 정도 데이터를 추가 입력하고 모델생성 한 후, 차트 상태 기록 기준으로 재정립할 예정입니다.
데이터 입력 마무리 계획 (4월 1주차)
아직 미입력된 50개월 정도 데이터는 4월 1주 차에 모두 입력할 예정입니다.
![미입력 상태](https://blog.kakaocdn.net/dn/cBPWl3/btr7hR3mbL3/yzYCzHJoK0TjV6Ka7lnpA0/img.png)
데이터 보완 계획 (4월 2주 차)
낮은 성능은 스토캐스틱 기준이 모호한 것이 문제로 판단됩니다 이는 132개월 데이터 모두 입력 후 모델 학습 상태를 봐서 재정리할 예정입니다.
![스토캐스틱 상태 기준](https://blog.kakaocdn.net/dn/bdhWRQ/btr7ruzi1IC/srfWsCNdRWvMfpFyyNXuG1/img.png)
![볼린저밴드 상태 기준](https://blog.kakaocdn.net/dn/KH4Zg/btr7hyCzqzs/r0BrMebkXLmqS7XG3LODz0/img.png)