Rのなげなわによる多変量線形回帰


9

高度に相関している多くの従属変数(DV)(〜450)を予測するための縮小モデルを作成しようとしています。

私の独立変数(IV)も非常に多く(〜2000)、非常に相関しています。

なげなわを使用して各出力の縮小モデルを個別に選択した場合、各従属変数をループするときに、独立変数の同じサブセットを取得することが保証されません。

Rの投げ縄を使用する多変量線形回帰はありますか?

これはグループなげなわではありません。グループラッソはIVをグループ化します。lassoも実装する多変量線形回帰(DVがスカラーのベクトルではなく行列であることを意味します)が必要です。(注:NRHが指摘するように、これは真実ではありません。グループラッソは、IVをグループ化する戦略を含むが、DVなどの他のパラメーターをグループ化する戦略も含む一般的な用語です)

スパースオーバーラップセットラッソと呼ばれるものに入るこのペーパーを見つけました

多変量線形回帰を行うコードは次のとおりです

> dim(target)
[1] 6060  441
> dim(dictionary)
[1] 6060 2030
> fit = lm(target~dictionary)

これは、単一のDVで投げ縄を行ういくつかのコードです

> fit = glmnet(dictionary, target[,1])

そして、これは私がやりたいことです:

> fit = glmnet(dictionary, target)
Error in weighted.mean.default(y, weights) : 
  'x' and 'w' must have the same length

一度にすべてのターゲットに適合する機能を選択する


最後の点を除いて、あなたが何を求めているのかは不明です。パッケージが呼び出されglmnet、完全なビネットが含まれています。
generic_user

「毎回」とはどういう意味ですか?データのサブセットでこれを実行していますか?相互検証?別のサンプル?
シャドウトーカー2016

毎回、私は現在、一度に1つの従属変数でglmnetを実行し、それらすべてをループしていることを
意味

または言い換えると、私のyは常に行列ではなくベクトルです
kmace

1
@Firebug絶対に。その言葉がもっと一般的であるとは知りませんでした。申し訳ありません
kmace

回答:


11

多変量応答(1より大きい従属変数の数)の場合family = "mgaussian"、の呼び出しで必要ですglmnet

lsglパッケージは、より柔軟なペナルティを与える代替です。

次元応答、glmnetパッケージ実装ペナルティ ここで、は、番目の予測子の係数のベクトルです。あなたのためのヘルプページで読むことができます:k

j=1pβj2

βj=(βj1,,βjk)Tjglmnet

前者の[ family = "mgaussian"]では、各変数の係数に「グループ-ラッソ」ペナルティを使用して、マルチレスポンスガウスモデルを適合させることができます。このように応答をまとめることは、一部のドメインでは「マルチタスク」学習と呼ばれます。

このペナルティは、グループラッソペナルティの例です。これは、同じ予測子に関連付けられているさまざまな応答のパラメーターをグループ化します。これにより、調整パラメーターの特定の値について、すべての応答にわたって同じ予測子が選択されます。

lsglパッケージは、の形式のスパースグループラッソペナルティを 実装します ここで、とは、異なる項からの寄与のバランスを取るために選択された特定の重みです。デフォルトはおよびです。パラメータは調整パラメータです。で(および)ペナルティが使用するペナルティと同等であると。(および

αj=1pl=1kξjl|βjl|+(1α)j=1pγjβj2

ξjlγjξjl=1γj=kα[0,1]α=0γj=1glmnetfamily = "mgaussian"α=1ξjl=1)ペナルティは通常の投げ縄を与えます。lsglの実装では、予測子をさらにグループ化することもできます。

グループの投げ縄に関するメモ。グループラッソという用語は、多くの場合、予測因子のグループ化に関連付けられています。ただし、より一般的な観点からは、グループラッソはペナルティ内のパラメーターのグループ化にすぎません。glmnetwith family = "mgaussian"で使用されるグループ化は、応答全体のパラメーターのグループ化です。このようなグループ化の効果は、すべての応答がほぼ同じ予測子のセットから予測できる場合、応答全体のパラメーターの推定を結合することです。いくつかの構造を共有すると予想される複数の学習問題を結合する一般的な考え方は、マルチタスク学習と呼ばれます

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