다변량 시계열 예측을위한 벡터 회귀 지원


22

지원 벡터 회귀를 사용하여 시계열 예측을 시도한 사람이 있습니까?

지원 벡터 시스템을 이해하고 지원 벡터 회귀를 부분적으로 이해하지만 시계열, 특히 다변량 시계열을 모델링하는 데 어떻게 사용할 수 있는지 이해하지 못합니다.

몇 가지 논문을 읽으려고했지만 너무 높은 수준입니다. 누구나 다변량 시계열과 관련하여 작동 방식을 평온하게 설명 할 수 있습니까?

편집 : 조금 자세히 설명하기 위해 주가 예제를 설명하려고합니다.

N 일 동안 주가가 있다고 가정 해 봅시다. 그런 다음 매일 우리는 특징 벡터를 구성 할 수 있는데, 간단한 경우 전날의 가격과 현재의 가격이 될 수 있습니다. 각 특징 벡터에 대한 반응은 다음날 가격입니다. 따라서 어제의 가격과 오늘의 가격을 감안할 때 목표는 다음 날 가격을 예측하는 것입니다. 내가 이해하지 못하는 것은 6 개월의 훈련 데이터가 있다고 가정하면 더 최근의 특징 벡터를 어떻게 강조 할 것입니까?


당신이 말하는 논문을 게시 할 수 있습니까?
Ram Ahluwalia

1
로컬 서포트 벡터 회귀 기계, 로드리고 페르난데스와 시계열 예측 svms.org/regression/Fern.pdf 금융 시계열 예측을위한 서포트 벡터 회귀, 웨이 하오 및 Songnian 유, springerlink.com/index/946802600u4552m8.pdf
이야기꾼

답변:


18

지지 벡터 회귀와 관련하여 데이터가 시계열이라는 사실은 주로 방법 론적 관점과 관련이 있습니다. 예를 들어 k- 폴드 교차 검증을 수행 할 수 없으며 백 테스트를 실행할 때 예방 조치를 취해야합니다. / 시뮬레이션.

기본적으로 지원 벡터 회귀는 다른 차별 회귀 기술과 매우 유사한 차별 회귀 기술입니다. 입력 벡터와 관련 응답 세트를 제공하고, 새로운 입력 벡터가 주어지면 응답을 시도하고 예측하는 모델에 적합합니다. 반면 커널 SVR은 학습 단계 이전에 많은 변환 중 하나를 데이터 세트에 적용합니다. 이를 통해 선형 회귀와 달리 데이터 세트에서 비선형 추세를 선택할 수 있습니다. 시작하기에 좋은 커널은 아마도 Gaussian RBF 일 것입니다. 튜닝 할 수있는 하이퍼 파라미터가 있으므로 몇 가지 값을 사용해보십시오. 그리고 무슨 일이 일어나고 있는지 느끼면 다른 커널을 시험해 볼 수 있습니다.

xxiyixtyt, 해당 주에 대한 다음 주 수익률 (예 :). 따라서 SVR은 현재 MA 스프레드 및 20 일 vol을 기반으로 다음 주 수익률을 예측하는 방법을 학습합니다. (이 전략은 효과가 없으므로 너무 흥분하지 마십시오.)).

만약 당신이 읽은 논문이 너무 어려웠다면, 아마도 SVM은 복잡하기 때문에 직접 구현하려고하지 않을 것입니다. IIRC에는 많은 커널이 포함 된 커널 SVM 구현이 포함 된 R 용 "kernlab"패키지가 있으므로 빠른 시작 및 실행 방법을 제공합니다.


@Jason, 답변 주셔서 감사합니다. 훈련하는 동안 오래된 데이터를 덜 중요하게 만드는 방법, 즉 지난 10,000 개의 예제가 아닌 마지막 100 개의 예제에 중요하게하는 방법에 대해 혼란 스럽습니다. 또한 Python에서 SVM을 사용한 경험이 있으므로이를 사용하려고합니다.
raconteur

과거 데이터를 모두 특징 벡터로 사용할 수는 없습니다. 어떻게 든 의미있는 기능으로 변환해야합니다. 예를 들어, 시계열의 지난 20 개 값 또는 시리즈의 현재 값을 이동 평균으로 나눈 평균을 고려하십시오. 이들은 하나의 간단한 숫자로 데이터 세트의 가져 오기 특성을 나타내는 기능입니다. 가능한 한 예측 적이라고 생각하는 10 가지 정도의 기능을 생각해보십시오. 따라서 오래된 데이터를 덜 중요하게 만들려면 기능을 정의 할 때 중요도가 떨어집니다 (즉, 더 짧은 이동 평균 사용).
윌리엄

