Gagal pada regresi / prediksi linier pada set data nyata


8

Saya memiliki satu set data yang saya coba lakukan regresi, dan gagal.

Situasi:

  • Ribuan operator robot pertempuran saling bertarung satu sama lain menggunakan robot pertempuran.
  • Beberapa robot pertempuran kuat dan kuat, dan yang lainnya lemah; yang kuat menang lebih sering dan memberikan lebih banyak kerusakan.
  • Operator robot bervariasi dalam keterampilan, dengan yang lebih terampil menang lebih sering, dan memberikan lebih banyak kerusakan
  • Kami memiliki beberapa informasi ringkasan tentang hasil pertempuran mereka, tetapi tidak semua detail.
  • Kita tahu robot perang apa yang mereka gunakan dalam pertempuran mereka, dan berapa kali (termasuk berapa banyak pertempuran yang mereka menangkan), dan kita tahu total kerusakan yang mereka hadapi (dari dua jenis, damageA dan damageB) secara total
  • Beberapa robot lebih baik dalam menimbulkan damageA, sementara yang lain merusakB
  • Untuk operator robot pertempuran tak dikenal yang hanya berdasarkan pada robot apa yang telah mereka gunakan dalam pertempuran (dan berapa kali), kami ingin memperkirakan berapa banyak kerusakan dari masing-masing jenis yang akan mereka capai, dan berapa% pertempuran yang kemungkinan besar mereka menangkan

Sebagai contoh:

  • John telah menggunakan Robot A untuk 4 pertempuran, dan Robot B untuk 2 pertempuran, dan telah menangani 240 unit DamageA
  • James telah menggunakan Robot A untuk 1 pertempuran, dan Robot B untuk 10 pertempuran, dan telah menangani 1010 unit DamageA

Karena itu saya dapat memperkirakan bahwa Robot A mungkin menangani 10 unit Kerusakan A per pertempuran, sedangkan Robot B memberikan 100 unit Kerusakan A per pertempuran, dan dengan demikian jika diminta untuk memperkirakan Kerusakan A yang ditangani oleh Matthew yang hanya memainkan masing-masing dari dua robot untuk 2 pertempuran masing-masing, akan memperkirakan 220 == (10 * 2 + 100 * 2).

Sayangnya, data sebenarnya tidak bersih dan langsung, mungkin karena:

  • Ada perbedaan yang signifikan karena keterampilan operator robot, misalnya, operator yang baik dapat menangani 20 unit kerusakan dengan Robot A sedangkan yang buruk hanya 5 unit.
  • Ada beberapa varians acak karena lawan ditarik jika sampel kecil (misalnya seseorang menarik lawan yang kuat dan kalah meskipun memiliki robot yang lebih baik daripada lawan), meskipun pada akhirnya itu akan keluar
  • Mungkin ada beberapa bias seleksi kecil di mana operator robot terbaik berhasil memilih robot terbaik untuk lebih sering bertempur

Kumpulan data nyata tersedia di sini (630 ribu entri hasil pertempuran yang diketahui operator):

http://goo.gl/YAJp4O

Kumpulan data diatur sebagai berikut, dengan satu entri operator robot per baris:

  • Kolom 1 tanpa label - ID operator
  • pertempuran - pertempuran total yang diikuti oleh operator ini
  • kemenangan - total pertempuran yang telah dimenangkan operator ini
  • kekalahan - total pertempuran yang hilang dari operator ini
  • damageA - total Damage A poin yang ditimbulkan
  • damageB - total Damage B points yang ditimbulkan
  • 130 pasang kolom sebagai berikut:
    • battles_ [robotID] - pertempuran menggunakan robot [robotID]
    • victories_ [robotID] - kemenangan diperoleh dengan menggunakan robot [robotID]

