ロジスティック回帰とデータセット構造


17

この質問に正しい方法で質問できることを望んでいます。プレイバイプレイのデータにアクセスできるため、最適なアプローチとデータの適切な構築が問題になります。

私がやろうとしているのは、規定に残っているスコアと時間を考慮して、NHLゲームに勝つ確率を計算することです。ロジスティック回帰を使用できると考えていますが、データセットがどのように見えるかはわかりません。ゲームごとに、また興味のある時間ごとに複数の観察結果がありますか?ゲームごとに1つの観測値があり、時間のスライスごとに個別のモデルに適合しますか?ロジスティック回帰は正しい方法でもありますか?

あなたが提供できるどんな援助も大歓迎です!

宜しくお願いします。


厳しい質問!私の推測では、プロセスをカウントすることについて私が知っているよりも役立つと思われます(そしてウィキペディアが行うよりも多く:en.wikipedia.org/wiki/Counting_process
ワンストップ

ASAジャーナルChanceにアクセスできますか?ホッケーであれ他のスポーツであれ、昨年かそこらで関連記事が掲載されたようです。
rolando2

私は問題を再定式化しようとします(議論を刺激するために?):ゲームに離散状態のセットがあるとしましょう(例えば三目並べ)。結果を予測するために、状態ごとに1つのモデルを作成するのが合理的です(ロジスティック回帰を使用する場合があります)。ここにもゲームがありますが、状態は連続しています(つまり、ゲーム時間)。OPの問題は、a)時間を有限セット状態に離散化する方法、またはb)現在のゲーム時間に応じてパラメーターが変化する(!)モデルを作成する方法です。この「一般的な」問題をすでに解決している人がいるに違いありません。
ステフェン

回答:


9

共変量「プレイ時間」と「ゴール(ホームチーム)-ゴール(アウェイチーム)」でロジスティック回帰を行います。ハーフタイムでの2ゴールリードの効果は、残り1分間の2ゴールリードよりもはるかに小さいため、これらの用語の相互作用効果が必要になります。あなたの応答は「勝利(ホームチーム)」です。

例えば、Rであなたが使用することができます-ちょうどこのため直線性を仮定しない、「目標(アウェイチーム)ゴール(ホームチーム)」の効果のために滑らかに変化する係数モデルをフィットmgcvgamようなモデル式で機能をwin_home ~ s(time_remaining, by=lead_home)。作る lead_homeあなたは別の効果を得るように、要因へtime_remainingのすべての値のためにlead_home

ゲームごとに複数のオブザベーションを作成します。興味のある時間のスライスごとに1つです。


すごい!助けてくれてありがとう。私はRを使用するつもりでしたが、あなたが提案した方法、相互作用効果などに似たデータを設定しました。私が正しい方向に進んでいることをうれしく思います。あなたの時間を本当に感謝しています。
Btibert3

1
複数のタイムスライスを含めることで生成される非独立性に注意してください。ランダム効果(マルチレベル)モデルが役立ちます。
エドゥアルドレオニ

1
@ Eduardo:依存関係がモデル化されておらず、これがやや問題があることを指摘します。ランダムな効果がどのように役立つかわかりません-バイナリの結果win_homeはグループ化のレベルで一定であるため(つまり、任意のマッチのすべてのタイムスライスで0または1)、たとえばランダムインターセプトを含むこのコンテキストでは、分離に大きな問題が生じるだけです。
ファビアン

高得点のゲームではリードがより簡単に与えられる傾向があるため、得点合計のパラメーターを含めることを検討することもできます。
ジェームズ

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

フットボールの部外者の統計オタクとインスピレーションのための本Mathleticsをチェックしてください。

フットボール部外者は、フットボールの試合のすべてのプレーに基づいてゲームの予測を行います。

MathleticsのWinstonは、動的プログラミングなどの手法も使用します。

SVMなどの他のアルゴリズムも検討できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.