월별, 일별 및 주별 데이터를 병합하는 방법은 무엇입니까?


11

Google 트렌드는 매주 데이터를 반환하므로 매일 / 매월 데이터와 데이터를 병합하는 방법을 찾아야합니다.

내가 지금까지 한 일은 각 serie를 매일 데이터로 나누는 것입니다.

에서:

2013-03-03-2013-03-09 37

에:

2013-03-03 37 2013-03-04 37 2013-03-05 37 2013-03-06 37 2013-03-07 37 2013-03-08 37 2013-03-09 37

그러나 이것은 내 문제에 많은 복잡성을 추가하고 있습니다. 지난 6 개월 값 또는 월간 데이터의 6 값에서 Google 검색을 예측하려고했습니다. 일일 데이터는 180 개의 과거 값에 대한 작업을 의미합니다. (저는 10 년의 데이터를 가지고 있으므로 월별 데이터는 120 포인트 / 주간 데이터는 500 + / 일일 데이터는 3500 +입니다)

다른 방법은 일별 데이터를 주별 / 월별 데이터로 "병합"하는 것입니다. 그러나이 과정에서 몇 가지 의문이 생깁니다. 합계가 무언가를 나타 내기 때문에 일부 데이터를 평균화 할 수 있습니다. 예를 들어, 강우량은 특정주의 비의 양은 주를 구성하는 각 일의 양의 합계입니다.

제 경우에는 가격, 금리 및 기타 것들을 다루고 있습니다. 가격은 거래량을 고려하는 것이 일반적이기 때문에 주간 데이터는 가중 평균이됩니다. 재무 요율의 경우 일일 요율에서 주간 요율을 작성하기 위해 일부 공식이 조금 더 복잡합니다. 다른 것들에 대해서는 기본 속성을 모릅니다. 나는 그러한 속성들이 의미없는 지표를 피하기 위해 중요하다고 생각한다 (예를 들어, 평균 금융 요금은 의미가 없다).

따라서 세 가지 질문이 있습니다.

알려 지거나 알려지지 않은 속성의 경우 매일 데이터를 매주 / 매월 데이터로 이동하려면 어떻게해야합니까?

실생활에서 의미가없는 양을 소개하기 때문에 매주 / 매월 데이터를 매일 수행 한 것처럼 매일 데이터로 나누는 것이 다소 잘못되었다고 생각합니다. 거의 같은 질문입니다.

알려 지거나 알려지지 않은 속성의 경우 주별 / 월별 데이터에서 일일 데이터로 어떻게 진행해야합니까?

마지막으로, 시간 단계가 다른 두 개의 시계열이 주어지면 더 나은 방법은 무엇입니까? 최저 또는 최대 시간 단계 사용? 나는 이것이 데이터 수와 모델의 복잡성 사이의 타협이라고 생각하지만 그 옵션 중에서 선택할 강력한 논거는 보이지 않습니다.

편집 : 쉽게 할 수있는 도구 (R Python에서도 Excel)를 알고 있다면 매우 높이 평가됩니다.


파이썬의 경우 표준 도구는 팬더입니다. 재무 데이터 시계열을 처리하도록 특별히 설계되었습니다. 팬더
시계

"알 수없는 재산"이 의미하는 바를 조금 확장 하시겠습니까?
TheGrimmScientist 2016 년

답변:


8

서로 다른 시간 단계를 가진 두 개의 시계열이 주어지면 더 나은 방법은 무엇입니까? 최저 또는 최대 시간 단계 사용?

시계열 분석의 경우 두 가지를 모두 수행해야합니다. 일별 데이터 집합으로 최대한 세분화하고 월별 데이터 집합으로 분석을 반복합니다. 월별 데이터 집합을 사용하면 120 개의 데이터 포인트가 있으므로 데이터에 계절성이있는 경우에도 시계열 모델을 얻는 데 충분합니다.

알려 지거나 알려지지 않은 속성의 경우 매일 데이터를 매주 / 매월 데이터로 이동하려면 어떻게해야합니까?

