Aylık, günlük ve haftalık veriler nasıl birleştirilir?


11

Google Trends haftalık verileri döndürür, böylece günlük / aylık verilerimle birleştirmenin bir yolunu bulmam gerekir.

Şimdiye kadar yaptığım, örnek için her seriyi günlük verilere bölmek:

dan:

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

için:

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

Ama bu benim problemime çok fazla karmaşıklık katıyor. Son 6 aylık değerlerden veya aylık verilerdeki 6 değerden Google aramalarını tahmin etmeye çalışıyordum. Günlük veriler 180 geçmiş değer üzerinde bir çalışma anlamına gelecektir. (10 yıllık verilerim var, bu yüzden aylık verilerde 120 puan / haftalık verilerde 500+ / günlük verilerde 3500+)

Diğer yaklaşım, günlük verileri haftalık / aylık verilerde "birleştirmek" olacaktır. Ancak bu süreçten bazı sorular ortaya çıkıyor. Bazı verilerin ortalaması alınabilir, çünkü toplamları bir şeyi temsil eder. Yağış, örneğin, belirli bir haftadaki yağmur miktarı, haftaları oluşturan her güne ait miktarların toplamı olacaktır.

Benim durumumda fiyatlar, finansal oranlar ve diğer şeylerle uğraşıyorum. Fiyatlar için benim alanımda değiş tokuş hacmini dikkate almak yaygındır, bu nedenle haftalık veriler ağırlıklı bir ortalama olacaktır. Finansal oranlar için biraz daha karmaşıktır, günlük oranlardan haftalık oranlar oluşturmak için bazı formüller söz konusudur. Diğer şeyler için altta yatan özellikleri bilmiyorum. Bu özelliklerin anlamsız göstergelerden kaçınmak için önemli olduğunu düşünüyorum (ortalama fiancial oranlar örneğin bir anlam ifade etmeyecektir).

Üç soru var:

Bilinen ve bilinmeyen mülkler için günlükten haftalık / aylık verilere nasıl geçmeliyim?

Yaptığım gibi günlük / aylık verileri günlük verilere bölmek biraz yanlış gibi hissediyorum çünkü gerçek hayatta hiçbir anlamı olmayan miktarları tanıtıyorum. Yani neredeyse aynı soru:

Bilinen ve bilinmeyen mülkler için haftalık / aylık verilerden günlük verilere nasıl geçmeliyim?

Son fakat en az değil: farklı zaman adımlarına sahip iki zaman serisi verildiğinde, daha iyi olan nedir: En Düşük veya en büyük zaman adımını kullanma? Bunun veri sayısı ve modelin karmaşıklığı arasında bir uzlaşma olduğunu düşünüyorum, ancak bu seçenekler arasında seçim yapmak için güçlü bir argüman göremiyorum.