@Jason, 주가 예를 설명해 드리겠습니다. N 일 동안 주가가 있다고 가정 해 봅시다. 그런 다음 매일 우리는 특징 벡터를 구성 할 수 있는데, 간단한 경우 전날의 가격과 현재의 가격이 될 수 있습니다. 각 특징 벡터에 대한 반응은 다음날 가격입니다. 따라서 어제의 가격과 오늘의 가격을 감안할 때 목표는 다음 날 가격을 예측하는 것입니다. 내가 이해하지 못하는 것은 6 개월의 훈련 데이터가 있다고 가정하면 더 최근의 특징 벡터를 어떻게 강조 할 것입니까?
raconteur

2
오, 지금 무슨 말인지 알 겠어. 짧은 대답은 적어도 SVM을 리엔지니어링하지 않으면 최근의 개념을 이해하지 못한다는 것입니다. SVM은 xy 쌍이 아닌 xy 쌍으로 정의되므로, 최소화하는 목적 함수는 상기 쌍의 함수이다. OTOH에서는 여러 달의 개별 SVM을 실행할 수 있습니다. 하나는 지난 달, 하나는 지난 1 년, 그리고 다른 하나는 지난 2 년입니다. 이전 데이터 (예 : 0.7 * 지난 달 + 0.2 * 지난해 + 0.1 * 지난 2 년).
William

@William .. SVM 이외의 시계열 예측에 가장 적합한 머신 러닝 알고리즘에 대한 권장 사항이 있습니까? 다른 도메인에 적용될 때 답변이 다를까요? 예 : 주가 vs 공급망 예측 (판매하는 제품의 수요를 예측).
Lam

1

질문에 대한 나의 개인적인 대답은 "예"입니다. 과거를 설명 할 수있는 다양한 기능을 선택할 수있는 장단점으로 볼 수 있습니다. 시장에서 방금 한 일을 누군가에게 간결하게 설명 할 수있는 방법 (예 : "가격")을 선택하십시오 1.4 "는 다른 숫자와 관련이없는 경우 아무 것도 알려주지 않습니다]. SVM의 목표는 가격 차이와 연속 2 일 동안의 가격 비율이 가장 간단합니다. 이것들은 가상 거래의 운명에 직접적으로 대응하기 때문에 좋은 선택으로 보입니다.

Jason의 첫 번째 진술에 대해 동의하지 않으면 안됩니다. raconteur가 설명 한 것과 같은 상황에서 k 배 교차 검증을 수행 할 수 있으며 유용합니다 (프로 비저와 함께 설명 할 것입니다). 통계적으로 유효한 이유는이 경우 대상의 인스턴스가 본질적인 관계가 없기 때문입니다. 즉, 서로 다른 차이 또는 비율입니다. 대신 대상 규모보다 더 높은 해상도로 데이터를 사용하기로 선택한 경우, 상관 세트가 트레이닝 세트 및 검증 세트에 나타날 수 있으며, 이는 교차 검증을 손상시킬 수 있습니다 (대조적으로, SVM에는 대상이 원하는 대상과 겹치는 인스턴스가 없습니다.)

교차 검증의 효과를 감소시키는 것은 시장의 행동이 시간이 지남에 따라 변화하는 경우입니다. 이를 처리 할 수있는 두 가지 방법이 있습니다. 첫 번째는 시간을 기능으로 통합하는 것입니다 (미래 에이 기능의 값이 모두 새로운 것이기 때문에 이것이 매우 유용하지는 않습니다). 동기 부여가 효과적인 대안은 워크 포워드 유효성 검사를 사용하는 것입니다. 즉, 슬라이딩 방식으로 방법론을 테스트하고이 기간 이후의 기간에 테스트하는 것입니다. 시간이지나면서 동작이 변경되면 Niels Bohr " 특히 미래에 대한 예측은 매우 어렵습니다. "가 특히 적절합니다. 문헌에는 금융 시장의 행동이 시간이 지남에 따라 변화하여 일반적으로 더 효율적으로 변한다는 증거가 있습니다.

행운을 빕니다!


우리 사이트에 오신 것을 환영합니다!
kjetil b halvorsen

0

Quantum Financier 에는 SVM을 사용하여 재무 시리즈를 예측 하는 예제가 있습니다 . 분류 시스템 (Long / Short)에서 회귀 시스템으로 쉽게 변환 할 수 있습니다.


1
하나님은 그 전략을 사용하지 마십시오! Wall St가 초보자들에게 담배를 피우는 방법은 다음과 같습니다. (책에서 가장 오래된 트릭은 RSI와 같은 기본 기술 분석을 사용하여 통계 모델을 개량하여 신입생들이 금을 강타했다고 생각합니다.
William

1
원래 게시물의 @Jason "또한 이것이 좋은 시스템이라고 생각하지 않는다는 것을 분명히하고 싶습니다." 그러나 서포트 벡터 머신을 시계열에 맞추는 방법에 대한 좋은 예입니다.
Zach
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.