Rでファイ係数を計算してみます。
ファイ係数とは、前回やった相関係数の一種で「1と0の2値からなる変数に対して計算される相関係数」です。
ここで、2値と言っているのは、例えば「好き・嫌い」「良い・悪い」「◯・☓」のようなアンケートの結果を数値化したもののことです。
例えば、「りんごは好きですか?」という問に対して「はい・いいえ」で答えるようなアンケートを20人に取り、その結果が以下のようだったとします。
apple <- c("はい","はい","いいえ","いいえ","はい","はい","はい","はい","はい", "いいえ","いいえ","はい","いいえ","はい","はい","いいえ","はい","はい","はい","はい") apple # 'はい' 'はい' 'いいえ' 'いいえ' 'はい' 'はい' 'はい' 'はい' 'はい' 'いいえ' 'いいえ' 'はい' 'いいえ' 'はい' 'はい' 'いいえ' 'はい' 'はい' 'はい' 'はい'
次に、同様のアンケートを今度はバナナについて取ってみたところ、こんな結果になりました。
banana <- c("はい","はい","はい","はい","いいえ","いいえ","いいえ","いいえ","いいえ", "いいえ","はい","はい","はい","いいえ","はい","いいえ","いいえ","いいえ","いいえ","いいえ") banana # 'はい' 'はい' 'はい' 'はい' 'いいえ' 'いいえ' 'いいえ' 'いいえ' 'いいえ' 'いいえ' 'はい' 'はい' 'はい' 'いいえ' 'はい' 'いいえ' 'いいえ' 'いいえ' 'いいえ' 'いいえ'
さて、これらのアンケートの結果の関係について確認するために、クロス集計表を作ります。
table(apple, banana)
いいえ | はい | |
---|---|---|
いいえ | 2 | 4 |
はい | 10 | 4 |
(行がapple, 列がbanana)
この評価から「りんごは好きだけれども、バナナは好きではない人の割合が比較的大きなる傾向がある」というのが見えます。
それでは具体的にファイ係数を計算して、アンケート結果の関係性を数値で表してみましょう。
「はい・いいえ」のままでは扱えないので、ifelseという関数を使って1, 0の2値に変換します。
apple_1_0 <- ifelse(apple == "はい", 1, 0) apple_1_0 # 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 banana_1_0 <- ifelse(banana == "はい", 1, 0) banana_1_0 # 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0
ifelse関数について、まず第1引数に「対象となる変数と条件」を指定します。
そして、対象となった変数の各値に対して条件を検証し、条件に一致していればifelseの第2引数の値、一致しなければ第3引数の値をそれぞれ代入した形に変換します。
今回の場合、それぞれのアンケート結果の変数に対して「値は"はい"であるか?」をそれぞれの値について調べて、"はい"であれば1を、そうでなければ("いいえ"であれば)0を代入した形にして返してくれます。
これでアンケート結果を2値にすることが出来たので、これを使ってファイ係数を計算します。
これは、前回も出てきたようにcor関数を使って簡単に計算できます。
cor(apple_1_0, banana_1_0) # -0.3563...
この結果については相関係数と同じような解釈ができるため、今回のアンケートの結果は「弱い負の相関」が見られる、という事になります。