井出草平の研究ノート

R

lavaanを用いてWLSMVによる測定の不変性を計算する[R]

WLSMV(adjusted diagonally weighted least squares)での測定の不変性の方法が確立しているらしい。 https://www.tandfonline.com/doi/abs/10.1080/10705511.2019.1602776 最尤法での測定の不変性についてはこちらを参照のこと。 ides.hatenablog.com サンプ…

正規性の検定

日本語でも解説が多く、有名な手法なので、やり方だけを記す。 データはirisを用いる。 ガクの長さのデータが正規分布が仮定できるかを検定する。 data(iris) head(iris$Sepal.Length) データ。 [1] 5.1 4.9 4.7 4.6 5.0 5.4 シャピロ・ウィルク検定 (Shapir…

Rでクラスター分析[R]

Gabriel Martosさんによる解説より。 rstudio-pubs-static.s3.amazonaws.com Rを使ってクラスター分析を行う方法を学ぶ。データセットwinsを使用するために,ライブラリrattleをロードする。 library(rattle) data(wine, package='rattle') head(wine) Type …

prevalenceパッケージまわりの補足[R]

こちらのエントリの補足。 ides.hatenablog.com 感度・特異度がわかっていれば、スクリーニング調査から真の有病率の推定ができる、という手法である。 もちろん、統計的推計なので、診断の有無をしっかりと調べていくようなものを再現できる訳ではなく、い…

LaTeX形式の数式コードを書くパッケージequatiomatic[R]

中澤港さんの日記に書かれていたパッケージ(https://minato.sip21c.org/im3r/20210131.html)。 これを使うと,lmer()で使ったモデルが,そのままTeXのコードになる。LaTeXで論文を書いている人はそのまま取り込めるし,WordやLibreOfficeで論文を書いている…

lavaanを用いた測定不変性の確認[R]

lavaanで測定普遍性を確認する方法。 rstudio-pubs-static.s3.amazonaws.com ある構成要素についてグループ間で比較を行うとき、暗黙のうちに測定の不変性を仮定している。回帰分析、t検定、混合効果モデルなどを行っている時も、その構成要素が同じように機…

lavaanのモデルの尤度比検定[R]

lavTestLRT関数を用いる。昔のバージョンではanova(fit1, fit0)という書き方をしたようだが、現在はlavTestLRT関数に変更されている。 www.rdocumentation.org LRTはLikelihood-ratio testつまり尤度比検定である。ブートストラップをかけて行うとBLRTである…

複数グループのCFAのフィッティング指標[R]

複数グループに分けての確証的因子分析。 とりあえずの用途としては、構成概念妥当性を調べる際に複数グループのフィッティング指標を見るというもの。測定の不定性と言われるもの(Measurement Invariance)である。 lavaan.ugent.be グループ変数は"school"…

Wilcoxon-Mann-Whitney検定[R]

ja.wikipedia.org 昔SPSSでやった記憶はあるがRではやったことがない。 少し調べてみるとx群とy群をそれぞれベクトルで与えてwilcox.test(x,y)とするみたいな解説がたくさん見つかった。間違いではないが、一つの連続変数に対して男女の違いはあるかないかみ…

変数名を変更する[R]

names(df)[ c(1,3)] <- c("一列目", "三列目") via: Rで列名を変更する: さかなのいろいろ

ベイズ推定による因子分析[Mplus]

頻度主義で行うのと特に何かが変わるというわけではないものの、Mplusでベイズ推定で因子分析を行った。 コード DATA: FILE = "HS1939.dat"; VARIABLE: NAMES = x1 x2 x3 x4 x5 x6 x7 x8 x9; MISSING=.; ANALYSIS: ESTIMATOR = BAYES; PROCESS = 2; FBITER =…

ID番号のないデータフレームにID列を作る方法[R]

IDの列を作る 仮想データフレームを作成。 d <- data.frame(V1=c(23, 45, 56), V2=c(45, 45, 67)) 結果。 V1 V2 1 23 45 2 45 45 3 56 67 ID列の挿入。 d$ID <- 1:nrow(d) 結果。 V1 V2 ID 1 23 45 1 2 45 45 2 3 56 67 3 こちらで紹介されていたやり方。パ…

lavaanで潜在変数の相関係数を求める[R]

データとモデルの作成 library("lavaan") Data <- HolzingerSwineford1939[,c("x1","x2","x3","x4", "x5", "x6")] model <- ' f1 =~ x1 + x2 + x3 f2 =~ x4 + x5 + x6 ' fit <- sem(model, data = Data, std.lv = TRUE) lavaanパッケージに含まれているデー…

lavaanでポリコリック、ポリシリアル相関係数を計算する[R]

Rではpolycorパッケージで計算ができる。 ides.hatenablog.com Stataでも現在は標準で計算機能が実装されている。 ides.hatenablog.com ポリコリック相関係数などは以前のエントリーを参照のこと。 lavCor www.rdocumentation.org 下記のものは、パッケージ…

lavaanで順序尺度のSEMを行う[R]

相関係数をピアソンではなく、ポリコリック相関係数を使う方法。例として簡単な確証的因子分析を行う。 サンプルデータの作成 library(lavaan) data.con <- HolzingerSwineford1939[,c("x1","x2","x3")] # visualのデータのみ使用 ## 3カテゴリにしてカテゴ…

潜在クラス分析におけるBCH法-回帰補助モデル[Mplus]

前回に引きつづき潜在クラス分析におけるBCH法について。 http://www.statmodel.com/examples/webnotes/webnote4.zip 今回は共変量(X)を設定し、従属変数(Y)に回帰するモデルである。 データが見つからなかったのでRで仮想データ作成した。適当に乱数を発生…

vcdパッケージでKappaと重みづけKappaを計算する[R]

コーエンのκ係数(Cohen's kappa)と重みづけκ係数(Weighted kappa)の計算をRのvcdパッケージで行う。 irrパッケージは通常の個票データからの計算が想定されているが、vcdパッケージはクロス表からの計算を想定して作られている。 データ anxiety <- as.table…

Rのパッケージ一覧[R]

cran.r-project.org 一部日本語化しているページ www.trifields.jp

Light’s KappaとFleiss' kappa[R]

評価者が3人以上、評価項目が名義尺度で3カテゴリ以上で利用される一致度の指標である。有名なCohen's Kappa(κ) の拡張版である。 Light’s Kappa 評価者が2人以上、2つ以上のカテゴリカル変数で使用する一致度の指標である。 RのirrパッケージでLight’s Kapp…

合成信頼性を計算する[R]

合成信頼性(Composite Reliability)はCronbach'αの代替指標として使われているものである。 semToolsで最後まで計算できると思っていたが、そうではなかったらしいので計算方法を再度調べてみた。 合成信頼性の解釈 合成信頼性(construct reliabilityと呼ば…

平均分散抽出(AVE)をsemToolsで計算する[R]

平均分散抽出average variance extracted (AVE) 。Fornell&Larcker基準とも言われている。 rdrr.io 計算 library(semTools) HS.model <- ' visual =~ x1 + x2 + x3 textual =~ x4 + x5 + x6 speed =~ x7 + x8 + x9 ' dat <- HolzingerSwineford1939[, paste…

参照カテゴリの変更[R]

メモ。 relevel(変数, ref="参照カテゴリ名") Factor型の場合、最初の数を参照カテゴリにするのかとおもいきや、そうでもなかったので一瞬困った。

クロス表をスタック形式(リスト形式)にする[R][Excel]

データ分析ではスタック形式と呼ぶのが一般的だと思うが、リスト形式とも呼ぶらしい形式への変換だ。呼び方はさておき、パッケージや分析で時々この形式を使うので、変換が時々必要になる。少しややこしい方法を使っていたが、結構簡単にできることが分かっ…

タイタニック・データを用いた媒介分析[Mplus]

タイタニック・データを用いて名義変数の媒介項、2値の従属変数(アウトカム)の媒介分析を行う。アウトカムが2値なので2項ロジスティック回帰分析の一種である。 タイタニック・データの分析に意味があるわけではなく、あくまでも例題である。分析はMplusで…

LMestパッケージを用いた潜在移行分析[R]

cran.r-project.org 公式のマニュアルに記載された例を紹介する。 データ データdata_SRHS_longはミシガン大学が実施したHealth and Retirement Studyに由来する自己申告健康状態に関するデータセットである。 t: 時点。 id ID。 gender: 男が1、女が2。 rac…

同族テストモデル・タウ等価モデル・平行テストモデル[R]

信頼性係数はα係数が使用されることが多いが、問題点が指摘されている。α係数は因子構造を無視して一次元性の検証をしているという点である。別の言い方をすると、各因子での真の得点が共通している(一元性)と仮定しているが、ほとんどのケースでは一元性は…

重回帰分析とロジステック回帰分析をRとMplusでやって比較する[Mplus][R]

データの準備 AERパッケージのCPS1985データを利用する。 library(AER) data(CPS1985) d1 <- CPS1985 caretパッケージのdummyVars関数を用いて、factor型のものをすべてダミー変数化する。 library(caret) dummy <- dummyVars(~.,data=d1) d2 <- as.data.fra…

ギャンブル障害のスクリーニング調査から実際の有病率を推定する

ギャンブル障害の推定値の話が参加している会議で出てきたので計算してみたいと思う。 圏内のギャンブル等依存に関する疫学調査(全国調査結果の中間とりまとめ) http://www.pref.hokkaido.lg.jp/hf/shf/seishin/gyannburukaigishiryou6-2.pdf 調査は2回行わ…

lavaanで順序カテゴリカル因子分析[R]

IPIP-NEOデータの呼び出しと格納 library("psych") data(bfi) # IPIP-NEOデータ d1 <- bfi[1:10] # 因子分析に使用するのは1~10列目。2つの因子のみ。 d1 <-na.omit(d1) # 欠損値のあるケースを削除 モデルと実行 library(lavaan) model <- ' Ag =~ A1 + A…

lavaanで行う重回帰分析[R]

lavaanなどのSEMパッケージでも回帰分析ができるとは以前から知っていたが、具体的にどうすればいいのか知らなかったので調べてみた。 シミュレーションデータ AERパッケージの中のデータCPS1985を用いる。 賃金(wage)に対する効果を見る重回帰分析をデモ…