Regresi Logistik dan Struktur Data

17

Saya berharap bisa mengajukan pertanyaan ini dengan cara yang benar. Saya memiliki akses ke data play-by-play, jadi ini lebih merupakan masalah dengan pendekatan terbaik dan membangun data dengan benar.

Yang ingin saya lakukan adalah menghitung probabilitas memenangkan game NHL mengingat skor dan waktu yang tersisa dalam regulasi. Saya pikir saya bisa menggunakan regresi logistik, tetapi saya tidak yakin seperti apa dataset seharusnya. Apakah saya akan memiliki beberapa pengamatan per game dan untuk setiap irisan waktu saya tertarik? Apakah saya akan memiliki satu pengamatan per game dan cocok dengan model terpisah per sepotong waktu? Apakah regresi logistik bahkan cara yang tepat untuk pergi?

Setiap bantuan yang Anda berikan akan sangat dihargai!

Salam Hormat.

Btibert3
sumber
Pertanyaan sulit! Dugaan saya adalah bahwa ini akan membantu untuk mengetahui lebih banyak daripada yang saya lakukan tentang proses penghitungan (dan lebih dari Wikipedia: en.wikipedia.org/wiki/Counting_process )
onestop
Apakah Anda memiliki akses ke jurnal ASA Chance? Menurut saya ada artikel yang relevan muncul di tahun terakhir ini, apakah tentang hoki atau olahraga lain.
rolando2
Saya mencoba untuk merumuskan kembali masalah (untuk merangsang diskusi?): Katakanlah kita memiliki seperangkat keadaan diskrit dalam permainan (misalnya dalam tic-tac-toe). Sekarang masuk akal untuk membuat satu model per negara (mungkin menggunakan regresi logistik) untuk memprediksi hasilnya. Sekarang DI SINI kita juga memiliki permainan, tetapi dengan status kontinu (yaitu waktu permainan). Pertanyaannya sekarang dari OP adalah: Bagaimana cara a) mendiskritisasi waktu menjadi kondisi himpunan terbatas atau b) bagaimana membangun model yang parameternya bervariasi tergantung (!) Pada waktu permainan saat ini. Pasti ada seseorang yang sudah memecahkan masalah "umum" ini.
steffen

Jawaban:

9

Lakukan regresi logistik dengan kovariat "waktu bermain" dan "gol (tim tuan rumah) - gol (tim tandang)". Anda akan memerlukan efek interaksi dari istilah-istilah ini karena keunggulan 2 gol di babak pertama akan memiliki efek yang jauh lebih kecil daripada keunggulan 2 gol dengan hanya 1 menit tersisa. Tanggapan Anda adalah "kemenangan (tim tuan rumah)".

Jangan hanya berasumsi linearitas untuk ini, cocok dengan model koefisien lancar bervariasi untuk efek "tujuan (tim tuan rumah) - gol (tim tandang)", misalnya dalam R Anda bisa menggunakan mgcv's gamfungsi dengan rumus model yang seperti win_home ~ s(time_remaining, by=lead_home). Buat lead_homemenjadi faktor, sehingga Anda mendapatkan efek berbeda time_remaininguntuk setiap nilai lead_home.

Saya akan membuat beberapa pengamatan per game, satu untuk setiap irisan waktu yang Anda minati.

orang fabian
sumber
Bagus! Terima kasih untuk bantuannya. Saya akan menggunakan R, dan akan mengatur data yang mirip dengan yang Anda sarankan, efek interaksi dan semuanya. Senang melihat saya berada di jalur yang benar, dan saya benar-benar menghargai waktu Anda.
Btibert3
1
Hati-hati dengan non-independensi yang dihasilkan dengan memasukkan beberapa slice waktu. Model efek acak (multi-level) dapat membantu.
Eduardo Leoni
1
@ Eduardo: Saya setuju bahwa ketergantungannya tidak dimodelkan dan ini agak bermasalah, terima kasih telah menunjukkannya. Saya tidak yakin bagaimana efek acak akan membantu - karena hasil biner win_homekonstan pada tingkat pengelompokan (yaitu untuk semua irisan waktu untuk setiap pertandingan tertentu itu 0 atau 1), termasuk, misalnya intersep acak, untuk pertandingan hanya akan menghasilkan masalah besar dengan pemisahan dalam konteks ini.
Fabian
Anda mungkin juga ingin mempertimbangkan untuk memasukkan parameter untuk total gol yang dicetak, karena lead cenderung lebih mudah diberikan dalam permainan skor tinggi.
James
6

Saya akan mulai mensimulasikan data dari model mainan. Sesuatu seperti:

n.games <- 1000
n.slices <- 90

score.away <- score.home <- matrix(0, ncol=n.slices, nrow=n.games)

for (j in 2:n.slices) {
  score.home[ ,j] <- score.home[ , j-1] + (runif(n.games)>.97)
  score.away[ ,j] <- score.away[ , j-1] + (runif(n.games)>.98)
}

Sekarang kami memiliki sesuatu untuk dimainkan. Anda juga bisa menggunakan data mentah, tetapi saya menemukan simulasi data sangat membantu untuk memikirkan semuanya.

Selanjutnya saya hanya akan memplot data, yaitu, plot waktu pertandingan versus rumah, dengan skala warna yang sesuai dengan probabilitas yang diamati untuk menang.

score.dif <- score.home-score.away

windf <- data.frame(game=1:n.games, win=score.home[ , n.slices] > score.away[, n.slices])

library(reshape)
library(ggplot2)

dnow <- melt(score.dif)
names(dnow) <- c('game', 'time', 'dif')
dnow <- merge(dnow, windf)

res <- ddply(dnow, c('time', 'dif'), function(x) c(pwin=sum(x$win)/nrow(x)))

qplot(time, dif, fill=pwin, data=res, geom='tile') + scale_color_gradient2() 

Ini akan membantu Anda menemukan dukungan data Anda, dan memberi Anda gambaran mentah tentang seperti apa kemungkinannya.

Merencanakan

Eduardo Leoni
sumber
1

Lihatlah statistik kutu buku di Football Outsiders dan juga buku Mathletics untuk mendapatkan inspirasi.

Para pemain Football Outsiders membuat prediksi pertandingan berdasarkan setiap permainan di pertandingan sepakbola.

Winston in Mathletics menggunakan beberapa teknik seperti pemrograman dinamis juga.

Anda juga dapat mempertimbangkan algoritma lain seperti SVM.

Neil McGuigan
sumber