Apa yang telah saya lakukan sejauh ini:

  • Mencoba beberapa model linier menggunakan biglmpaket R yang membangun formula seperti damageA ~ 0 + battles_1501 + battles_4201 + ...mencoba untuk mendapatkan nilai "yang diharapkan" untuk masing-masing robot.
  • Sama, tetapi menghapus asal paksa mencegat dengan tidak termasuk 0 +dalam rumus
  • Sama, tetapi juga termasuk victories_[robotID]dalam variabel independen
  • Sama seperti sebelumnya, tetapi hanya memilih operator robot yang angka kemenangannya dekat dengan angka kekalahan mereka
  • Model regresi linier untuk damageA ~ 0 + battles_1501 + battles_non_1501mana battles_non_1501semua pertempuran di robot selain robot model 1501. Kemudian diulang untuk semua jenis robot lainnya.

Saya melakukan pemeriksaan kewarasan dengan melihat nilai damageA dan damageB yang diprediksi, serta membandingkan rasio kemenangan / pertempuran dengan rasio kemenangan / pertempuran yang sebenarnya bisa kita hitung secara tepat untuk masing-masing robot.

Dalam semua kasus sementara hasilnya tidak sepenuhnya mati, mereka cukup untuk melihat bahwa modelnya tidak berfungsi. Misalnya, beberapa robot mencapai angka kerusakan negatif yang seharusnya tidak terjadi karena Anda tidak dapat melakukan kerusakan negatif dalam pertempuran.

Dalam kasus di mana saya juga menggunakan victories_[robotID]nilai-nilai yang diketahui dalam rumus, banyak battle_[robotID]koefisien akhirnya menjadi angka negatif yang agak besar, jadi saya mencoba memperkirakan untuk operator "rata-rata" battle_[robotID] + victories_[robotID] / 2tetapi juga tidak memberikan hasil yang masuk akal.

Saya agak kehabisan ide sekarang.


4
Kedengarannya seperti Anda tidak cocok dengan model efek campuran yang harus Anda lakukan di sini untuk menjelaskan variasi antara operator dan (bersarang di dalamnya?) Robot. Adapun masalah dengan kerusakan negatif, Anda dapat mengatasinya dengan melakukan semacam transformasi
M. Berk

Terima kasih atas saran Anda, walaupun saya harus mengakui bahwa saya tidak tahu bagaimana menerapkan salah satu dari saran tersebut. Saya mencoba memasukkannya lmebukan saya biglm, tetapi jelas saya perlu melakukan lebih banyak membaca tentang ini untuk memahami apa yang sebenarnya harus disediakan sebagai parameter untuk itu.
james.taylor.1985

1
Apakah ini satu-satunya cara Anda bisa mendapatkan data? Akan lebih baik untuk memiliki dataset dengan satu pengamatan untuk setiap pertempuran, mengidentifikasi dua operator, dua robot, dan hasilnya. Jika data harus datang sebagai informasi ringkasan, dapatkah Anda mendapatkan informasi ringkasan yang berbeda, atau apakah ini?
Bill

Ini dia, data diterima dari sistem eksternal yang dimiliki oleh perusahaan lain dan sayangnya ukuran data yang tersedia. Saya memiliki beberapa variabel ringkasan lain yang tersedia yang tidak saya sebutkan di sini (Anda dapat menganggap mereka DamageB, DamageC, dll ...) tetapi mereka berkorelasi erat dengan DamageA & DamageB jadi saya tidak berpikir mereka berguna dan saya tidak menyebut mereka untuk menghindari kebingungan.
james.taylor.1985

2
Mengapa Anda tidak membuat peringkat ELO untuk operator, mesin, atau varian daripadanya? Juga, data ini mengatakan kedengarannya seperti kesenangan yang luar biasa.
RegressForward

Jawaban:


1

Ini mungkin panggilan untuk pemodelan persamaan simultan , bukan regresi linier.

Probabilitas keberhasilan tergantung pada dua persamaan terpisah, satu mengukur kualitas lawan, orang dan mesin, yang lain mengukur kualitas diri, orang dan mesin. Mereka secara langsung menentang satu sama lain, tetapi hanya satu hasil yang diamati. Tanpa melakukan SEM, saya percaya koefisien Anda bias, yang mungkin mengapa mereka tidak signifikan. Ini mengingatkan pada estimasi penawaran dan persamaan permintaan , yang seringkali tidak menghasilkan apa-apa kecuali dipersiapkan dengan baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.