일별 데이터에서 주별 또는 월별 데이터를 얻으려면 스무딩 기능을 사용할 수 있습니다. 재무 데이터의 경우 이동 평균 또는 지수 평활을 사용할 수 있지만, 데이터에 적합하지 않은 경우 R의 스플라인 평활 기능 "smooth.spline"을 사용할 수 있습니다. https://stat.ethz.ch/R -manual / R-patched / library / stats / html / smooth.spline.html

반환 된 모델은 원래 일일 데이터 세트보다 노이즈가 적으며 원하는 시점에 대한 값을 얻을 수 있습니다. 마지막으로 이러한 데이터 포인트는 시계열 분석에 사용할 수 있습니다.

알려 지거나 알려지지 않은 속성의 경우 주별 / 월별 데이터에서 일일 데이터로 어떻게 진행해야합니까?

월별 또는 주별 데이터가있을 때 일별 데이터를 얻으려면 보간을 사용할 수 있습니다. 먼저 데이터를 설명하는 방정식을 찾아야합니다. 이렇게하려면 데이터를 플로팅해야합니다 (예 : 시간에 따른 가격). 요인이 알려지면이 방정식은 해당 요인의 영향을 받아야합니다. 요인을 알 수없는 경우 가장 적합한 방정식을 사용할 수 있습니다. 가장 간단한 방법은 선형 함수 또는 부분 선형 함수이지만 재무 데이터의 경우 제대로 작동하지 않습니다. 이 경우 구간 별 입방 스플라인 보간을 고려해야합니다. :이 링크는 가능한 보간 함수에 대한 자세한 내용이수록되어 http://people.math.gatech.edu/~meyer/MA6635/chap2.pdf .

R에는 시계열 데이터의 보간을 수행하는 방법이 있습니다. 여기서는 일일 값의 간격에 주간 값과 NA가 포함 된 벡터를 만든 다음 "interpNA"함수를 사용하여 NA에 대한 보간 된 값을 가져옵니다. 그러나이 함수는 "approx"함수를 사용하여 보간 된 값을 가져옵니다.이 값은 선형 또는 상수 보간을 적용합니다. R에서 3 차 스플라인 보간을 수행하려면 대신 "splinefun"함수를 사용해야합니다.

알아 두어야 할 것은 시계열 모델은 일반적으로 지수 평활 또는 ARMA (Auto-Regressive Integrated Moving Average) 방법을보고 있는지 여부에 관계없이 미래의 가치를 예측하기 위해 일종의 평균화를 수행한다는 것입니다. 따라서 일일 값을 예측하는 시계열 모델이 최선의 선택이 아닐 수 있지만 주별 또는 월간 모델이 더 나을 수 있습니다.


실용적인 해답 인 것 같습니다. 이것이 차익 거래로 인해 재무 시계열에 해당되는지 확실하지 않습니다.
lcrmorin

귀하의 질문에 대한 답변이 여전히 유효하다고 생각합니다. 시계열 모델의 경우 ARCH (AutoRegressive Conditional Heteroskedasticity) 모델을 볼 수 있습니다.
gchaks

재무 시계열에서 3 차 스플라인을 사용하여 보간 할 때 미래 지향적 편향을 도입하지 않겠습니까? 기계 학습 모델을 구현할 때 이것이 특히 중요하다고 생각합니까?
tsando 2016 년

5

이 분야의 전문가는 아니지만 귀하의 질문은 시계열 집계 및 분해 와 관련이 있다고 생각합니다 . 이 경우 문제를 해결하는 데 도움이 될만한 관련 리소스가 있습니다 (처음 5 개 항목이 주요하지만 대표적이며 마지막 2 개는 보충적임).


2

이것은 매우 만족스러운 답변은 아니지만 여기에 내가 취하는 것이 있습니다 ...

알려 지거나 알려지지 않은 속성의 경우 매일 데이터를 매주 / 매월 데이터로 이동하려면 어떻게해야합니까?

알려 지거나 알려지지 않은 속성의 경우 주별 / 월별 데이터에서 일일 데이터로 어떻게 진행해야합니까?

둘 다 같은 대답 : 알 수없는 속성에 대해서는이 작업을 수행 할 수 없으며 알려진 속성의 경우 값 계산 방법에 따라 다릅니다.

