日誌

Rメモ >> Article details

2015/06/24

パッケージltmのEnvironmentデータと因子型の説明

Tweet ThisSend to Facebook | by mtsuchi
項目反応理論の段階反応モデルを行うときに使われるデータセット例について
と変数の因子型(factor)についてのメモです。

データセットを読み込んだら,変数の値が1,2,3とかじゃなくてvery concerned
とかの文字で入ってるよ!?ってときに,頭の整理に役立つ内容です。

パッケージをインストールしたら,まず読み込みます。

library(ltm)

ltmの中にあるサンプルデータEnvironmentのヘルプをみます。

help(Environment)

要約すると以下の内容です。

・1990年の英国社会的態度調査(Brook et al., 1991)の291名の回答データ

・変数
LeadPetrol      ガソリンからの鉛
RiverSea         河川・海洋汚染
RadioWaste    放射性廃棄物の輸送と貯蔵
AirPollution     大気汚染
Chemicals      毒性化学物質の輸送と廃棄
Nuclear          原子力発電所のリスク

・回答選択肢
"very concerned",    "slightly concerned"    "not very concerned"
とても関心がある,     少し関心がある,         あまり関心がない



まず回答の分布をみてみます。

summary(Environment)

              LeadPetrol                RiverSea                RadioWaste
 very concerned    :179   very concerned    :233   very concerned    :217 
 slightly concerned: 95   slightly concerned: 51   slightly concerned: 56 
 not very concerned: 17   not very concerned:  7   not very concerned: 18
  
             AirPollution              Chemicals                 Nuclear  
 very concerned    :189   very concerned    :218   very concerned    :150 
 slightly concerned: 93   slightly concerned: 56   slightly concerned: 95 
 not very concerned:  9   not very concerned: 17   not very concerned: 46 

チェルノブイリの事故が1986年だったので記憶も新しいはずですが,原子力発電所
のリスクは関心ない人が最も多いです。しかし現在の日本の我々にとっては,この
中ではもっとも関心が高いかもしれない変数だったりしてなじみがありそう
なので,以下Nuclearを詳しくみてみます。

str(Environment$Nuclear)

Factor w/ 3 levels "very concerned",..: 1 1 1 1 1 1 1 1 1 1 ...

1行で情報が集約されているのがよいですが,省略されてたり
するので少し分かりづらいです。代わりに以下の関数を打ち込んでみます。

attributes(Environment$Nuclear)

$levels
[1] "very concerned"  "slightly concerned" "not very concerned"

$class
[1] "factor"


これで,基本的な内容が分かります。つまり,

・変数Nuclearは因子(factor)型,つまりカテゴリ変数である

・内部的には1="very concerned",2="slightly concerned",3="not very concerned"
という数値の水準の変数として作られている

ということになります。levelsで挙げられている順番に,1,2,3と割り当てられる
からです。

データセットの表示にはこの回答選択肢の文字列が使われているので
分かりにくいのですが,以下のようにして対応を確認できます。

もう一度分布の確認

table(Environment$Nuclear)

    very concerned slightly concerned not very concerned
               150                 95                 46


因子型という情報を解除して数値情報だけにした変数nucnを作成

nucn<-unclass(Environment$Nuclear)

nucnの分布を確認します

table(nucn)

nucn
  1   2   3
150  95  46


このように,回答選択肢の水準の対応関係がわかると思います。
22:51 | Impressed! | Voted(0) | Comment(0)