井出草平の研究ノート

R

操作変数法 Instrumental Variable Analysis

一言で言えば、「実験ができない状況下で、擬似的に実験環境を作り出し、真の因果関係(原因と結果)を見抜くための統計手法」である。 世の中のデータの多くは、単に「A(原因)とB(結果)」を見比べるだけでは、誤った結論を導く。なぜなら、そこには「ノ…

WLSMVにおけるKMO(Kaiser-Meyer-Olkin)適合度指標の計算

KMOもBartlett球面検定も、推定器(ML/MLR/WLSMV)をテストしているのではなく、入力となる相関行列(とその部分相関構造)が因子分析に向いているかを見ている指標である。したがって、WLSMVを使うなら「Pearson相関」ではなく、(潜在連続を仮定した)ポリ…

Mokken尺度分析③

ides.hatenablog.com ides.hatenablog.com 単調性(Monotonicity)と不変項目順序(IIO)の診断 第2回では、AISP(自動項目選択)によって抽出された下位尺度を比較し、lowerbound = 0.4、かつ k ≥ 4 の尺度群を主要結果として採用した。本稿では、それらの…

Mokken尺度分析②

ides.hatenablog.com 前回のつづき。 Mokken尺度分析の実務でよく用いられる AISP(Automated Item Selection Procedure;自動項目選択) を実行し、項目群が単一尺度としてまとまるのか、それとも複数の下位尺度(クラスター)に分かれるのかを探索的に確認…

Mokken尺度分析①

Mokken尺度分析の概要 Mokken尺度分析(Mokken Scale Analysis; MSA)とは、質問紙の複数項目が同一の潜在特性(能力、傾向、症状の強さなど)に沿って「順序尺度」として機能しているかを、比較的弱い仮定のもとで点検する方法である。項目反応理論(IRT)…

mtcarsデータの説明[R]

mtcars は、R に標準で付属しているデータセットの一つで、1974年の「Motor Trend」誌に掲載された32台の自動車に関するデータが含まれている。 データの基本情報 観測数(行): 32台の車 変数(列): 11個の変数 変数の説明 変数名 説明 型 単位 / 内容 mpg…

階層線形モデルにおけるセンタリング

階層線形モデル(HLM)におけるセンタリング (centering) は、モデルの解釈を容易にしたり、推定の安定性を向上させたりするために、予測変数 (説明変数) から特定の値を差し引く 操作である。 グループ平均センタリング (group-mean centering) と 全体平均…

階層線形モデル[R]

Rで階層線形モデルを実行する。 今回は、lme4パッケージを使用して階層線形モデル (HLM)、いわゆるマルチレベルモデルを実行する。このモデルは、データが階層構造を持つ場合(例えば、生徒が学校にネストされている場合など)に、各レベルの変動を考慮して…

IRTで尺度のバリデーションを行う

データを用意 bfiを使う。NEO性格特性のN(神経症傾向)項目だけを抽出する。 データの説明はこちら ides.hatenablog.com library(psych) data(bfi) BFI_N <- bfi[, 1:5] # N項目(1~5列目)を抽出 colnames(BFI_N) <- c("N1", "N2", "N3", "N4", "N5") # …

httpgd

httpgd は、R言語用のインタラクティブなグラフィックスデバイス(プロットビューア)であり、RのプロットをWebブラウザベースのインターフェイスで表示するためのパッケージである。 httpgd の特徴 Webベースのプロット表示 httpgd は、HTTPサーバーとして…

VSCodeでRを使うための設定

VSCodeで無料でGitHub Copilotが使えるようになった(制限あり)。 www.itmedia.co.jp gigazine.net 現在、月10ドルのGitHub Copilotを契約している。コードをたくさん書くからではなく、RStudioでの補完機能用のためだけである。せっかく無料でGitHub Copilot…

VSCodeのR Extensionのオプションの設定

code.visualstudio.com R: Always Use Active Terminal 説明: この設定を有効にすると、新しいRターミナルを作成せずに、すでに開いているターミナルを再利用する。これにより、ターミナルが複数開くことを防ぐことができる。 推奨設定: 通常は有効にしてお…

重回帰分析におけるBenjamini-Hochberg法

Benjamini-Hochberg法の重回帰での意義 重回帰分析においてBenjamini-Hochberg法(BH法)を適用する主な意義は、多重検定問題に対処することである。重回帰分析では複数の説明変数の係数に対して同時に仮説検定を行うため、偽陽性(第一種の過誤)が増加する…

ロジットモデルの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回帰は、変数選択を行う際に多くの変数の係数をゼロにするため、少ししか関連性のない変数が推計から排除される可能性…

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

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

サポートベクターマシンkernlabパッケージのtypeとclass[R]

www.rdocumentation.org サポートベクターマシンは、分類、新奇性検出、回帰のための優れたツールである。ksvmは、ネイティブのマルチクラス分類の定式化や境界制約SVMの定式化とともに、よく知られたC-svc、ν-svc、(分類)one-class-svc(新奇性)eps-svr…

サポートベクターマシンでの分類[R]

どこにでもあるようなコードだが、走らせてみたのでメモっておこう。 サポートベクターマシンでirisデータを分類し主成分分析で次元削減をした2次元プロットをする data("iris") str(iris) 'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 …

robustbaseパッケージでロバスト推定を行う[R]

robustbaseパッケージではMM推定、S推定、Koller & Stahel (2017)、Koller (2012)による補正設定を用いたMM推定が可能である。 www.rdocumentation.org MM推定 MM推定はYohai(1987)によって提案された方法である。MM推定はM推定で得られた残差標準偏差を最小…

MASSパッケージでロバスト推定のM推定、MM推定、P値を計算する[R]

以前に書いたロバスト推定の方法。こちらにP値の出し方を書いていなかったので、補足。 ides.hatenablog.com 通常の重回帰分析 mod <- lm(wage ~ gender + age + education, data = CPS1985) summary(mod) 結果: Coefficients: Estimate Std. Error t value…