Kobe.R #10を開催しました。
URL:
http://kobexr.doorkeeper.jp/events/15060
日時: 2014/10/4 Sat. 10:00-12:00
場所: 三ノ宮駅周辺
Kobe.Rは関西で毎月定期的に開催している、統計用プログラミング言語 R の勉強会です。続いては疲労を見える化しようという研究について発表していただきました。
疲労を見える化する
質問紙を配り、回答してもらいます。
質問紙には例えば
- 不安で落ち着かない気分である
- 居眠りが多い
- 微熱がある
- よく眠れない
など、臨床で聞き取ってよく出てくる症状を並べています。
ほとんどの質問はこのように症状ですが、中には
- すごく仕事が忙しい
のように状態をたずねる質問もあり、全部で38個の質問を用意しました。
これらの質問に対し、「まったく無い」から「非常にある」までの5段階で答えてもらいました。
質問どうしの関連を調べ、グループ化、集約することで、この人はこういう原因で疲れている、ということを可視化しようという研究です。今日の発表では質問表のデータから因子分析をやって、因子分析結果の妥当性をとりました、というところまでをご紹介します。
[発表資料は後日掲載]
因子分析の流れ
データは適切か?
因子分析をするにはデータがどれくらいの件数あるかが大切です。
質問の数の10倍から20倍くらいはないといけません。今回は質問38に対して1000人弱の回答がありますので、そこそこよいでしょう。
そして、質問どうしにある程度の相関がないと、質問をうまくグループ分けできません。例えばまったく無相関な質問ばかり並んでいると、因子分析をする意味がありません。そこで、事前に因子分析をする価値があるデータなのか調べます。このことを調べる指標としてKMO, MSAがあります。また、バートレットの球面性検定という方法もあります。詳しくは「中澤 港、
Rで因子分析:入門偏」を参照してください。
何個の因子にわけようかな
因子分析やる価値のあるデータだと判断したら、今度は何個くらいの因子に分けることができるかなということを見ていきます。いくつかの方法を紹介します。
- スクリープロットを見る方法 因子行列の固有値を大きい順にプロットしますと、あるところでカクンと落ちるところがあります。落ちる手前までが意味のある因子でしょうねという決め方です。
- 固有値が1を超えていれば、1個分以上の価値がある因子なのだから、そこまでを含めたらいいでしょうという決め方
- 平行分析 自動的に決めてくれます。こちらも詳しくは「中澤 港、
Rで因子分析:入門偏」を参照してください。
因子分析で質問をグループ分けしよう
どの項目がどのグループに入るかを計算していくのが因子分析です。今回は38個の質問の項目をを10グループに分けていきます。
この時にどのグループに入るか推定する方法として、最尤法や一般化最小自乗法があります。データの分布が正規分布に近ければ最尤法がよいのですが、今回のデータの場合、普通の方がそんなに症状がいっぱいあるということが本来無いので、つまりどれもこれもあてはまるという人はほとんどいなくて、「まったくない」、「ほとんどない」に回答が集まってしまいました。質問紙の設計を見直すべきだったかもしれません。
データの分布があまりきれいじゃない場合には一般化最小自乗法のほうがロバストでよいとされており、今回の研究では一般化最小自乗法を使いました。
因子の軸を回転する
因子の解釈がしやすくなるよう、回転を行います。この時、因子間の関係性が完全に独立だと仮定して直行した成分とみなして、計算させる方法か、斜行といって因子間に、ある程度は相関があってもいいよねっていう前提で解析するか、決めなければいけません。
この研究では、因子間にある程度関係はあるもんだという前提の回転を選びました。
因子を解釈する
因子分析を行うと、質問項目に対して因子負荷量が出てきます。この数字を見て、どの質問項目がどの因子に入るのかを見ていくわけです。この因子にはこの質問が含まれているというのを見て、因子に名前をつけていきます。例えば、不安、過労、不眠、感染症、慢性疲労などです。