No.23133 Lasso回帰について  【すずき】 2021/09/07(Tue) 07:15

はじめまして,ExcelでLasso回帰を実装しようと思い調べているのですが,使い方がいまいち理解できていないため,ご質問させていただきました。

標準化(平均0分散1)したデータで,Lasso回帰を行い標準化偏回帰係数を元に予測したいのですが,この回帰係数は標準化しておりこれを使用して予測しても元のスケールと異なった結果になります。一度元のスケールに変換する必要があるのでしょうか?
それともLassoの役割は変数の選択として使用し,多重共線性で0となった変数を除いて重回帰分析を行うのでしょうか?

もっと理解してから質問するべきかと思いますが,ご教授いただければ幸いです。

No.23135 Re: Lasso回帰について  【aoki】 2021/09/07(Tue) 20:33

取りあえず,どのようなテストデータで,どのようなプログラムで,どのような結果が得られたが,実際に知りたいのはどのような結果であるとか,具体的に記述していただかないと私にはよく分かりません。

No.23136 Re: Lasso回帰について  【すずき】 2021/09/08(Wed) 15:13

青木先生

返信ありがとうございます。
テストデータ等Excelファイルを添付させていただきました。
Lasso回帰プログラムはExcelVBAで構築しております。
(参考サイト;https://asmquantmacro.com/2016/01/03/lasso-regression-in-vba/)

このプログラムを使用して,求めた標準化偏回帰係数を使用して標準化前のスケールyを予測したいと思っております。

23136.zip


No.23137 Re: Lasso回帰について  【aoki】 2021/09/09(Thu) 17:32

標準化データを使って Lasso 回帰をした結果が
> intercept
[1] -2.884597e-16
> coef
[1] 0.98979244 0.00000000 0.17372604 0.00000000
[5] 0.03352827 0.03844365 0.01411752 -0.24884651
なので,
以下の変数を使いyの値を予測したい							
x1 x2 x3 x4 x5 x6 x7 x8
26.5 702.25 92.9000015258789 6.96999979019165 28.5 0 1 0
ならば,まずはこのデータをもとのデータを標準化するに際して用いた平均値,標準偏差を用いて標準化する必要があるでしょう。

元データの平均値 Mean
y x1 x2 x3
4232.2482125 28.8428571 845.9560716 72.1607145
x4 x5 x6 x7
14.6805357 26.6500000 0.1607143 0.1964286
x8
0.1428571
元データの標準偏差 SD

y x1 x2 x3
658.3744589 3.7816715 208.7746821 14.5919364
x4 x5 x6 x7
7.2873076 3.7876835 0.3705910 0.4008919
x8
0.3530939
標準化すると
> scaled = (x - Mean[-1]) / SD[-1]
x1 x2 x3 x4 x5
-0.6195295 -0.6883309 1.4212841 -1.0580775 0.4884252
x6 x7 x8
-0.4336703 2.0044593 -0.4045868
これと先の係数を掛け合わせ,定数項を加えると,標準化した y の予測値が得られます。
> std.estimated = sum(scaled * coef) + intercept
[1] -0.2376094
それを元の y に戻すのは,標準化の逆を行います。すなわち 元のyの予測値 = 「標準化した y の予測値」×「yの標準偏差」+ 「yの平均値」
> std.estimated * SD[1] + Mean[1]
y
4075.812
ではないでしょうか。

このように回りくどいことをしなくても,標準化データで得られた係数を調整して,元のデータ x から元のy を予測する係数を求めることができるのかどうかは知りません。

No.23138 Re: Lasso回帰について  【すずき】 2021/09/11(Sat) 15:34

お忙しいところデータ例を用いてご説明いただきありがとうございます
大変勉強になりました。
もう1点ご教授いただきたいのですが,Lasso回帰の使い方としてはこの方法は邪道なのでしょうか?Lasso回帰は変数の選択(モデルの選択)に使用するのが一般的なのでしょうか?

No.23139 Re: Lasso回帰について  【aoki】 2021/09/11(Sat) 17:34

残念ながら,私にはよくわかりません。

No.23141 Re: Lasso回帰について  【すずき】 2021/09/13(Mon) 10:58

分かりました。青木先生に教えていただいたやり方で進めたい思います。

● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る