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を予測したいと思っております。
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元データの標準偏差 SD
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標準化すると
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]これと先の係数を掛け合わせ,定数項を加えると,標準化した y の予測値が得られます。
x1 x2 x3 x4 x5
-0.6195295 -0.6883309 1.4212841 -1.0580775 0.4884252
x6 x7 x8
-0.4336703 2.0044593 -0.4045868> std.estimated = sum(scaled * coef) + interceptそれを元の y に戻すのは,標準化の逆を行います。すなわち 元のyの予測値 = 「標準化した y の予測値」×「yの標準偏差」+ 「yの平均値」
[1] -0.2376094> 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 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る