井出草平の研究ノート

Lasso, Ridge, EN

ロジットモデルのForward StabilityとModel Path Selection

データの読み込み こちら(https://ides.hatenablog.com/entry/2024/06/21/235127)で使った心臓病のデータを使用する。 library(dplyr) url <- "https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data" column_…

Forward StabilityとModel Path Selection

Lassoの技法のひとつである安定性選択とランダム化された安定性選択があるが、これらの方法は結果がスパースになるという問題がある。 要は、選ばれる変数が少なく、とてもスリムにモデルになってしまうという問題である。 github.com link.springer.com ar5…

ロジスティックLasso回帰の安定性選択(Stability Selection)[R]

安定性選択(Stability Selection)について。 ides.hatenablog.com データは説明はこちら。 ides.hatenablog.com データの作成と前処理 library(dplyr) url <- "https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.clevelan…

k-foldクロスバリデーションを用いたロジスティックLasso回帰[R]

従属変数が連続変数のLasso回帰を今まで紹介してきたが、今回は従属変数が2値、つまりロジットモデルのLasso回帰の例を示す。 使用するのは心臓病のデータである。 データの作成 # データの読み込み(heart disease datasetを使用) url <- "https://archive…

kーfoldクロスバリデーションを用いたLassoにおける変数選択の安定性[R]

kーfold CVのやり方はこちら。 ides.hatenablog.com また、結果にどのくらいの安定性があるか、計算のたびに異なる乱数を与え、kーfold CVのLassoの計算を100回反復した。1) 独立変数側で選ばれた変数の回数、2)選ばれた時の推定値の平均とその標準偏差を計算…

LOOCVを用いたLassoにおける変数選択の安定性[R]

一つ抜き交差検証(Leave-One-Out Cross-Validation, LOOCV)は、各データポイントを一度だけ検証データとして使用し、残りのデータを訓練データとして使用する交差検証である。具体的には、まずデータセットから1つのデータポイント(1ケース分のデータ)を…

モンテカルロ交差検証を用いたLasso[R]

モンテカルロ交差検証(Monte Carlo cross-validation, MCCV)、もしくは反復ランダムサブサンプリング検証(Repeated random sub-sampling validation)と呼ばれる方法は、訓練データと検証データをランダムに分割し、ホールドアウト法と同じく訓練データに基づ…

ランダム化された安定性選択(Randomized Stability Selection)[R]

安定性選択の方法の一つ。 ides.hatenablog.com ランダム化された安定性選択は、変数選択プロセスにランダム性を導入する方法であり、変数選択の安定性を向上させることを目的としている。この方法では、データを繰り返しサブサンプリングし、Lasso回帰を適…

ShahとSamworthによる安定性選択 Stability Selection for Lasso[R]

www.rdocumentation.org データの準備 library(haven) library(tidyr) auto_data <- haven::read_dta("http://www.stata-press.com/data/r9/auto.dta") auto_data <- auto_data %>% drop_na() # 全カラムに対してNAがない行を抽出 auto_data$foreign <- as.i…

入れ子交差検証/Nested Cross-Validation[R]

入れ子交差検証(Nested Cross-Validation)は、モデルの性能評価とλの選定におけるバイアスを排除するための検証手法である。この方法は、外側と内側という比喩を用いて説明される。外側のクロスバリデーションと内側のクロスバリデーションの二重構造から…

Lasso ホールドアウト法と変数選択と推定の安定性のシミュレーション[R]

クロスバリデーションの基本的な方法ホールドアウト法やり方と変数選択と推定の安定性のシミュレーションを行った。 n-fold クロスバリデーションがよくつかわれているため、ホールドアウト法はあまり使われないので実践向きではない。 今回は訓練データを70…

高次元スパース線形モデルにおけるパラメータの信頼区間を構築するためのブートストラップLasso+部分リッジ法[R]

stat.paperswithcode.com HDCI(High-Dimensional Confidence Intervals)はは、Lasso回帰とRidge回帰の欠点を補うという点にある。 Lasso回帰は、変数選択を行う際に多くの変数の係数をゼロにするため、少ししか関連性のない変数が推計から排除される可能性…

反復交差検証 Repeated Cross-Validationを用いたLassoの安定性のシミュレーション[R]

反復交差検証 Repeated Cross-Validationの安定性のシミュレーションを行った。 反復交差検証については以下のエントリを参照。 ides.hatenablog.com ides.hatenablog.com 安定性のシミュレーションはLOOCVやnーfolds CVの場合と同様に異なった乱数シードを使…

反復交差検証 / Repeated Cross-Validationを用いたLasso、シミュレーションを行いベストな反復回数を求める[R]

Repeated Cross-Validation(RCV)はCVを反復して安定性を高めようという方法である。 ides.hatenablog.com ただ、何回繰り返せばよいかわからない。 説明を読んでいると5回から10回くらいであろうと書いてあるが、その根拠は経験則のようだ。 社会調査で使う…

反復交差検証 / Repeated Cross-Validationを用いたLasso[R]

