Saya memiliki rangkaian data deret waktu yang meningkat secara linear dari sebuah sensor, dengan rentang nilai antara 50 dan 150. Saya telah menerapkan algoritma Regresi Linier Sederhana agar sesuai dengan garis regresi pada data tersebut, dan saya memperkirakan tanggal kapan rangkaian akan mencapai 120.
Semua berfungsi dengan baik saat seri bergerak ke atas. Tapi, ada kasus di mana sensor mencapai sekitar 110 atau 115, dan itu diatur ulang; dalam kasus seperti itu nilainya akan mulai lagi dari, katakanlah, 50 atau 60.
Di sinilah saya mulai menghadapi masalah dengan garis regresi, karena mulai bergerak ke bawah, dan mulai memprediksi tanggal lama. Saya pikir saya harus mempertimbangkan hanya subset data dari tempat sebelumnya direset. Namun, saya mencoba memahami jika ada algoritma yang tersedia yang mempertimbangkan kasus ini.
Saya baru dalam ilmu data, akan menghargai petunjuk apa pun untuk melangkah lebih jauh.
Edit: saran nfmcclure diterapkan
Sebelum menerapkan saran
Di bawah ini adalah snapshot dari apa yang saya dapatkan setelah memisahkan dataset tempat reset terjadi, dan kemiringan dua set.
menemukan rata-rata dari dua lereng dan menggambar garis dari rata-rata.
Apakah ini ok?
sumber
Jawaban:
Saya pikir ini adalah masalah yang menarik, jadi saya menulis kumpulan data sampel dan penaksir kemiringan linier di R. Saya harap ini membantu Anda dengan masalah Anda. Saya akan membuat beberapa asumsi, yang terbesar adalah Anda ingin memperkirakan kemiringan konstan, yang diberikan oleh beberapa segmen dalam data Anda. Asumsi lain untuk memisahkan blok data linier adalah bahwa 'reset' alami akan ditemukan dengan membandingkan perbedaan berturut-turut dan menemukan yang penyimpangan standar-X di bawah rata-rata. (Saya memilih 4 sd, tetapi ini bisa diubah)
Berikut adalah sebidang data, dan kode untuk menghasilkannya ada di bagian bawah.
Sebagai permulaan, kami menemukan jeda dan pas untuk setiap set nilai-y dan mencatat lereng.
Inilah lerengnya: (3.309110, 4.419178, 3.292029, 4.531126, 3.675178, 4.294389)
Dan kita bisa mengambil mean untuk menemukan kemiringan yang diharapkan (3.920168).
Sunting: Memprediksi kapan seri mencapai 120
Saya menyadari bahwa saya tidak menyelesaikan prediksi ketika seri mencapai 120. Jika kami memperkirakan kemiringan menjadi m dan kami melihat reset pada waktu t ke nilai x (x <120), kami dapat memperkirakan berapa lama lagi untuk mencapai 120 oleh beberapa aljabar sederhana.
Di sini, t adalah waktu yang dibutuhkan untuk mencapai 120 setelah reset, x adalah apa yang diatur ulang, dan m adalah kemiringan yang diperkirakan. Saya bahkan tidak akan menyentuh subjek unit di sini, tetapi praktik yang baik untuk menyelesaikannya dan memastikan semuanya masuk akal.
Edit: Membuat Data Sampel
Data sampel akan terdiri dari 100 poin, derau acak dengan kemiringan 4 (Semoga kita akan memperkirakan ini). Ketika nilai-y mencapai cutoff, mereka mereset ke 50. Cutoff dipilih secara acak antara 115 dan 120 untuk setiap reset. Berikut adalah kode R untuk membuat kumpulan data.
sumber
Masalah Anda adalah bahwa pengaturan ulang bukan bagian dari model linier Anda. Anda juga harus memotong data menjadi fragmen yang berbeda di reset, sehingga tidak ada reset terjadi dalam setiap fragmen, dan Anda bisa menyesuaikan model linier untuk setiap fragmen. Atau Anda dapat membangun model yang lebih rumit yang memungkinkan pengaturan ulang. Dalam hal ini, waktu terjadinya reset harus dimasukkan ke dalam model secara manual, atau waktu reset harus menjadi parameter bebas dalam model yang ditentukan dengan memasukan model ke data.
sumber