これまでのすべての努力を無視してきたこの非線形重回帰を当てはめる


9

編集:この投稿を作成して以来、私はここに追加の投稿を続けています

以下のテキストの要約:私はモデルに取り組んでいて、線形回帰、ボックスコックス変換、およびGAMを試しましたが、あまり進歩していません

を使用してR、現在、メジャーリーグ(MLB)レベルでマイナーリーグの野球選手の成功を予測するモデルに取り組んでいます。従属変数は、交換(oWAR)上記の攻撃のキャリアの勝利は、MLBレベルでの成功のためのプロキシで、プレイヤーは彼のキャリア(ここでは詳細にわたってに関与しているすべてのプレイに攻勢寄与の合計として測定される- のhttp ://www.fangraphs.com/library/misc/war/)。独立変数は、年齢を含むメジャーリーグレベルでの成功の重要な予測因子であると考えられる統計のzスコアのマイナーリーグ攻撃変数であり(年齢が若いプレーヤーほど成功率が高い傾向にあります)、取り消し率[SOPct ]、歩行率[BBrate]および調整された生産(攻撃的な生産のグローバルな尺度)。さらに、マイナーリーグには複数のレベルがあるため、マイナーリーグのプレーのレベル(ダブルA、ハイA、ローA、ルーキー、トリプルAのショートシーズン[メジャーリーグの前の最高レベル])のダミー変数を含めました。参照変数として])。注:WARを0から1に変化する変数に再スケーリングしました。

変数scatterplotは次のとおりです。

散布図

参考までに、従属変数oWARには次のプロットがあります。

依存変数プロット

線形回帰から始めてoWAR = B1zAge + B2zSOPct + B3zBBPct + B4zAdjProd + B5DoubleA + B6HighA + B7LowA + B8Rookie + B9ShortSeason、次の診断プロットを取得しました。

linearRegressionDiagnostics

残差の不偏性の欠如とランダムな変動の欠如には明らかな問題があります。さらに、残差は正常ではありません。回帰の結果を以下に示します。

linearRegressionResults

前のスレッドのアドバイスに従って、Box-Cox変換を試みましたが、成功しませんでした。次に、ログリンクを使用してGAMを試し、これらのプロットを受け取りました。

スプライン

元の diagnosticChecksGAM

新しい診断プロット GAMDiag

スプラインがデータの近似に役立ったように見えますが、診断プロットはまだ不十分な近似を示しています。編集:私は当初、残差対適合値を見ていると思いましたが、私は間違っていました。最初に表示されたプロットはオリジナル(上記)としてマークされ、後でアップロードしたプロットは新しい診断プロット(上記も)としてマークされます。

GAMResults

モデルのが増加しましたR2

しかし、コマンドによって生成された結果gam.check(myregression, k.rep = 1000)はそれほど有望ではありません。

GAMResults2

誰もがこのモデルの次のステップを提案できますか?これまでの進捗状況を理解するのに役立つと思われるその他の情報を提供させていただきます。あなたが提供できる助けをありがとう。


2
RのGAMに関するこの優れた入門書でコードを見つけました-www3.nd.edu/~mclark19/learn/GAMS.pdfコード:library(car)scatterplotMatrix(mydata [、c(1,1:8)]、pch = 19、cex = .5、reg.line = F、lwd.smooth = 1.25、spread = F、ellipse = T、col = c( 'gray60'、 '#2957FF'、 '#FF8000')、col.axis = 'gray50')
zgall1

1
データセットを共有できますか?また、その散布図行列の+1。それは素晴らしいです。
Zach

1
残念ですが、興味深いデータセットのようです。私の提案は、ランダムフォレストなどの他の機械学習アルゴリズムを試すことです。
Zach

2
ランダムフォレストは、決定木に基づいています。RのrandomForestパッケージとランダムフォレストのWikipediaページを確認してください:en.wikipedia.org/wiki/Random_forest
Zach

2
「従属変数は、そのキャリアの過程でプレーヤーが関与するすべてのプレーの不快な貢献の合計として測定されます。」これは私に飛び出します。ここで深刻な交絡因子は、プレーヤーがどれだけ長い時間プレイしているかです。両方とも、[a]プレイ時間が長いほど、oWARを「収集」するための時間が長くなります。
アフィン2013年

回答:


6

とてもいい仕事です。この状況は、比例オッズセミパラメトリック順序ロジスティックモデルの候補だと思います。lrmR rmsパッケージの関数はモデルに適合します。今のところ、を100-200レベルだけに丸めることができます。間もなく、の新しいバージョンがリリースされ、モデル内の何千ものインターセプトを効率的に許可する、つまりを完全に継続できる新しい機能が追加されます[更新:これは2014年に登場]。比例オッズモデルは、変換方法に不変です。つまり、変位値も不変です。予測平均が必要な場合、は適切な間隔スケールにあると想定されます。Y β Y YYrmsormYβYY


1
レベルでは、Y変数を100から200バケットにビニングすることを意味しますか?もしそうなら、ビンサイズを選択するための好ましい方法はありますか?同じサイズにする必要がありますか?
zgall1 2013年

1
継続的な解決策がない限り、一時的にビニングを実行します。100パーセンタイルにビニングできます。例:require(Hmisc); cut2(y, g=100, levels.mean=TRUE)
Frank Harrell

の新しいバージョンがrmsまもなくリリースされるとおっしゃっていますが、いつリリースされるかわかりますか?
zgall1 2013年

Linuxを使用している場合は、すぐに提供できます。それ以外の場合は、2週間かかると予想されます。
フランクハレル2013年

私はLinuxを使用していないので、待たなければならないでしょう。利用可能になったときにお知らせください。
zgall1 2013年

1

ここでは、従属変数とモデルを再作成することで実りがあると思います。からの残差を見るlm()と、主な問題は、キャリアの高いWAR(すべてのWARの合計として定義した)を持つプレイヤーにあるようです。予測された(スケーリングされた)WARが最大値の1のうち0.15であることに注意してください!この従属変数には、この問題を悪化させる2つのことがあると思います。

  • 単に長時間プレイするプレイヤーは、WARを収集するためにより多くの時間を費やします
  • 優れたプレイヤーはより長く留まる傾向があるため、WARを収集するためにより長い時間を持つ機会があります。

ただし、予測のコンテキストでは、(重みとして、または平均キャリアWARを計算する際の分母として、何らかの方法で)コントロールとして明示的に実行された時間を含めると逆効果になります(また、その影響も非線形になると思います)。したがって、lme4またはを使用した混合モデルでは、時間の明示をやや少なくすることをお勧めしnlmeます。

従属変数は季節的なWARであり、プレーヤーごとに異なる数の季節があります。モデルには、ランダムな効果としてプレーヤーが含まれ、次のようになります。 ij=mii

sWARij=α+σi2+<other stuff>+εij

を使用するとlme4、これは次のようになります
lmer(sWAR ~ <other stuff> + (1|Player), data=mydata)

まだで変換する必要があるかもしれませんが、これはそのフィードバックループで役立つと思います。sWAR


完全に理解しているのかわかりません。従属変数が季節性WARの場合、独立変数は何ですか?各プレーヤーに同一のマイナーリーグスタットラインはありますか?基本的に、マイナーリーグの統計ラインAがメジャーリーグのWAR B、C、D、Eにつながる可能性があると言っていますか?
zgall1 2013年

また、このモデルを掲示するので、私はあなたがここにチェックアウトすることがあり、追加のポストにフォローアップしていますstats.stackexchange.com/questions/61711/...
zgall1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.