당신이 암시 한대로 :

(예를 들어 평균 금융 요금은 말이되지 않습니다)

속성 / 값을 알거나 알 수없는 모든 경우에 적합한 단일 변환은 없습니다. 알려진 속성이 있더라도 평균, 중앙값, 모드, 최소, 최대, 부울 등 각 유형마다 고유 한 변환이 필요할 수 있습니다.

서로 다른 시간 단계를 가진 두 개의 시계열이 주어지면 더 나은 방법은 무엇입니까? 최저 또는 최대 시간 단계 사용?

가능할 때마다 가능한 가장 작은 단계의 전체 단위를 유지하십시오. 값을 변환하는 방법을 알고 있다고 가정하면 단계를 롤업 할 수 있습니다 (예 : 일별, 월별, 월별). .


2

알려 지거나 알려지지 않은 속성의 경우 매일 데이터를 매주 / 매월 데이터로 이동하려면 어떻게해야합니까?

집합.

예를 들어 사람들이 매일 '위젯'을 검색 한 횟수가 있습니다. 월별 총계를 얻으려면 한 달 동안 총계를 합산하십시오. 좀 더 완전한 버전을 제공하기 위해 각 세분화에서 수집 된 실제 데이터에 대한 자세한 정보가 필요합니다.

알려 지거나 알려지지 않은 속성의 경우 주별 / 월별 데이터에서 일일 데이터로 어떻게 진행해야합니까?

당신은 할 수 없습니다.

물리학에서 비슷한 아이디어는 나이키 스트 주파수 입니다. 일반적인 아이디어는 더 많은 데이터를 가져 오지 않고 데이터에 이미 존재하는 것보다 더 많은 정보를 추가 할 수 없다는 것입니다. 누군가 쿼리를 실행 한 날만 주어지면 해당 쿼리가 실행 된 시간을 어떻게 알 수 있습니까? 약간의 추론을 할 수도 있지만 질문에 대답하는 유일한 방법은 시스템에 더 많은 정보를 직접 또는 간접적으로 가져 오는 것입니다. 월간 변수의 일일 상태 (예 : gchaks, interpolation)에서 정보를 추측하기 위해 수행 할 수있는 작업이 있지만 데이터는 여전히 기본적으로 월간 데이터가 매일 표시되도록 확장됩니다.

서로 다른 시간 단계를 가진 두 개의 시계열이 주어지면 더 나은 방법은 무엇입니까? 최저 또는 최대 시간 단계 사용?

그것은 당신이 대답하려는 것에 전적으로 달려 있습니다.

작은 입도는 노이즈 및 기타 이상에 더 민감합니다. 큰 입도는 질문에 더 자신있게 대답 할 수 있지만 그 중 일부는 유용하지 않습니다. 예를 들어, 사람들이 주말에 공연장을 찾는시기를 보려고 할 때 새로운 나이트 클럽에 대한 마케팅 캠페인을 시작할시기를 알고 자한다면, 작지 않은 일일 데이터를보고 싶을 것입니다. 나이트 클럽의 일반적인 추세를보고 투자하려는 사람을 찾는다면 월간이 더 좋을 것입니다.


2

날짜 세그먼트를 기반으로 데이터를 집계 할 수 있다는 것은 Tableau 소프트웨어를 사용하는 케이크입니다. 데이터를 도구에 간단히 연결 한 다음 메트릭 및 날짜 차원을 보고서 본문 공간으로 끌어서 놓을 수 있습니다. Tableau는 즉각적으로 집계 시각화 및 / 또는 세부 데이터 테이블을 즉시 가동합니다. 연도, 분기, 월, 주, 요일, 시간 등 (도구에서 제공하는 기본 제공, 기본 제공 기능)별로 그룹화 / 합계 할 수 있습니다.

또한 나중에 추가 데이터를 통합하려는 경우 ( '알 수없는 속성'의 의미라고 가정) 날짜를 제공하는 한 다른 데이터 세트를 가져 와서 첫 번째 데이터 세트에 쉽게 추가 할 수 있습니다.

Tableau Public이라고하는 무료 버전을 확인하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.