로지스틱 회귀 및 데이터 세트 구조


17

이 질문에 올바른 방법으로 물어볼 수 있기를 바랍니다. Play-by-Play 데이터에 액세스 할 수 있으므로 최상의 접근 방식과 데이터 구성에 문제가 있습니다.

내가하고자하는 것은 규정에 남은 점수와 시간이 주어지면 NHL 게임에서 이길 확률을 계산하는 것입니다. 로지스틱 회귀를 사용할 수 있다고 생각하지만 데이터 세트의 모양을 잘 모르겠습니다. 게임마다 그리고 내가 관심있는 시간마다 여러 번 관찰 할 수 있습니까? 게임당 하나의 관측 값을 가지고 시간 조각 당 별도의 모델을 적용 할 수 있습니까? 로지스틱 회귀 분석이 올바른 방법일까요?

당신이 제공 할 수있는 어떤 도움이라도 대단히 감사하겠습니다!

친애하는.


어려운 질문! : 내 생각은 내가 계산 프로세스에 대한보다 (그리고 위키 백과는 않습니다 더 이상 알고 도움이 될 것입니다 en.wikipedia.org/wiki/Counting_process를 )
의 OneStop

ASA 저널 Chance에 액세스 할 수 있습니까? 하키 나 다른 스포츠에 관한 작년에 관련 기사가 게재 된 것 같습니다.
rolando2

나는 문제를 재구성하려고 노력한다 (토론을 자극하기 위해?) : 우리가 게임에서 (예를 들어, 틱택 토와 같은) 불연속 상태를 가지고 있다고 가정하자. 이제 결과를 예측하기 위해 상태 당 하나의 모델 (로지스틱 회귀 분석을 사용)을 작성하는 것이 합리적입니다. 이제 여기에도 게임이 있지만 지속적인 상태 (예 : 게임 시간)가 있습니다. 이제 OP의 질문은 : a) 시간을 유한 세트 상태로 이산하는 방법 또는 b) 현재 게임 시간에 따라 매개 변수가 다양한 모델을 만드는 방법입니다! 이 "일반적인"문제를 이미 해결 한 사람이 있어야합니다.
steffen

답변:


9

공변량 "재생 시간"및 "목표 (홈 팀)-목표 (멀리 팀)"로 로지스틱 회귀 분석을 수행하십시오. 하프 타임에 2 골 리드가 1 분 남은 2 골 리드보다 훨씬 더 작은 영향을 미치기 때문에 이러한 용어의 교호 작용 효과가 필요합니다. 귀하의 답변은 "승리 (홈팀)"입니다.

예를 들면 R에서 사용할 수 - 그냥이에 대한 선형성을 가정하지 마십시오, "목표 (원정 팀) 목표 (홈 팀)"의 효과를 부드럽게 변화 계수 모델에 맞게 mgcvgam같은 모델의 공식 기능 win_home ~ s(time_remaining, by=lead_home). 의 각 값에 대해 lead_home다른 효과를 얻을 수 있도록 요인으로 만드십시오 .time_remaininglead_home

게임마다 여러 개의 관측치를 만들려고합니다. 관심있는 시간마다 하나씩입니다.


큰! 도와 주셔서 감사합니다. 저는 R을 사용하려고했고 제안한 방식, 상호 작용 효과 및 모두와 유사한 데이터를 설정하려고했습니다. 내가 올바른 길을 가고 있다는 것을 알게되어 기쁘다. 그리고 나는 당신의 시간을 정말로 감사한다.
Btibert3

1
여러 개의 타임 슬라이스를 포함하여 생성 된 비 독립성에주의하십시오. 임의 효과 (다단계) 모델이 도움이 될 수 있습니다.
Eduardo Leoni 2019

1
@ Eduardo : 나는 의존성이 모델링되지 않았으며 이것이 지적하기 때문에 다소 문제가 있음에 동의합니다. 이진 결과 win_home가 그룹화 수준에서 일정하기 때문에 임의의 효과가 어떻게 도움이되는지 잘 모르겠습니다 (예 : 일치하는 모든 시간 조각의 경우 0 또는 1) 이 맥락에서 분리에 큰 문제가 발생할 것입니다.
fabians

높은 점수를 매기는 게임에서는 리드가 더 쉽게 제공되는 경향이 있으므로 총 득점 목표에 대한 매개 변수를 포함하는 것이 좋습니다.
James

6

장난감 모델에서 데이터 시뮬레이션을 시작합니다. 다음과 같은 것 :

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

이제 우리는 가지고 놀 것이 있습니다. 원시 데이터를 사용할 수도 있지만 데이터를 시뮬레이션하면 생각을하는 데 매우 도움이됩니다.

다음으로, 데이터, 즉 게임 대 리드 홈의 플롯 시간을 플롯하여 승리 확률에 해당하는 색상 스케일을 플롯합니다.

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

이를 통해 데이터 지원을 찾고 확률이 어떤지에 대한 기본적인 아이디어를 얻을 수 있습니다.

음모


1

Football Outsiders 의 통계 멍청이와 Mathletics 책에서 영감을 얻으십시오.

Football Outsiders 사람들은 다음을 기반으로 게임 예측을합니다. 은 축구 경기의 모든 경기 합니다 .

수학의 Winston은 동적 프로그래밍과 같은 일부 기술도 사용합니다.

SVM과 같은 다른 알고리즘도 고려할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.