Hồi quy logistic và cấu trúc bộ dữ liệu


17

Tôi hy vọng rằng tôi có thể hỏi câu hỏi này một cách chính xác. Tôi có quyền truy cập vào dữ liệu play-by-play, do đó, đây là vấn đề với cách tiếp cận tốt nhất và xây dựng dữ liệu đúng cách.

Những gì tôi đang làm là tính toán xác suất chiến thắng một trận đấu NHL với số điểm và thời gian còn lại trong quy định. Tôi nghĩ rằng tôi có thể sử dụng hồi quy logistic, nhưng tôi không chắc bộ dữ liệu sẽ trông như thế nào. Tôi có thể có nhiều quan sát cho mỗi trò chơi và cho mỗi lát thời gian tôi quan tâm không? Tôi có thể có một quan sát cho mỗi trò chơi và phù hợp với các mô hình riêng biệt cho mỗi lát thời gian không? Là hồi quy logisitic thậm chí là cách đúng đắn để đi?

Bất kỳ trợ giúp bạn có thể cung cấp sẽ được rất nhiều đánh giá cao!

Trân trọng.


Câu hỏi khó! Tôi đoán là sẽ giúp biết nhiều hơn tôi về việc đếm các quy trình (và hơn cả Wikipedia: en.wikipedia.org/wiki/Counting_
process

Bạn có quyền truy cập vào tạp chí ASA Chance không? Dường như với tôi có một bài viết liên quan xuất hiện vào năm ngoái hoặc lâu hơn, cho dù về khúc côn cầu hay môn thể thao khác.
rolando2

Tôi cố gắng cải tổ vấn đề (để kích thích thảo luận?): Giả sử chúng ta có một tập hợp các trạng thái riêng biệt trong một trò chơi (ví dụ: trong tic-tac-toe). Bây giờ là hợp lý để tạo một mô hình cho mỗi trạng thái (có thể sử dụng hồi quy logistic) để dự đoán kết quả. Bây giờ TẠI ĐÂY chúng tôi cũng có một trò chơi, nhưng với các trạng thái liên tục (tức là thời gian trò chơi). Câu hỏi bây giờ của OP là: Làm thế nào để a) phân biệt thời gian thành các trạng thái tập hữu hạn hoặc b) làm thế nào để xây dựng một mô hình có tham số thay đổi tùy theo (!) Vào thời gian trò chơi hiện tại. Phải có ai đó đã giải quyết vấn đề "chung" này.
steffen

Câu trả lời:


9

Thực hiện hồi quy logistic với đồng biến "thời gian chơi" và "bàn thắng (đội chủ nhà) - bàn thắng (đội khách)". Bạn sẽ cần một hiệu ứng tương tác của các điều khoản này vì việc dẫn 2 bàn trong hiệp một sẽ có hiệu ứng nhỏ hơn nhiều so với dẫn 2 bàn chỉ còn 1 phút. Phản hồi của bạn là "chiến thắng (đội chủ nhà)".

Đừng chỉ giả tuyến tính cho điều này, phù hợp với một mô hình hệ số thuận lợi khác nhau cho tác dụng của "bàn thắng (đội chủ nhà) - bàn thắng (đội khách khi bỏ)", ví dụ như trong R bạn có thể sử dụng mgcv's gamchức năng với một công thức mô hình như win_home ~ s(time_remaining, by=lead_home). Tạo lead_homethành một yếu tố, để bạn có được hiệu ứng khác nhau time_remainingcho mọi giá trị củalead_home .

Tôi sẽ tạo ra nhiều quan sát cho mỗi trò chơi, một cho mỗi lát thời gian bạn quan tâm.


Tuyệt quá! Cảm ơn đã giúp đỡ. Tôi sẽ sử dụng R và sẽ thiết lập dữ liệu tương tự như cách bạn đề xuất, hiệu ứng tương tác và tất cả. Vui mừng khi thấy tôi đã đi đúng hướng, và tôi thực sự thích ứng thời gian của bạn.
Btibert3

1
Hãy cẩn thận với sự không độc lập được tạo ra bằng cách bao gồm nhiều lát cắt thời gian. Một mô hình hiệu ứng ngẫu nhiên (đa cấp) có thể giúp đỡ.
Eduardo Leoni

1
@ Eduardo: Tôi đồng ý rằng sự phụ thuộc không được mô hình hóa và điều này có chút vấn đề, cảm ơn vì đã chỉ ra nó. Tôi không chắc chắn các hiệu ứng ngẫu nhiên sẽ giúp ích như thế nào - vì kết quả nhị phân win_homekhông đổi ở cấp độ nhóm (tức là đối với mọi lát cắt cho bất kỳ trận đấu cụ thể nào, nó là 0 hoặc 1), bao gồm, ví dụ như đánh chặn ngẫu nhiên, cho các trận đấu sẽ chỉ dẫn đến những vấn đề lớn với sự tách biệt trong bối cảnh này.
fabian

Bạn cũng có thể muốn xem xét bao gồm một tham số cho tổng số bàn thắng được ghi, vì khách hàng tiềm năng có xu hướng được cho đi dễ dàng hơn trong các trò chơi có điểm cao.
James

6

Tôi sẽ bắt đầu mô phỏng dữ liệu từ một mô hình đồ chơi. Cái gì đó như:

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

Bây giờ chúng tôi có một cái gì đó để chơi với. Bạn cũng có thể sử dụng dữ liệu thô, nhưng tôi thấy việc mô phỏng dữ liệu rất hữu ích để suy nghĩ mọi thứ.

Tiếp theo tôi sẽ chỉ vẽ đồ thị dữ liệu, nghĩa là thời gian vẽ của trò chơi so với nhà dẫn đầu, với thang màu tương ứng với xác suất chiến thắng được quan sát.

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

Điều này sẽ giúp bạn tìm thấy sự hỗ trợ của dữ liệu của bạn và cung cấp cho bạn ý tưởng sơ bộ về xác suất trông như thế nào.

Âm mưu


1

Kiểm tra các số liệu thống kê tại Football Outsiders cũng như cuốn sách Mathletics để tìm cảm hứng.

Các anh chàng Football Outsiders đưa ra dự đoán trò chơi dựa trên mỗi lần chơi trong một trận bóng đá.

Winston trong Mathletics cũng sử dụng một số kỹ thuật như lập trình động.

Bạn cũng có thể xem xét các thuật toán khác như SVM.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.