Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
RでMplusがもっと便利に
––mplusAutomationパッケージ––
広島大学大学院教育学研究科
 徳岡 大
1
HiRoshima.R #5
2015年9月19日
この発表の予定
•  ⾃自⼰己紹介
•  Mplusについて
•  mplusAutomationパッケージの紹介
•  データ整形
•  分析の実⾏行行
•  出⼒力力の調整
2
自己紹介
•  徳岡  ⼤大(とくおか  まさる)
•  広島⼤大学⼤大学院教育学研究科D4
•  動機づけ,⽬目標理理論論なんかの研究してます
•  R歴:4年年⽬目。思い通りに関数とか使えないし作れない
まだまだ初⼼心者
•  twitte...
本発表のモチベーション
•  これまでHiRoshima.Rに参加できなかった無念念
•  なんだか今回は発表者が少なそう,チャンスかも?
•  せっかく参加するなら⾃自分の覚書としての発表を
•  あと⾃自⼰己紹介のため
4
ところでMplusって知ってますか?
•  Muthén  &  Muthénが作成した統計解析ソフト
•  構造⽅方程式モデリングを使⽤用する分析ならほとんど
実装されている
•  マルチレベルSEM,潜在混合分布モデル,項⽬目反
応理理論論...
Mplusの基本
•  主に3種類のファイルがある
•  .inp:inputファイル。ここにモデルを書いたり,
データを読み込むコード書いたりする
•  .out:outputファイル分析結果を出⼒力力する
ファイル。inputファイルを⾛走...
こんな感じのコード
7
•  CFAの場合
•  12項⽬目4因⼦子モデル
•  因⼦子の分散を1に固定
•  因⼦子負荷量量は⾃自由推定
こんな感じの出力
8
図も簡単にできる
9
日本語の解説書だってある!
•  13章の潜在曲線モデルを
書きました
•  ぜひご贔屓に!
•  Slideshare  にも⼩小杉先⽣生や
関⻄西学院⼤大学の清⽔水先⽣生の
Mplusに関する資料料が
転がっています
•  http://w...
Mplusのデメリット
•  残念念ながら有料料
•  デモ版:無料料!従属変数6つまで,独⽴立立変数2つ
まで,2レベルまで,分析はいろいろ可能
•  ⽇日本語完全⾮非対応
•  ファイルのパスに⽇日本語があるだけでエラー
•  1つのファイ...
なぜR勉強会でMplus??
12
•  Rはちゃんと使えれば,データハンドリングもグラ
フィカルな部分もきれいにできる!
•  基本的な分析はRに任せて,複雑なモデルのときに
Mplusを使っていけば,Mplusのデメリットはだい
たい解決!...
mplusAutomationパッケージ
•  Rで使⽤用したデータセットをMplus⽤用に整形可能
•  R上でMplusを動かすことが可能
•  つまり,R上に分析の流流れのログを残せる!
+α
•  特定の指標のみを抽出可能
•  複数の...
今回扱う仮想データの紹介
•  徳岡・杉村・前⽥田(投稿中)のデータに基づく仮想
データセット
•  2  (習得,遂⾏行行)✖2  (接近,回避)の組み合わせで
4つの質の異異なる⽬目標を測定しているつもり
•  互いに相関しあう4因⼦子が仮...
R上でMplusの実行
•  runModels関数
•  データのファイルとMplusのinputファイルが保
存されているフォルダのパスをしてするだけ  
•  指定したフォルダ内の.inpファイルを全て実⾏行行
•  サブフォルダのファイ...
結果の抽出1
•  extractModelSummaries関数
•  フォルダのパスを引数に指定
•  サブフォルダがあるならrecursive  =  TRUEも
•  Dataframeにsummariesが格納される
•  特定のファ...
結果の抽出2
•  表に必要な結果をsubset関数で抽出して,
データフレームにする
17
パスの指定が面倒くさい人に朗報
•  mplusAutomationが参照のするのはRで指定されて
いるディレクトリ
⽅方法1
•  setwd()でMplusのデータが含まれるフォルダを
ディレクトリに指定すればフォルダまでのパスを指
定しな...
パスの指定が面倒くさい人に朗報
⽅方法2(途中に⽇日本語があると動かない)
•  Mplusのデータが含まれるフォルダを現在使ってい
るプロジェクトに⼊入れ,サブフォルダまで実⾏行行!
•  runModels  (recursive  =  ...
結果の抽出3:並び替え
•  データフレームの変数名のところをクリックすると
昇順や降降順に並び替えられる
•  今回はAICに基づいて並び替えた
•  適合度度の⾼高いモデルがわかりやすい!!
•  write.csv関数とかで出⼒力力すれば...
Latexの表にもできる!1
•  LatexSummaryTable関数でLatexにも対応
21
Latexの表にもできる!2
22
HTMLの表にもできる
23
モデルパラメタも抽出可能1
•  extractModelParameters関数
•  引数としてフォルダ名orファイル名までのパスを
記述してmodelResultsに結果を格納
•  フォルダの指定でフォルダ内のすべてのinput
ファイ...
格納した結果の抽出方法
•  リストで保存されるので,取り出したい値までの
パスを書いていけばOK
•  さらに格納することでデータフレームとして抽出可
25
パスが長くても大丈夫!
•  Rstudioなら“$”を⼊入⼒力力するとリストに含まれている
選択可能なファイルやパスを提⽰示してくれるので,
結果を⾒見見たいモデルをクリックすれば⾃自動的に⼊入⼒力力
される
26
こんな感じの出力
27
•  データフレームなので適当にいじってから,
write.csv  ()してしまえば,表も完成
ちなみに実はR上で全部できる
•  R上でMplusのinputファイルを作成も可能
•  変数はRのデータセットのものを利利⽤用できる!
•  注意:プロジェクトやディレクトリまでに⽇日本語の
パスがあるとたぶん動きません 28
Rで作成したinputファイルを実行
•  mplusModeler関数を使⽤用
•  引数に指定した.datファイルにデータセットが
変換される
•  run  =  0L  にするとdatasetとinputファイルは
作成されるが,解析は...
結果の抽出1
30
結果の抽出2
•  より⾒見見やすい⽅方法(texregパッケージの使⽤用)
31
Mplus用データセットを作成するだけ
•  変数名を⾃自分で指定する必要なくなる
•  出⼒力力をMplusのEditorに貼り付けてモデルを書けば
変数を間違えて書いてしまうこともなくなる
32
まとめ
•  mplusAutomationの基本関数
•  runModels  (  ):指定したフォルダ内のinput
ファイルの実⾏行行
•  extractModelSummaries  (  ):指定した
フォルダ内のoutputフ...
Upcoming SlideShare
Loading in …5
×

RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05

962 views

Published on

2015年9月19日に開催されたHiRoshima.Rでの発表資料です。

Published in: Education
  • Be the first to comment

RでMplusがもっと便利にーmplusAutomationパッケージー #Hiroshimar05

  1. 1. RでMplusがもっと便利に ––mplusAutomationパッケージ–– 広島大学大学院教育学研究科  徳岡 大 1 HiRoshima.R #5 2015年9月19日
  2. 2. この発表の予定 •  ⾃自⼰己紹介 •  Mplusについて •  mplusAutomationパッケージの紹介 •  データ整形 •  分析の実⾏行行 •  出⼒力力の調整 2
  3. 3. 自己紹介 •  徳岡  ⼤大(とくおか  まさる) •  広島⼤大学⼤大学院教育学研究科D4 •  動機づけ,⽬目標理理論論なんかの研究してます •  R歴:4年年⽬目。思い通りに関数とか使えないし作れない まだまだ初⼼心者 •  twitter:      @t_̲macya •  DARM(RとMplusを使⽤用した医療療・⼼心理理データ解析勉強会) を主催しています。今年年も1回くらいは開催したい。。 3
  4. 4. 本発表のモチベーション •  これまでHiRoshima.Rに参加できなかった無念念 •  なんだか今回は発表者が少なそう,チャンスかも? •  せっかく参加するなら⾃自分の覚書としての発表を •  あと⾃自⼰己紹介のため 4
  5. 5. ところでMplusって知ってますか? •  Muthén  &  Muthénが作成した統計解析ソフト •  構造⽅方程式モデリングを使⽤用する分析ならほとんど 実装されている •  マルチレベルSEM,潜在混合分布モデル,項⽬目反 応理理論論とSEMを組み合わせた分析等 •  打ち切切り,カウント,カテゴリカルデータ対応 •  ⽋欠損値への対応も充実(デフォルトでFIML) •  もちろんベイズ推定だって可能 •  コードが⽐比較的単純! •  解析速度度も速い!!(Rstanで19秒がMplusで0秒) 5
  6. 6. Mplusの基本 •  主に3種類のファイルがある •  .inp:inputファイル。ここにモデルを書いたり, データを読み込むコード書いたりする •  .out:outputファイル分析結果を出⼒力力する ファイル。inputファイルを⾛走らせると⾃自動的に ⽣生成される •  .txt,  .dat,  .csv:読み込ませるデータセットが ⼊入ったファイル。変数はinputファイルで指定 するので,変数名がない(1⾏行行⽬目からデータが 始まる)状態にしておく必要がある 6
  7. 7. こんな感じのコード 7 •  CFAの場合 •  12項⽬目4因⼦子モデル •  因⼦子の分散を1に固定 •  因⼦子負荷量量は⾃自由推定
  8. 8. こんな感じの出力 8
  9. 9. 図も簡単にできる 9
  10. 10. 日本語の解説書だってある! •  13章の潜在曲線モデルを 書きました •  ぜひご贔屓に! •  Slideshare  にも⼩小杉先⽣生や 関⻄西学院⼤大学の清⽔水先⽣生の Mplusに関する資料料が 転がっています •  http://www.slideshare.net/KojiKosugi/ mplus-‐‑‒tutorial •  http://www.slideshare.net/simizu706/ mplus-‐‑‒lecture-‐‑‒1?related=1 •  http://www.slideshare.net/simizu706/ mplus-‐‑‒lecture-‐‑‒2?related=2 10
  11. 11. Mplusのデメリット •  残念念ながら有料料 •  デモ版:無料料!従属変数6つまで,独⽴立立変数2つ まで,2レベルまで,分析はいろいろ可能 •  ⽇日本語完全⾮非対応 •  ファイルのパスに⽇日本語があるだけでエラー •  1つのファイルは1種類の分析に対応するので, ファイル数が増えがち •  データセットに変数名を⼊入れてはいけないので, そのままではRで使⽤用するファイルと連携や共有 しにくい •  データハンドリングは苦⼿手な気がする  (実はできる)11
  12. 12. なぜR勉強会でMplus?? 12 •  Rはちゃんと使えれば,データハンドリングもグラ フィカルな部分もきれいにできる! •  基本的な分析はRに任せて,複雑なモデルのときに Mplusを使っていけば,Mplusのデメリットはだい たい解決!!…する? •  Mplusではデータセットに変数名が含まれてはい けない。めんどくさい作業がのこってしまう •  モデル⽐比較やクラスターの数を求める場合,分析 数は増えるので,ファイルは多くなり,結果を⾒見見 ⽐比べにくい •  あとで分析をやり直す時にソフトウェアが異異なる のはけっこうめんどくさい
  13. 13. mplusAutomationパッケージ •  Rで使⽤用したデータセットをMplus⽤用に整形可能 •  R上でMplusを動かすことが可能 •  つまり,R上に分析の流流れのログを残せる! +α •  特定の指標のみを抽出可能 •  複数のモデルを⽐比較する時に並べて⽐比較可能 •  そのまま論論⽂文等に報告可能な形での出⼒力力も可能 •  クラスター数を変化させた分析もコードやファイル 数を減らし,簡便便に実⾏行行可能 13
  14. 14. 今回扱う仮想データの紹介 •  徳岡・杉村・前⽥田(投稿中)のデータに基づく仮想 データセット •  2  (習得,遂⾏行行)✖2  (接近,回避)の組み合わせで 4つの質の異異なる⽬目標を測定しているつもり •  互いに相関しあう4因⼦子が仮定されている •  本当に4因⼦子構造が適切切なのか •  習得と遂⾏行行,接近と回避が弁別される構造を 持っているか検討したい •  最終的には7つのモデルを⽐比較する必要あり 14
  15. 15. R上でMplusの実行 •  runModels関数 •  データのファイルとMplusのinputファイルが保 存されているフォルダのパスをしてするだけ   •  指定したフォルダ内の.inpファイルを全て実⾏行行 •  サブフォルダのファイルまで⾛走らせたい場合は引数 に                                         •  変更更を加えた.inpファイルだけ実⾏行行したい場合は 引数に 15
  16. 16. 結果の抽出1 •  extractModelSummaries関数 •  フォルダのパスを引数に指定 •  サブフォルダがあるならrecursive  =  TRUEも •  Dataframeにsummariesが格納される •  特定のファイルのみ出⼒力力したい場合は引数に                                                                のように指定 ”ファイル名.*”のように拡張⼦子の代わりに”*”を 16
  17. 17. 結果の抽出2 •  表に必要な結果をsubset関数で抽出して, データフレームにする 17
  18. 18. パスの指定が面倒くさい人に朗報 •  mplusAutomationが参照のするのはRで指定されて いるディレクトリ ⽅方法1 •  setwd()でMplusのデータが含まれるフォルダを ディレクトリに指定すればフォルダまでのパスを指 定しなくても簡単に実⾏行行できる! •  runModels  () •  extractModelSummaries  () 18
  19. 19. パスの指定が面倒くさい人に朗報 ⽅方法2(途中に⽇日本語があると動かない) •  Mplusのデータが含まれるフォルダを現在使ってい るプロジェクトに⼊入れ,サブフォルダまで実⾏行行! •  runModels  (recursive  =  TRUE) •  extractModelSummaries  (recursive  =  TRUE) •  RとMplusの両⽅方の分析コードがプロジェクト単位で まとめられるので,データ管理理もらくらく •  MacとWindowsのどちらも同じコードでOK! 19
  20. 20. 結果の抽出3:並び替え •  データフレームの変数名のところをクリックすると 昇順や降降順に並び替えられる •  今回はAICに基づいて並び替えた •  適合度度の⾼高いモデルがわかりやすい!! •  write.csv関数とかで出⼒力力すればそのまま使える! 20
  21. 21. Latexの表にもできる!1 •  LatexSummaryTable関数でLatexにも対応 21
  22. 22. Latexの表にもできる!2 22
  23. 23. HTMLの表にもできる 23
  24. 24. モデルパラメタも抽出可能1 •  extractModelParameters関数 •  引数としてフォルダ名orファイル名までのパスを 記述してmodelResultsに結果を格納 •  フォルダの指定でフォルダ内のすべてのinput ファイルの結果が格納される 24
  25. 25. 格納した結果の抽出方法 •  リストで保存されるので,取り出したい値までの パスを書いていけばOK •  さらに格納することでデータフレームとして抽出可 25
  26. 26. パスが長くても大丈夫! •  Rstudioなら“$”を⼊入⼒力力するとリストに含まれている 選択可能なファイルやパスを提⽰示してくれるので, 結果を⾒見見たいモデルをクリックすれば⾃自動的に⼊入⼒力力 される 26
  27. 27. こんな感じの出力 27 •  データフレームなので適当にいじってから, write.csv  ()してしまえば,表も完成
  28. 28. ちなみに実はR上で全部できる •  R上でMplusのinputファイルを作成も可能 •  変数はRのデータセットのものを利利⽤用できる! •  注意:プロジェクトやディレクトリまでに⽇日本語の パスがあるとたぶん動きません 28
  29. 29. Rで作成したinputファイルを実行 •  mplusModeler関数を使⽤用 •  引数に指定した.datファイルにデータセットが 変換される •  run  =  0L  にするとdatasetとinputファイルは 作成されるが,解析は⾏行行われない •  ファイルは作業ディレクトリの中に⽣生成される 29
  30. 30. 結果の抽出1 30
  31. 31. 結果の抽出2 •  より⾒見見やすい⽅方法(texregパッケージの使⽤用) 31
  32. 32. Mplus用データセットを作成するだけ •  変数名を⾃自分で指定する必要なくなる •  出⼒力力をMplusのEditorに貼り付けてモデルを書けば 変数を間違えて書いてしまうこともなくなる 32
  33. 33. まとめ •  mplusAutomationの基本関数 •  runModels  (  ):指定したフォルダ内のinput ファイルの実⾏行行 •  extractModelSummaries  (  ):指定した フォルダ内のoutputファイルの適合度度指標を データフレームとして出⼒力力 •  extractModelParameters  (  ):指定したファイル (複数指定も可)の推定パラメタを出⼒力力 •  いずれもファイルやフォルダまでのフルパスを 書いて指⽰示することが必要 •  ほかにも尤度度⽐比検定などの便便利利な機能もある 33

×