Bagaimana cara menggabungkan data bulanan, harian, dan mingguan?

11

Google Trends mengembalikan data mingguan sehingga saya harus menemukan cara untuk menggabungkannya dengan data harian / bulanan saya.

Apa yang telah saya lakukan sejauh ini adalah memecah setiap seri menjadi data harian, sebagai contoh:

dari:

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

untuk:

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

Tapi ini menambah banyak kerumitan pada masalah saya. Saya mencoba memprediksi pencarian Google dari nilai 6 bulan terakhir, atau 6 nilai dalam data bulanan. Data harian akan menyiratkan pekerjaan pada 180 nilai sebelumnya. (Saya memiliki 10 tahun data sehingga 120 poin dalam data bulanan / 500+ dalam data mingguan / 3500+ dalam data harian)

Pendekatan lain adalah "menggabungkan" data harian dalam data mingguan / bulanan. Tetapi beberapa pertanyaan muncul dari proses ini. Beberapa data dapat dirata-ratakan karena jumlah mereka mewakili sesuatu. Curah hujan misalnya, jumlah hujan dalam satu minggu tertentu akan menjadi jumlah dari jumlah untuk setiap hari yang menyusun minggu.

Dalam kasus saya, saya berurusan dengan harga, tingkat keuangan, dan hal-hal lainnya. Untuk harga, adalah hal biasa di bidang saya untuk memperhitungkan volume yang dipertukarkan, sehingga data mingguan akan menjadi rata-rata tertimbang. Untuk tarif keuangan, ini sedikit lebih rumit karena beberapa formula terlibat untuk membangun tarif mingguan dari tarif harian. Untuk hal-hal lain saya tidak tahu properti yang mendasarinya. Saya pikir sifat-sifat itu penting untuk menghindari indikator yang tidak berarti (rata-rata tingkat keuangan akan menjadi tidak masuk akal misalnya).

Jadi tiga pertanyaan:

Untuk properti yang dikenal dan tidak dikenal, bagaimana cara saya beralih dari data harian ke data mingguan / bulanan?

Saya merasa seperti memecah data mingguan / bulanan menjadi data harian seperti yang saya lakukan agak salah karena saya memperkenalkan jumlah yang tidak masuk akal dalam kehidupan nyata. Jadi pertanyaan yang hampir sama:

Untuk properti yang dikenal dan tidak dikenal, bagaimana saya harus beralih dari data mingguan / bulanan ke data harian?

Last but not least: ketika diberikan dua seri waktu dengan langkah waktu yang berbeda, apa yang lebih baik: Menggunakan langkah waktu terendah atau terbesar? Saya pikir ini adalah kompromi antara jumlah data dan kompleksitas model tetapi saya tidak dapat melihat argumen yang kuat untuk memilih antara opsi-opsi itu.

Sunting: jika Anda tahu alat (dalam R Python bahkan Excel) untuk melakukannya dengan mudah itu akan sangat dihargai.

lcrmorin
sumber
untuk python, alat standar adalah panda. Itu secara khusus dirancang untuk berurusan dengan jadwal waktu data keuangan. panda timeseries
seanv507
Ingin sedikit memperluas apa yang Anda maksud dengan "properti tidak dikenal"?
TheGrimmScientist

Jawaban:

8

ketika diberikan dua seri waktu dengan langkah waktu yang berbeda, apa yang lebih baik: Menggunakan langkah waktu Terendah atau terbesar?

Untuk analisis deret waktu, Anda harus melakukan keduanya: mencapai rincian tertinggi dengan dataset harian, dan juga mengulangi analisis dengan dataset bulanan. Dengan dataset bulanan Anda memiliki 120 titik data, yang cukup untuk mendapatkan model deret waktu bahkan dengan musiman dalam data Anda.

Untuk properti yang dikenal dan tidak dikenal, bagaimana cara saya beralih dari data harian ke data mingguan / bulanan?

Untuk memperoleh data mingguan atau bulanan dari data harian, Anda dapat menggunakan fungsi penghalusan. Untuk data keuangan, Anda bisa menggunakan moving average atau smoothing eksponensial, tetapi jika itu tidak berfungsi untuk data Anda, maka Anda bisa menggunakan fungsi smoothing spline "smooth.spline" di R: https://stat.ethz.ch/R -manual / R-patched / library / stats / html / smooth.spline.html

