井出草平の研究ノート

計量

WindowsでPythonを用いた統計解析を行う際に計算にGPUが必要な場合の環境構築

WindowsマシンでPythonでの統計解析、特にベイズ推定を行うときにGPUに計算を投げる場合にはWSL2上のLinuxにAnaconda環境を構築する必要である。理由はいくつかある。 JAX/NumPyroのGPU対応はLinux前提で成熟しており再現性が高いため CUDA・cuDNN・NCCLの整…

Guttmanのラムダ係数のRにおける実装

理論はこちら ides.hatenablog.com 昔はLambda4というパッケージがあったようだが、今はアーカイブに入っていて、使えない。 github.com 現在のパッケージの中では、psychパッケージを使ってλ1~λ6を計算する方法をするのが最もよい。 Readme https://cran.r…

Guttmanのラムダ係数(Guttman’s Lambda Coefficients)

Guttman(1945)は古典的テスト理論に基づき、テスト得点の信頼性(真値分散/観測分散)に対する6つの下限(λ1〜λ6)を提示した。いずれも「下限」推定であり、真の信頼性を過小評価し得る。 $- Guttman L (1945). "A Basis for Analyzing Test-Retest Reli…

IRTのGRMのテスト情報関数の可視化

mirt パッケージとデータの読み込み library(mirt) data(Science) データの構造 str(Science) データ。 'data.frame': 392 obs. of 4 variables: $ Comfort: int 4 3 3 3 3 4 3 3 3 4 ... $ Work : int 4 3 2 2 4 4 2 2 3 3 ... $ Future : int 3 3 2 2 4 3 …

RI‐CLPM[R]

RI‐CLPMは従来のCLPMと比較して、個人間の安定的な違い(trait)の影響を分離できる点で優れている。 CLPMは時間的な因果関係を検証するためのモデルであるが、個人ごとの安定した水準の違いが混入するため、変数間の動的な影響が歪められる可能性がある。こ…

mtcarsデータの説明[R]

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

クロスレベル交互作用

クロスレベル交互作用とは、階層データ (マルチレベルデータ) において、異なるレベルの変数間の交互作用 を指す。つまり、あるレベルの変数 (例:生徒レベル) の効果が、別のレベルの変数 (例:学校レベル) の水準によって異なる場合、クロスレベル交互作用…

Within効果とBetween効果

例:学校と生徒の成績データ 学校ごとに生徒の数学の成績がどのように変化するかを調べたいとする。この場合、学校がレベル (グループ) であり、生徒がそのレベル内の個々の観測単位となる。 1. Within効果 (Within Effect) レベル内 (Within) での変化 に注…

固定効果モデル、ランダム効果モデル

1. 固定効果 (Fixed Effects) 母集団全体で共通の効果 を持つと考えられる変数。 関心があるのは、その効果の大きさや方向性 であり、異なる水準 (レベル) 間の差を推定し、比較する。 通常、固定効果の係数は、従来の回帰分析と同様に解釈される。 例: 性別…

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

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

階層線形モデル[R]

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

多母集団同時の回帰分析のパスの検定

データの準備 data("mtcars") write.csv(mtcars, "mtcars.csv") head(mtcars) str(mtcars) 今回は2つのグループを作るため、軽い車と重い車の2値データを作成し、軽い車をGroup1、重い車をGroup2として分析を行う。 # データの読み込み data(mtcars) # wtの…

多母集団同時分析

library(lavaan) # HolzingerSwineford1939 データを読み込む data(HolzingerSwineford1939) head(HolzingerSwineford1939) データはこのような感じ id sex ageyr agemo school grade x1 x2 x3 x4 x5 x6 1 1 1 13 1 Pasteur 7 3.333333 7.75 0.375 2.333333 …

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") # …

IRTで尺度のバリデーションをする利点と手順

IRTがCTTに代わって用いられる理由は、CTTにはないIRTの利点 にある。その利点とは、テストの精度向上、効率化、幅広い応用を可能にするものだ。 1. 項目特性と個人特性の分離 CTT: CTTでは、個人の能力(例:テストの得点)と項目の難易度は、同じ尺度上で…

httpgd

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

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

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

探索的因子分析の決定と現在の実務の概要:私たちがしていること、そしてどのように改善できるか?

Howard, M. C. (2016). A Review of Exploratory Factor Analysis Decisions and Overview of Current Practices: What We Are Doing and How Can We Improve? International Journal of Human-Computer Interaction, 32(1), 51–62. https://doi.org/10.1080…

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

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

エリオット・ソーバー『科学と証拠』第1章第7節

科学と証拠―統計の哲学 入門―作者:エリオット・ソーバー名古屋大学出版会Amazon Evidence and Evolution: The Logic Behind the Science作者:Sober, ElliottCambridge University PressAmazon ベイジアン主義の限界 事前確率の設定: ベイジアン主義では、事…

ロジットモデルの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)は、モデルの性能評価とλの選定におけるバイアスを排除するための検証手法である。この方法は、外側と内側という比喩を用いて説明される。外側のクロスバリデーションと内側のクロスバリデーションの二重構造から…