多変量回帰を使用してバスケットボールをプレイしようとしています。具体的には、X、Y、ターゲットからの距離に基づいて、ピッチ、ヨー、キャノンの強さを予測する必要があります。出力パラメーターごとにマルチプル変数を使用した多変量回帰を使用することを考えていました。これを行うためのより良い方法はありますか?
また、最適なフィットを得るために直接ソルブを使用する必要がありますか、それとも最急降下法を使用する必要がありますか?
多変量回帰を使用してバスケットボールをプレイしようとしています。具体的には、X、Y、ターゲットからの距離に基づいて、ピッチ、ヨー、キャノンの強さを予測する必要があります。出力パラメーターごとにマルチプル変数を使用した多変量回帰を使用することを考えていました。これを行うためのより良い方法はありますか?
また、最適なフィットを得るために直接ソルブを使用する必要がありますか、それとも最急降下法を使用する必要がありますか?
ElKaminaの答えは正しいですが、これについて注意すべきことの1つは、k個の独立した通常の最小二乗回帰を実行することと同じであるということです。つまり、Xからピッチ、Xからヨー、Xから強度への個別の線形回帰を実行するのと同じです。これは、出力変数間の相関関係を利用していないことを意味します。これはアプリケーションにとっては問題ないかもしれませんが、出力の相関を利用する1つの代替手段は、ランク回帰の削減(ここではmatlabの実装)、またはある程度関連しているため、yを主成分に投影することで明示的に相関を解除できます(PCAを参照)。 、この場合、次元を減らしていないため、PCAホワイトニングとも呼ばれます)。
これらのテクニックのかなり高いレベルの概要については、Izenmanの教科書「現代の多変量統計テクニック:回帰、分類、および多様体学習」の第6章を強くお勧めします。あなたが大学にいるなら、それはあなたの図書館を通してオンラインで利用できるかもしれません。
これらの選択肢がうまく機能しない場合は、サポートベクター回帰、ガウス過程回帰、決定木回帰など、複数の出力バージョンを持つ多くの高度な非線形回帰法があります(ただし、ほとんどのソフトウェアパッケージには多変量修正がありません)。またはニューラルネットワークですら。
多変量回帰は、入力変数セットの共分散の逆関数を実行することと同じです。行列を反転するための解決策はたくさんあるので(次元がそれほど高くない場合。数千は大丈夫です)、最急降下法ではなく、直接最適化を行う必要があります。
nはサンプルの数、mは入力変数の数、kは出力変数の数です。
X be the input data (n,m)
Y be the target data (n,k)
A be the coefficients you want to estimate (m,k)
XA = Y
X'XA=X'Y
A = inverse(X'X)X'Y
X'
Xの転置です。
ご覧のとおり、逆行列を見つけたらX'X
、行列の乗算を2、3回行うだけで、任意の数の出力変数の係数を計算できます。
これを解決するには、簡単な数学ツールを使用します(MATLAB / R / Python ..)。