Bagaimana model pembelajaran mesin (GBM, NN dll) dapat digunakan untuk analisis survival?

13

Saya tahu bahwa model statistik tradisional seperti regresi Cox Proportional Hazards & beberapa model Kaplan-Meier dapat digunakan untuk memprediksi hari sampai kejadian berikutnya dari suatu peristiwa katakanlah kegagalan dll. Yaitu analisis survival

Pertanyaan

  1. Bagaimana versi regresi model pembelajaran mesin seperti GBM, jaringan saraf dll dapat digunakan untuk memprediksi hari sampai terjadinya suatu peristiwa?
  2. Saya percaya hanya menggunakan hari sampai kejadian sebagai variabel target dan menyederhanakan menjalankan model regresi tidak akan berhasil? Mengapa itu tidak bekerja & bagaimana bisa diperbaiki?
  3. Bisakah kita mengubah masalah analisis survival menjadi klasifikasi dan kemudian memperoleh probabilitas survival? Jika demikian bagaimana cara membuat variabel target biner?
  4. Apa pro & kontra dari pendekatan pembelajaran mesin vs regresi Cox Proportional Hazards & model Kaplan-Meier dll?

Bayangkan sampel data input dalam format di bawah ini

masukkan deskripsi gambar di sini

catatan:

  • Sensor ping data pada interval 10 menit tetapi kadang-kadang data dapat hilang karena masalah jaringan dll sebagaimana diwakili oleh baris dengan NA.
  • var1, var2, var3 adalah prediktor, variabel penjelas.
  • failure_flag memberi tahu apakah mesin gagal atau tidak.
  • Kami memiliki data 6 bulan terakhir pada setiap interval 10 menit untuk setiap id mesin

EDIT:

Prediksi output yang diharapkan harus dalam format di bawah ini masukkan deskripsi gambar di sini

Catatan: Saya ingin memprediksi kemungkinan kegagalan untuk masing-masing mesin selama 30 hari ke depan pada tingkat harian.

GeorgeOfTheRF
sumber
1
Saya pikir ini akan membantu jika Anda bisa menjelaskan mengapa ini adalah data waktu-ke-acara; apa, tepatnya, respons yang ingin Anda modelkan?
Cliff AB
Saya telah mengedit dan menambahkan tabel prediksi output yang diharapkan agar lebih jelas. Beri tahu saya jika Anda memiliki pertanyaan lebih lanjut.
GeorgeOfTheRF
1
Ada beberapa cara untuk mengkonversi data survival ke hasil biner dalam beberapa kasus, misalnya, model hazard waktu diskrit: statisticshorizons.com/wp-content/uploads/Allison.SM82.pdf . Beberapa metode pembelajaran mesin seperti hutan acak dapat memodelkan waktu untuk menampilkan data dengan, misalnya, menggunakan statistik peringkat log sebagai kriteria pemisahan.
dsaxton
@ Maxton Terima kasih. Bisakah Anda menjelaskan bagaimana mengkonversi data survival di atas ke hasil biner?
GeorgeOfTheRF
Setelah melihat lebih dekat sepertinya Anda sudah memiliki hasil biner dengan failure_flag.
dsaxton

Jawaban:

6

Untuk kasus jaringan saraf, ini adalah pendekatan yang menjanjikan: WTTE-RNN - Prediksi churn yang lebih sedikit .

Inti dari metode ini adalah menggunakan Jaringan Syaraf Berulang untuk memprediksi parameter dari distribusi Weibull pada setiap langkah waktu dan mengoptimalkan jaringan menggunakan fungsi kehilangan yang memperhitungkan sensor.

Penulis juga merilis implementasinya di Github .

liori
sumber
2

Lihatlah referensi ini:

https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf

http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf

Juga perhatikan bahwa model berbasis bahaya tradisional seperti Cox Proportional Hazards (CPH) tidak dirancang untuk memprediksi waktu-ke-peristiwa, tetapi untuk menyimpulkan dampak variabel (korelasi) terhadap i) pengamatan peristiwa dan, karenanya ii) kurva kelangsungan hidup . Mengapa? Lihatlah MLE CPH.

Oleh karena itu, jika Anda ingin lebih langsung memprediksi sesuatu seperti "hari sampai kejadian", CPH mungkin tidak disarankan; model lain mungkin lebih baik melayani tugas Anda seperti disebutkan dalam dua referensi di atas.

Quetzalcoatl
sumber
1

Seperti @dsaxton katakan, Anda dapat membangun model waktu diskrit. Anda mengaturnya untuk memprediksi p (gagal pada hari ini diberikan bertahan hingga hari sebelumnya). Input Anda adalah hari ini (dalam representasi apa pun yang Anda inginkan) misalnya satu penyandian panas, integer, .. Spline ... Serta variabel independen lainnya yang mungkin Anda inginkan

Jadi Anda membuat baris data, untuk setiap sampel yang bertahan sampai waktu t-1, apakah itu mati pada waktu t (0/1).

Jadi sekarang probabilitas untuk bertahan hingga waktu T adalah produk p (jangan mati pada waktu t diberikan tidak mati pada t-1) untuk t = 1 hingga T. Yaitu Anda membuat prediksi T dari model Anda dan kemudian berkembang biak bersama.

Saya akan mengatakan alasannya bukan ide untuk secara langsung memprediksi waktu untuk kegagalan adalah karena struktur masalah yang tersembunyi. Misalnya apa yang Anda input untuk mesin yang tidak gagal. Struktur yang mendasarinya secara efektif adalah peristiwa independen: gagal pada waktu t diberikan tidak gagal hingga t-1. Jadi misal jika Anda menganggapnya konstan, maka kurva survival Anda menjadi eksponensial (lihat model bahaya)

Perhatikan jika Anda dapat memodelkan pada interval 10 menit atau mengumpulkan masalah klasifikasi hingga tingkat hari ..

seanv507
sumber