データの読み込み library(haven) library(tidyr) # データの読み込みと前処理 auto <- haven::read_dta("http://www.stata-press.com/data/r9/auto.dta") auto <- auto %>% drop_na() # 全カラムに対してNAがない行を抽出 # foreign列を整数に変換 auto$for…

Lassoで必ず独立変数に入れる変数を指定する[R]

こちらで利用したデータとコードを用いる。 ides.hatenablog.com データの準備 library(haven) library(tidyr) # データの読み込みと前処理 auto <- haven::read_dta("http://www.stata-press.com/data/r9/auto.dta") auto <- auto %>% drop_na() # 全カラム…

LOOCVを用いたLassoにおける変数選択の安定性[R]

通常のクロスバリデーションでは乱数によって結果がかなり違うため、そこで今回は一つ抜き交差検証(Leave-One-Out Cross-Validation, LOOCV)の安定性のシミュレーションを行うことにした。 LOOCVの計算の方法はこちら。 ides.hatenablog.com また、結果に…

R glmnetパッケージとStataのLassoを比較する[R][Stata]

LASOOPACKの作者が簡単に解説していたので、まずはそれを参考にシミュレーションをしてみる。 statalasso.github.io 基本形 Stata // データの読み込み webuse auto, clear drop if rep78==. // Lasso 10-folds CV lasso linear price mpg-foreign, grid(1, …

二項ロジスティック回帰のLasso、Adaptive Lasso、Plugin Lassoを実行し比較する[Stata]

Rからデータをエクスポート まずはデータをつくるところから。 library(AER) data(CPS1985) library(dplyr) CPS1985 <- CPS1985 %>% mutate(married = case_when( married == "yes" ~ 1, married == "no" ~ 0)) library(rio) export(CPS1985, "CPS1985.dta")…

重回帰のLasso、Adaptive Lasso、Plugin Lassoを実行し比較する[Stata]

Rからデータをエクスポート まずはデータをつくるところから。 library(AER) data(CPS1985) library(rio) export(CPS1985, "CPS1985.dta") Sataのdoファイル // データの読み込み use "CPS1985.dta", clear // OLSの推定値を計算し、その結果をols_modelとし…

Lassoにおけるクロス・バリデーションの種類

1. ホールドアウト法(Holdout Method) 教師データとテストデータを分ける方法。最も基本的な方法 良い点 シンプルで理解しやすい:データを単純にトレーニングセットとテストセットに分けるだけなので、実装が簡単で直感的に理解しやすい。 モデルの性能評…

Lassoの方法の解説

Lasso (Least Absolute Shrinkage and Selection Operator)は、線形回帰モデルに対してペナルティを課すことで、変数選択と回帰係数の推定を同時に行う手法。 特徴 変数選択: 重要でない変数の係数をゼロにすることができるため、変数選択機能を持っている。…

lasso, adaptive lasso, group lasso[R]

https://www.math.mcgill.ca/yyang/comp/notes/note4code.R library(glmnet) このパッケージで使用されるデフォルトのモデルは、Guassian線形モデルまたは最小二乗法である。説明のためにあらかじめ作成したデータセットをロードする。ユーザは自分のデータ…

Lasssoのパッケージglmnet入門[R]

https://glmnet.stanford.edu/articles/glmnet.html はじめに Glmnetは一般化線形モデルおよび類似モデルをペナルティ付き最尤法でフィッティングするパッケージである。正則化パラメータλの値のグリッド(対数スケール)において、正則化パスがlassoまたはe…

Rで平均二乗誤差(MSE)を計算する方法[R]

www.statology.org モデルの予測精度を測定するために使用される最も一般的な測定基準の1つはMSEで、平均二乗誤差の略だ。次のように計算される: Σ - "合計 "を意味する記号 n - サンプルサイズ - 実際のデータ値 - 予測データ値 MSEの値が小さいほど、モデ…

Stataにおけるlasso入門[stata]

blog.stata.com なぜlassoが興味深いのか? 最小絶対縮小選択演算子(lasso)はモデル係数を推定し、これらの推定値はどの共変量をモデルに含めるかを選択するために使用できる。lassoは結果予測や因果パラメータに関する推論に使用される。この投稿では、la…

mtcarsデータを用いたLasso回帰[R]

Lasso 回帰は、データに多重共線性が存在するときに、回帰モデルを適合させるために使用できる手法である。 簡単に言うと、最小2乗回帰は,残差2乗和 (RSS) を最小化する係数推定を見つける。 RSS = Σ(yi - ŷi)2 ここで Σ : 和を意味するギリシャ記号 yi: 番…

Lasso回帰モデル - R bloggers[R]

以前にStataでLasso、リッジ回帰の使い方は解説している。 ides.hatenablog.com 今回はRでの実行例について。 Lasso Regression Model with R code www.r-bloggers.com Tibshirani (1996) は、パラメータの選択と縮小のために、LASSO (Least Absolute Shrink…

StataでLassoとリッジ回帰

Stata16でLassoが新しく使えるようになったそうだ。 https://www.lightstone.co.jp/stata/stata16_new.html#Lasso 僕はStataはあまり使わないので、新しいStataを入手していない。今手元にあるものはバージョン13で少し古く、標準機能でLassoはできない。た…