Model yang dikembalikan akan memiliki lebih sedikit noise daripada dataset harian asli, dan Anda bisa mendapatkan nilai untuk titik waktu yang diinginkan. Akhirnya, titik data ini dapat digunakan dalam analisis rentang waktu Anda.

Untuk properti yang dikenal dan tidak dikenal, bagaimana saya harus beralih dari data mingguan / bulanan ke data harian?

Untuk mendapatkan data harian saat Anda memiliki data bulanan atau mingguan, Anda dapat menggunakan interpolasi. Pertama, Anda harus menemukan persamaan untuk menggambarkan data. Untuk melakukan ini, Anda harus memplot data (mis. Harga dari waktu ke waktu). Ketika faktor diketahui oleh Anda, persamaan ini harus dipengaruhi oleh faktor-faktor tersebut. Ketika faktor tidak diketahui, Anda dapat menggunakan persamaan paling cocok. Yang paling sederhana adalah fungsi linier atau fungsi linear piecewise, tetapi untuk data keuangan ini tidak akan berfungsi dengan baik. Dalam hal ini, Anda harus mempertimbangkan interpolasi spline masing-masing kubik. Tautan ini menjelaskan lebih lanjut tentang kemungkinan fungsi interpolasi: http://people.math.gatech.edu/~meyer/MA6635/chap2.pdf .

Di R, ada metode untuk melakukan interpolasi data deret waktu. Di sini Anda akan membuat vektor dengan mengatakan nilai mingguan dan NAS dalam celah untuk nilai-nilai harian, dan kemudian gunakan fungsi "interpNA" untuk mendapatkan nilai-nilai yang diinterpolasi untuk NAs. Namun, fungsi ini menggunakan fungsi "approx" untuk mendapatkan nilai yang diinterpolasi, yang menerapkan interpolasi linier atau konstan. Untuk melakukan interpolasi spline kubik di R, Anda harus menggunakan fungsi "splinefun".

Yang perlu diperhatikan adalah bahwa model deret waktu biasanya melakukan semacam perata-rataan untuk meramalkan nilai-nilai masa depan apakah Anda sedang melihat metode smoothing eksponensial atau Auto-Regressive Integrated Moving Average (ARIMA). Jadi model rentang waktu untuk memperkirakan nilai harian mungkin bukan pilihan terbaik, tetapi model mingguan atau bulanan mungkin lebih baik.

gchaks
sumber
Tampaknya menjadi jawaban praktis. Tidak yakin apakah ini berlaku untuk deret waktu keuangan karena arbitrase.
lcrmorin
Saya pikir jawaban atas pertanyaan Anda masih valid. Untuk model deret waktu, Anda mungkin ingin melihat model ARCH (AutoRegressive Conditional Heteroskedasticity).
gchaks
ketika Anda melakukan interpolasi menggunakan spline kubik misalnya, dalam seri waktu keuangan, apakah Anda tidak akan memperkenalkan bias berwawasan ke depan? saya pikir ini mungkin sangat penting jika menerapkan untuk model pembelajaran mesin?
tsando
5

Saya bukan ahli di bidang ini, tetapi saya yakin pertanyaan Anda berkaitan dengan agregasi dan disagregasi seri waktu . Jika demikian, berikut adalah beberapa sumber yang mudah-mudahan relevan, yang mungkin dapat membantu dalam memecahkan masalah Anda (lima item utama adalah utama, tetapi representatif, dan dua yang terakhir adalah pelengkap):

Aleksandr Blekh
sumber
2

Ini tidak akan menjadi jawaban yang sangat memuaskan, tapi inilah pendapat saya ...

Untuk properti yang dikenal dan tidak dikenal, bagaimana cara saya beralih dari data harian ke data mingguan / bulanan?

Untuk properti yang dikenal dan tidak dikenal, bagaimana saya harus beralih dari data mingguan / bulanan ke data harian?

Jawaban yang sama untuk keduanya: Anda tidak dapat melakukan ini untuk properti yang tidak dikenal, dan untuk properti yang dikenal akan tergantung pada bagaimana nilai-nilai dihitung.

Seperti yang Anda singgung:

(rata-rata tingkat keuangan akan menjadi tidak masuk akal misalnya)

Tidak ada transformasi tunggal yang akan sesuai dalam semua kasus, apakah properti / nilai diketahui atau tidak diketahui. Bahkan dengan properti yang diketahui, Anda mungkin memerlukan transformasi unik untuk setiap jenis: rata-rata, median, mode, min, maks, boolean, dll.

