Lojistik Regresyon ve Veri Kümesi Yapısı


17

Bu soruyu doğru şekilde sorabileceğimi umuyorum. Tek tek oynatma verilerine erişimim var, bu yüzden en iyi yaklaşım ve verileri düzgün bir şekilde oluşturmak daha önemli.

Yapmak istediğim şey, yönetmelikte kalan puan ve süre göz önüne alındığında bir NHL oyunu kazanma olasılığını hesaplamak. Lojistik bir gerileme kullanabileceğimi düşünüyorum, ancak veri kümesinin neye benzemesi gerektiğinden emin değilim. Oyun başına ve ilgilendiğim her dilim için birden fazla gözlemim olur mu? Oyun başına bir gözlemim olur ve her dilim için ayrı modellere sığar mıyım? Mantıksal gerileme doğru yoldan mı?

Sağlayabileceğiniz herhangi bir yardım çok takdir edilecektir!

Saygılarımla.


Zor soru! Benim tahminim sayma süreçleri hakkında benden daha fazlasını bilmemize yardımcı olur (ve Wikipedia'dan daha fazlasını yapar: en.wikipedia.org/wiki/Counting_process )
onestop

ASA dergisi Chance'e erişiminiz var mı? Bana öyle geliyor ki, geçen sene hokey veya başka bir spor hakkında ilgili bir makale vardı.
rolando2

Sorunu yeniden biçimlendirmeye çalışıyorum (tartışmayı teşvik etmek için?): Diyelim ki bir oyunda bir dizi farklı durum var (örneğin tic-tac-toe). Şimdi, sonucu tahmin etmek için her devlet için bir model (belki de lojistik regresyon kullanarak) oluşturmak mantıklıdır. Şimdi BURADA bir oyunumuz var, ancak sürekli durumlarla (yani oyun zamanı). Şimdi OP'nin sorusu şudur: a) zamanı sonlu set durumlarına nasıl ayrılır veya b) parametreleri geçerli oyun zamanına (!) Bağlı olarak değişen bir modelin nasıl oluşturulacağı. Bu "genel" sorunu zaten çözmüş biri olmalı.
steffen

Yanıtlar:


9

Değişken "oyun süresi" ve "goller (ev sahibi takım) - goller (deplasman takımı)" ile lojistik regresyon yapın. Bu dönemlerin etkileşim etkisine ihtiyacınız olacaktır, çünkü yarı zamanlı bir 2 gol çizgisi sadece 1 dakika geride kalan 2 gol çizgisinden çok daha küçük bir etkiye sahip olacaktır. Yanıtınız "zafer (ev sahibi takım)" dır.

Örneğin R şunu kullanabilirsiniz - sadece bunun için doğrusallık varsayma, "hedefler (uzak takım) hedefler (ev sahibi takım)" etkisi için sorunsuz değişen katsayı modeli uygun mgcv'ın gamböyle bir modeli formülü ile işlevini win_home ~ s(time_remaining, by=lead_home). Make lead_homeEğer farklı bir efekt elde böylece, bir faktör haline time_remainingher değeri için lead_home.

İlgilendiğiniz her zaman dilimi için bir tane olmak üzere oyun başına birden fazla gözlem oluşturabilirim.


Harika! Yardım için teşekkürler. R'yi kullanacaktım ve önerdiğinize, etkileşim efektlerine ve diğerlerine benzer verileri ayarlayacaktım. Doğru yolda olduğumu gördüğüme sevindim ve zamanınızı gerçekten takdir ediyorum.
3:11

1
Birden çok zaman dilimi ekleyerek üretilen bağımsızlığa dikkat etmeyin. Rastgele etkiler (çok seviyeli) bir model yardımcı olabilir.
Eduardo Leoni

1
@ Eduardo: Bağımlılığın modellenmediğine ve bunun biraz problemli olduğuna katılıyorum, belirttiğiniz için teşekkürler. Rastgele etkilerin nasıl yardımcı olacağından emin değilim - ikili sonuç win_homegruplama düzeyinde sabit olduğundan (yani herhangi bir eşleşme için tüm zaman dilimleri için 0 veya 1'dir), örneğin eşleşmeler için rastgele bir kesişim dahil sadece bu bağlamda ayrılma ile büyük sorunlara yol açacaktır.
fabians

Ayrıca, yüksek puanlı oyunlarda olası satışlar daha kolay dağıtıldığından, toplam gol için bir parametre eklemeyi de düşünebilirsiniz.
James

6

Verileri bir oyuncak modelinden simüle etmeye başlardım. Gibi bir şey:

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)
}

Şimdi oynayacağımız bir şey var. Ham verileri de kullanabilirsiniz, ancak verileri düşünmek için çok yararlı buluyorum.

Daha sonra sadece verileri, yani oyunun kurşun evine karşı çizim süresini, renk ölçeğinin gözlenen kazanma olasılığına karşılık gelecek şekilde çizerdim.

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() 

Bu, verilerinizin desteğini bulmanıza yardımcı olur ve olasılıkların nasıl göründüğü hakkında size ham bir fikir verir.

Arsa


1

Biraz ilham almak için Football Outsiders istatistiklerine ve Mathletics kitabına göz atın .

Futbol Yabancılar çocuklar bir futbol oyunundaki her oyuna dayalı oyun tahminleri yapar .

Mathletics'teki Winston, dinamik programlama gibi bazı teknikleri de kullanıyor.

SVM gibi diğer algoritmaları da düşünebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.