Düzenleme: kolayca yapmak için bir araç (hatta R Python Excel'de) biliyorsanız çok takdir edilecektir.


python için standart araç pandalardır. Özellikle finansal veri zamanlamalarıyla başa çıkmak için tasarlanmıştır. pandalar timeseries
seanv507

"Bilinmeyen mülk" ile ne demek istediğinizi biraz genişletmek ister misiniz?
TheGrimmScientist

Yanıtlar:


8

farklı zaman adımlarına sahip iki zaman serisi verildiğinde daha iyi olan nedir: En Düşük veya en büyük zaman adımını kullanma?

Zaman çizelgeleri analiziniz için her ikisini de yapmalısınız: günlük veri kümesiyle mümkün olan en yüksek ayrıntı düzeyine ulaşın ve ayrıca analizi aylık veri kümesiyle tekrarlayın. Aylık veri kümesiyle 120 veri noktanız olur, bu da verilerinizde mevsimsellik olsa bile bir zaman çizelgesi modeli almak için yeterlidir.

Bilinen ve bilinmeyen mülkler için günlükten haftalık / aylık verilere nasıl geçmeliyim?

Günlük verilerden haftalık veya aylık sözde veriler elde etmek için yumuşatma işlevlerini kullanabilirsiniz. Finansal veriler için hareketli ortalama veya üstel yumuşatma kullanabilirsiniz, ancak bunlar verileriniz için işe yaramazsa, R'deki spline yumuşatma işlevini "smooth.spline" kullanabilirsiniz: https://stat.ethz.ch/R elle kullanım / R-yamalı / kütüphane / istatistiklerini / html / smooth.spline.html

Döndürülen modelin orijinal günlük veri kümesinden daha az gürültüsü olacaktır ve istediğiniz zaman noktaları için değerler alabilirsiniz. Son olarak, bu veri noktaları zaman çizelgesi analizinizde kullanılabilir.

Bilinen ve bilinmeyen mülkler için haftalık / aylık verilerden günlük verilere nasıl geçmeliyim?

Aylık veya haftalık verileriniz olduğunda günlük veriler elde etmek için enterpolasyon kullanabilirsiniz. İlk olarak, verileri tanımlamak için bir denklem bulmalısınız. Bunu yapmak için verileri çizmelisiniz (örn. Zaman içindeki fiyat). Faktörler sizin tarafınızdan bilindiğinde, bu denklem bu faktörlerden etkilenmelidir. Faktörler bilinmediğinde, en uygun denklemi kullanabilirsiniz. En basit olanı doğrusal bir işlev veya parçalı doğrusal bir işlev olabilir, ancak finansal veriler için bu iyi çalışmaz. Bu durumda, parçalı kübik spline enterpolasyonunu düşünmelisiniz. Bu bağlantı olası enterpolasyon fonksiyonları hakkında daha ayrıntılı olarak ele alınmaktadır: http://people.math.gatech.edu/~meyer/MA6635/chap2.pdf .

R de zaman çizelgesi verilerinin enterpolasyonunu yapmak için bir yöntem vardır. Burada günlük değerler için boşluklarda haftalık değerleri ve NA'ları içeren bir vektör oluşturacak ve daha sonra NA'lar için enterpolasyonlu değerleri elde etmek için "interpNA" işlevini kullanacaksınız. Bununla birlikte, bu işlev, doğrusal veya sabit enterpolasyon uygulayan enterpolasyonlu değerleri almak için "yaklaşık" fonksiyonunu kullanır. R'de kübik spline enterpolasyonu yapmak için, bunun yerine "splinefun" işlevini kullanmalısınız.

Dikkat edilmesi gereken bir şey, zaman çizelgeleri modellerinin, diğerlerinin yanı sıra üstel yumuşatma veya Otomatik Regresif Entegre Hareketli Ortalama (ARIMA) yöntemlerine bakıp gelecekteki değerleri tahmin etmek için bir tür ortalama yapmaktır. Bu nedenle, günlük değerleri tahmin etmek için bir zamanlama modeli en iyi seçim olmayabilir, ancak haftalık veya aylık modeller daha iyi olabilir.


Pratik bir cevap gibi görünüyor. Bunun arbitraj nedeniyle finansal zaman serileri için geçerli olup olmadığından emin değilim.
lcrmorin

Sorularınızın cevaplarının hala geçerli olduğunu düşünüyorum. Zaman çizelgeleri modeli için ARCH (OtoRegresif Şartlı Değişen Varyans) modellerine bakmak isteyebilirsiniz.
gchaks

finansal zaman serilerinde örneğin kübik spline kullanarak enterpolasyon yaptığınızda, ileriye dönük bir önyargı getirmez misiniz? bence bu bir makine öğrenimi modeli için uygulanırsa özellikle önemli olabilir mi?
tsando

5

Bu alanda uzman değilim, ancak sorunuzun zaman serilerinin toplanması ve ayrıştırılmasıyla ilgili olduğuna inanıyorum . Bu durumda, sorununuzu çözmeye yardımcı olabilecek bazı umarım alakalı kaynaklar aşağıdadır (ilk beş öğe ana, ancak temsili ve son ikisi tamamlayıcıdır):


2

Bu çok tatmin edici bir cevap olmayacak, ama işte benim ...

Bilinen ve bilinmeyen mülkler için günlükten haftalık / aylık verilere nasıl geçmeliyim?

Bilinen ve bilinmeyen mülkler için haftalık / aylık verilerden günlük verilere nasıl geçmeliyim?

Her ikisi için de aynı cevap: bilinmeyen özellikler için bunu yapamazsınız ve bilinen özellikler için değerlerin nasıl hesaplandığına bağlı olacaktır.

Bahsettiğiniz gibi:

(ortalama fiancial faiz oranları örneğin bir anlam ifade etmeyecektir)

Özelliklerin / değerlerin bilinip bilinmediği, her durumda uygun olacak tek bir dönüşüm yoktur. Bilinen özelliklerde bile, muhtemelen her tür için benzersiz bir dönüşüme ihtiyacınız olacaktır: ortalama, medyan, mod, min, maks, boole vb.

farklı zaman adımlarına sahip iki zaman serisi verildiğinde daha iyi olan nedir: En Düşük veya en büyük zaman adımını kullanma?

Mümkün olduğunda, mümkün olan en küçük adımın tam ayrıntı düzeyini korumaya çalışın. Değerlerin nasıl dönüştürüleceğini bildiğinizi varsayarsak, adımları her zaman toplayabilirsiniz (örneğin, gün ay, aydan yıla) ... ancak kayıplı bir dönüşümden sonra daha büyük adımlardan daha küçük adımları yeniden oluşturamazsınız. .


2

Bilinen ve bilinmeyen mülkler için günlükten haftalık / aylık verilere nasıl geçmeliyim?

Toplama.

Örneğin, insanların her gün 'widget' araması yapma süreniz vardır. Aylık toplamları almak için bir aylık günlük toplamları toplayın. Size daha eksiksiz bir sürüm vermek için her ayrıntı düzeyinde toplanan gerçek veriler hakkında daha fazla ayrıntı görmem gerekir.

Bilinen ve bilinmeyen mülkler için haftalık / aylık verilerden günlük verilere nasıl geçmeliyim?

Yapamazsın.

Fizikte, karşılaştırılabilir bir fikir Nyquist frekansıdır . Genel fikir, daha fazla veri getirmeden verilerinizde zaten mevcut olanlardan daha fazla bilgi ekleyememenizdir. Birisinin bir sorguyu çalıştırdığı gün göz önüne alındığında, sorgunun günün hangi saatinde çalıştırıldığını nasıl anlayabilirsiniz? Bazı çıkarımlarda bulunabilirsiniz, ancak soruyu cevaplamanın tek yolu doğrudan veya dolaylı olarak sisteme daha fazla bilgi getirmektir. Aylık değişkenlerin günlük durumunda bilinçli tahminler yapmak için yapabileceğiniz şeyler vardır (bahsi geçen gchaklar, enterpolasyon gibi), ancak verileriniz hala temelde aylık verilere bakmaktadır.

Farklı zaman adımlarına sahip iki zaman serisi verildiğinde, daha iyi olan nedir: En Düşük veya en büyük zaman adımını kullanma?

Bu tamamen neyi cevaplamaya çalıştığınıza bağlıdır.

Daha küçük taneciklik gürültü ve diğer anormalliklere karşı daha duyarlı olacaktır. Lager ayrıntı düzeyi soruları daha güvenli bir şekilde cevaplayabilecektir, ancak yararlılığının bir kısmını kaybedecektir. Örneğin, insanların yeni bir gece kulübü için ne zaman pazarlama kampanyaları başlatacağını bilmek için hafta sonu planlarına ne zaman yer aramaya başladığını görmeye çalışıyorsanız, daha küçük olmasa da günlük verilere bakmak istersiniz. Kime yatırım yapmak istediğinizi bulmak için gece kulüplerinin genel trendine bakıyorsanız, aylık muhtemelen daha iyi olurdu.


2

Tarih segmentlerine göre veri toplayabilmek Tableau yazılımını kullanan çok kolay bir iştir. Verilerinizi araca bağlamanız yeterlidir ve ardından metrik ve tarih boyutlarını bir rapor gövde alanına sürükleyip bırakabilirsiniz. Tableau, toplu görselleştirmeleri ve / veya ayrıntı veri tablolarını anında kamçılayacaktır. Yıl, çeyrek, ay, hafta, gün, saat vb.'ye göre gruplandırabilir / toplayabilirsiniz (standart, yerleşik, araç tarafından sunulan işlevselliği dışında)

Ayrıca, daha sonra ek verileri dahil etmek istiyorsanız (ki bu 'bilinmeyen özellikler' ile kastettiğiniz anlamına gelir), başka bir veri kümesi içe aktarabilir ve tarihler de sunulduğu sürece kolayca birincisine ekleyebilirsiniz.

Tableau Public adında olduğuna inandığım ücretsiz sürümü kontrol etmenizi tavsiye ederim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.