ketika diberikan dua seri waktu dengan langkah waktu yang berbeda, apa yang lebih baik: Menggunakan langkah waktu Terendah atau terbesar?

Kapan pun memungkinkan, cobalah untuk mempertahankan granularity penuh dari langkah sekecil mungkin. Dengan asumsi Anda tahu bagaimana mengubah nilai-nilai, Anda selalu dapat menyingsingkan langkah-langkah (misalnya, hari ke bulan, bulan ke tahun) ... tetapi Anda tidak akan selalu dapat merekonstruksi langkah-langkah yang lebih kecil dari yang lebih besar setelah konversi yang hilang .

Charlie Greenbacker
sumber
2

Untuk properti yang dikenal dan tidak dikenal, bagaimana cara saya beralih dari data harian ke data mingguan / bulanan?

Pengumpulan.

Misalnya, Anda memiliki jumlah waktu orang mencari 'widget' setiap hari. Jumlahkan total harian selama satu bulan untuk mendapatkan total bulanan. Saya perlu melihat lebih spesifik tentang data aktual yang dikumpulkan pada setiap rincian untuk memberi Anda versi yang lebih lengkap.

Untuk properti yang dikenal dan tidak dikenal, bagaimana saya harus beralih dari data mingguan / bulanan ke data harian?

Kamu tidak bisa

Dalam fisika, ide yang sebanding adalah frekuensi Nyquist . Gagasan umum adalah bahwa Anda tidak dapat menambahkan lebih banyak informasi daripada apa yang sudah Anda miliki dalam data Anda tanpa membawa lebih banyak data. Hanya diberikan pada hari seseorang menjalankan kueri, bagaimana Anda bisa tahu jam berapa hari kueri itu dijalankan? Anda mungkin dapat membuat beberapa kesimpulan, tetapi satu-satunya cara untuk menjawab pertanyaan adalah dengan secara langsung atau tidak langsung membawa lebih banyak informasi ke sistem. Ada beberapa hal yang dapat Anda lakukan untuk membuat tebakan berdasarkan keadaan harian variabel bulanan (seperti yang disebutkan gchaks, interpolasi), tetapi data Anda masih secara fundamental berupa data bulanan yang diperluas untuk dilihat setiap hari.

Ketika diberikan dua seri waktu dengan langkah waktu yang berbeda, apa yang lebih baik: Menggunakan langkah waktu Terendah atau terbesar?

Itu sepenuhnya tergantung pada apa yang Anda coba jawab.

Granularitas yang lebih kecil akan lebih sensitif terhadap kebisingan dan anomali lainnya. Graneritas lager akan dapat menjawab pertanyaan dengan lebih percaya diri, tetapi kehilangan beberapa manfaatnya. Misalnya, jika Anda mencoba melihat kapan orang-orang mulai mencari tempat untuk rencana akhir pekan untuk mengetahui kapan harus meluncurkan kampanye pemasaran untuk klub malam baru, Anda akan ingin melihat data harian, jika tidak lebih kecil. Jika Anda melihat tren umum klub malam untuk mencari tahu dengan siapa Anda ingin berinvestasi, maka bulanan mungkin akan lebih baik.

Ilmuwan TheGrimm
sumber
2

Mampu mengumpulkan data berdasarkan segmen tanggal adalah sepotong kue menggunakan perangkat lunak Tableau. Anda cukup menyambungkan data Anda ke alat, dan kemudian Anda dapat menyeret dan melepaskan dimensi metrik dan tanggal ke ruang badan laporan. Tableau akan segera menyiapkan visualisasi agregat dan / atau tabel data detail, dengan cepat. Anda dapat mengelompokkan / menjumlahkan berdasarkan tahun, kuartal, bulan, minggu, hari, jam, dll. (Standar, fungsi bawaan, di luar kotak yang ditawarkan oleh alat ini)

Juga, jika Anda ingin memasukkan data tambahan nanti (yang saya asumsikan adalah apa yang Anda maksud dengan 'properti tidak dikenal'), Anda dapat mengimpor set data lain dan dengan mudah menambahkannya ke yang pertama, asalkan juga menawarkan tanggal.

Saya akan merekomendasikan memeriksa versi gratis, yang saya percaya disebut Tableau Public.

Deepraj Kunnath
sumber