井出草平の研究ノート

柳井晴夫「因子分析法の利用をめぐる問題点を中心にして」

因子分析について少し勉強をしているところである。因子分析は心理学の人が使うことが多く、心理学徒ではない僕は因子分析をほとんど使ったことがなく、勉強もろくにしたことがないので自分の勉強を兼ねてのエントリーである。

今日、取り上げるのは下記の文献である。

柳井晴夫「因子分析法の利用をめぐる問題点を中心にして」 教育心理学年報 39(0), 96-108, 2000 https://ci.nii.ac.jp/naid/130004572326

この論文は1998年から1999年にかけて教育心理学研究や心理学研究に掲載された論文や学会大会の発表抄録に掲載された論文を対象にしている。それらの論文で、因子分析が適切に使われているかなどを調査している。技法の使用頻度をまとめたのか以下の表である。

f:id:iDES:20190405015444p:plain

1965年からの論文の間違いをチェックしたわけではないようだが、過去1年間の論文について柳井は次のように述べている。

因子分析の主因子法,または主成分分析の結果をバリマックス回転して得られた因子負荷量の平方和を固有値と記述してある論文が最近1年間に発行された教育心理学研究の4論文と心理学研究の1論文に見られた。これは明白な誤りであるが,この誤りは,ここ10年来跡を絶たない。

この誤用パターンはあるあるネタかもしれない。 歴史的に主因子法・主成分分析が使われてきたことが原因なのだろうが、SPSSの推定法の初期値?が主成分分析になっているのも関係しているかもと思ったりもする。

f:id:iDES:20190405015459p:plain

推定方法

因子分析にかける変数を規定する因子があらかじめ仮定されていたり,変数間の相関関係をできる限り少数の因子で説明したい場合には,主成分分析でなく,因子分析モデルを仮定した因子の推定法を適用すべきである。こういった場合の因子負荷量の推定法としては,これまで主因子法が多く使われてきたが,SASSPSSといったソフトウェアが利用可能な場合には,最小二乗法,重みつき最小二乗法,最尤法などをもっと利用し,可能であれば,異なった手法の適用が分析結果にどのような相違をもたらすかについて考察してほしい。

データの特性を把握して、可能性のある推定法を一通り行うのは当たり前のことだが、意外にそうでもないようだ。現在だと主因子法+プロマックス回転を何も考えず採用している論文が多そうだが、それが正しいとは限らないということことだろう。

回転

リマックス回転が多いことが指摘されている。

因子分析を用いたとみられる論文数は19編あった。そのうちバリマックス回転を行った論文は13(66%),斜交回転はプロマックス回転(4)・オブリミン回転(1)・斜交プロクラステス回転(1)であり,いまだにバリマックス回転が主流であることがわかる

最近では、プロマックス回転が使われることが多いように思う。バリマックス回転を使わなくなっているので、ずいぶん改善してきたのではないかと思う。論文ではバリマックス回転が適切ではない研究について具体的に指摘されている。

1997年に因子分析の権威マイケル・ブラウン教授が来日された際,斜交回転の方法としてプロマックス回転法とオブリミン回転のどちらが優れているかという質問をしたことがある。このとき,ブラウン教授はためらわずオブリミン法が優れていると回答し,プロマックス回転法については批判的であったことが印象的であった。

プロマックス回転も批判されている。具体的にマイケル・ブラウンが何を言ったかは知らないが、プロマックス回転が簡便法であるところが問題なのではないかと推測している*1

標準誤差

2000年でもある程度、標準誤差の算出が試みられており、筆者は因子パターンとの併記が望ましいと述べている。まったくその通りだと思う。現在では手技も発達しているかもしれないので、どの方法をとれば標準誤差が出せるのかを調べてみたい。

信頼性係数

(何も考えず)クロンバッハのαを使うことへの批判である。

質問紙による尺度構成の手順としては,因子分析(回転を含む)により抽出された各因子に高い負荷量を有する項目をまとめてα係数を算出するという手続きがかなり定着しているが,村石・豊田(1998)は,尺度に含まれる項目のτ等価(項目得点が真値を共有している)や平行性(τ等価に加えて,誤差分散も等しい)を無視してα 係数を求めることは,必ずしも好ましくないことを警告し,因子負荷量を用いた精密な計算式の利用を推奨している。一方,高木・柳井(1998)はα 係数と同時にθ係数を求め,ある特定の尺度のなかに他の項目と比較してきわめて因子負荷の低い項目が含まれている場合には,θ 係数はα 係数に比べ0.2~0.4増加する事例を報告している。

感想

柳井論文は2000年に公刊されており、1999年までに執筆された論文が対象となっているので今から20年前ほど前の状況が描かれてある。心理学の論文はほとんど読まないので、的外れかもしれないが、争点となるトピックは違っても、同じようなことが起こっている気がする。

僕が最初に因子分析というものを統計パッケージで走らせたのは、大学の3年(だったと思う)の演習授業である。2003年のことだ。担当教員は林直保子先生で、その時に最尤法や最小二乗法を習った記憶がある。バリマックス回転も習ったが、ほとんどのケースではプロマックス回転がいいと習ったように思う。学生に教えるくらいだから、研究者はそのくらいはしていると思い込んでいたが、今回論文を読んで、そうでもなかったことがわかった。確かに林直保子先生は新しい技法を取り入れるスタイルなので、学部の演習でできる範囲で最新のもの教えてくれていたのだろうと思う。

最後に、因子分析とは直接的な関係はないが標準化偏回帰係数についての記載があったので引用しておこう。

喜岡・柳井(1997)は上記,および,Newman,T.B.& Browner,W.S.(1991), Greenland,S.etal.(1991)といった計3つの論文の要旨を紹介したあと,心理学や社会学の行動科学においても同様なことがあてはまることを指摘し,重回帰分析を用いる場合,説明変数の尺度の原点や単位が任意でかつ意味が明確でないときには標準偏回帰係数の利用を,原点や単位の意味が明確な場合には偏回帰係数の利用を薦めている。教育心理学研究で用いられる性格尺度・態度尺度が説明変数となる場合は標準偏回帰係数,医学や疫学で用いられる最大血圧値と血清コレステロール値を用いてある疾患の進行度を予測するような研究の場合には偏回帰係数を用いるべきということになる。例えば,最大血圧値を10下げた場合,最大血圧に与えられた偏回帰係数を10倍した分だけ進行度が改善されることになる。いずれにしても,偏回帰係数と標準偏回帰係数のいずれを選択するか,あるいは回帰分析の使用を止めて他の手法を選択するかは,研究目的・データの収集法・研究結果を実際の現場にどのようにフィードバックすべきかといった様々な要因に影響されるものであることを指摘しておこう。その意味で,判別分析,重回帰分析やパス解析,共分散構造分析において変数の単位や意味に無関係に標準偏回帰係数を利用することは慎むべきであるといえよう。

この主張に反対というわけでもないが、社会学の論文では標準化偏回帰係数は使わないことが推奨されている。 推奨と書くとやや誤解があるが、少なくとも英文で刊行される論文では使われていない。

単位・意味といった点では、社会学の論文は回帰式の結果で従属変数の推定値を出すことが目的ではないこと、モデル間の比較をすることが多いので単位を揃える必要がないことなどが理由である。また、推定値標準化というのは平均が0、分散が1となるようにデータを変換することであり、変数が正規分布がに従うことが仮定されている。しかし、社会学の分析では正規分布が仮定できる変数が少ない。柳井が想定するリッカート尺度を中心とした心理学とは大きな違いだろう。正規分布が仮定できないのに無理やり標準化をすると、当然、偏回帰係数が正しく計算できない。

単位・意味だけではなく、変数を標準化していいのかを考えるべき、という主張であれば、賛同ができるが、このままでは賛同できない、といったところだろうか。

*1:プロマックス回転はバリマックス回転を施した因子負荷行列に斜交プロクラステス回転をかけるという方法

WordPressを利用して授業の出席をとる

今年度の後期(の後半)から、大学での出席のとり方について見直してみた。 今まではマークシートで出席をとっていたが、スマホを利用する方法に変更した。

基本的な手順は以下である。 1. Webで出席フォームを用意する。 2. アドレスをQRコードにしてレジメに印刷、配布。 3. 学生はカメラでそのQRコードを撮影して、スマホWebブラウザで出席確認を行う。

出席のとり方は大学によってかなり異なるようだ。知人に聞く限りの話では、Blackboardを使用している大学や、学生証を機械にかざすといった方法があるようだ。Blackboardが便利だとは思えないし、なにより使い勝手が悪すぎる。ログインすると、これからCMSの構築をするぞ!という雰囲気で、一般的な教員に使いこなせるレベルだとも思えない。どこかの企業が作成した出席システムを使用する大学もあるが、高価なのにに使用場面限られるなどコスパが合っているようにも思えない。

僕の好みは、誰でも持っているハードウェアで、フリーのソフトウェアを使い、かつ、効率の良いもので実行できることだ。

阪大の場合、CLEという名前のBlackboardが導入されているが、授業によって出席機能が使えないという不思議な設定がされているクソ仕様である。ということで、自前で出席確認のシステムを構築しようと考えた。 Webを利用しての出席確認をする方法はおそらく多くの選択肢があるので、このエントリーで紹介する方法がベストではおそらくないだろう。とりあえず忘備録代わりに書いておこう。

スマホで出席確認をするために必要な条件

システム構築のために学生に簡単なアンケートを実施してみた。

  1. 大学生はスマホを持っているか
    今年度の後期の学生は全員持っていた。スマホで出席をとっても問題はないと判断した。スマホを持っていない学生も今まで受け持った学生の中にはいたが、スマホは大学生の必須アイテムになっているので、スマホを持っていない学生はかなり少ない。そういった学生には手書き用の出席カードを用意しておけば対応できそうである。

  2. 文章を書くのはスマホと手書きのどちらが速いか
    授業の感想も出席と同時にとりたい。これをWebブラウザの入力フォームで行っても問題ないか、を確かめてみた。 スマホの入力速度が手書きに比べて遅ければ、感想は手書きの用紙を別に用意した方がよい。 口頭で聞いて回った時には、スマホの方が速いという意見が多いように感じたのだが、アンケートをとってみると、そうでもなかった。手書きを1とした時にスマホが1) スマホの方が遅い(0.6~0.7)、2)ほぼ同じ、3)スマホの方が速い(3~5)という3つの回答にだいたい均等に分かれた。 スマホ入力の腕が鍛えられるのは、LINEなどのSNSだと思うので、人との付き合い方が多い方が入力速度も速いのだろう。あとは、高校時代からバリバリ入力してきたか、によっても入力速度は変わってきそうだ。

自分の授業で聞いただけなので、偏りがるかもしれないが、スマホを利用した出席確認は学生側にとっても許容できると判断した。 名前・学籍番号・感想の3つのフォームを用意することにした。

具体的な実施方法

では、どのような方法で実行するか、である。

  1. プログラミングをする
  2. Googleなどのクラウドを使用したサービスを利用する
  3. 自分のサーバーでツールを使ってフォームを作る

授業の出席情報をクラウドに送るのはさほど問題ではないので、2でもよいのだろうが、今回は3にした。ツールはWordPressを使用した。WordPressを選んだ理由は以下の3つである。

  1. 使い慣れている
  2. スマホ/PCブラウザ両対応はテーマが用意されているのでデザインの手間が省ける
  3. WordPressプラグインが多く、データベース的な作業が得意(と期待)

他のツールを調べていないので、他にも適切なものはおそらく存在しているだろう。 ざっくりと調べたところでは、わりと有料サービスが多かった印象である。

Contact Form 7

https://ja.wordpress.org/plugins/contact-form-7/
作者: Takayuki Miyoshi

プラグインは2つ使う。Contact Form 7はコンタクトフォームのプラグインである。コンタクトフォームからのメッセージはメールで受信する。 おそらく、出席用のメールアドレスを用意しておいた方がよい。

Flamingo

https://ja.wordpress.org/plugins/flamingo/
作者: Takayuki Miyoshi

Contact Form 7の内容をcsv出力できるプラグインである。出席のデータとして使用するのはこのcsvである。

出席フォームの作成

2つのプラグインをインストールするとWordPressの管理画面の左メニューバーに「お問い合わせ」と「Flamingo」の項目が加わる。

まず、Contact Formの設定から行うので、メニューの[お問い合わせ]→[新規追加]で新しいフォームを作成する。

f:id:iDES:20190320171137p:plain

僕は上記のように名前・学籍番号・感想の3つのフォームを作成した。

<label> 名前 (必須)
    [text* your-name] </label>

<label> 学籍番号 (必須・<b>半角</B>で記入してください)
    [text* StudentNumber] </label>

<label> 感想
    [textarea your-message] </label>

[submit "送信"]

f:id:iDES:20190320171148p:plain

1点注意するところがある。 [メール]タブでは送信先のメールアドレスを入力するが、ここに自分の普段使いのメールアドレスを入れてはいけない。 出席確認メールであふれかえるので、上に書いたように専用のメールアドレスか、デタラメなメールアドレスに変更しておく必要がある。

出席フォームの表示

出席フォームを表示させるには、WordPressの固定ページを使用する。

アドレスのパーマネントリンクは「授業日」+「科目名」を使うのが後々整理しやすいように思った。例えば2019年の3月20日社会学の授業であれば"20190320socio"といった感じだ。ただ、単に授業日+授業名だと、欠席している学生でも、出席フォームの場所が用意に推測できるため、日付の後ろに4ケタのランダムな英数字をつけることにした。もちろんこれは好みである。

固定ページには、Contact Form(お問い合わせ)で指示されたように、以下のようなコードを記入すればよいだけである。xのところは変化するところである。

[contact-form-7 id="xx" title="xx"]

スマホでみると下記のような感じに仕上がる。

ちなみにテーマは"Dan"を使用している。
https://wordpress.org/themes/dan/

出席フォームの場所をレジメに印刷

固定ページでパーマネントリンクを作成して、それをQRコードに変換する。

変換はWebを探せばいくつもサービスが見つかるので、どこでもよい。例えば以下のようなサイトである。

QRのススメ https://qr.quel.jp/

画像で出力したQRコードのレジメなどに貼って配布する。 配布資料がない場合には、QRコードをスライドに映すなどして学生に出席フォームの場所を知らせることができる。

作成したQRコードは一度分析して「余分なもの」がつけ加わってないか確認しておいた方が良いだろう。

その他

遅刻の扱い

遅刻を記録したいという先生方もおられるだろう。コンタクトフォームはだいたいそうだが、Contact Form 7はタイムスタンプが記録される。出席確認をした時刻がわかるので、遅刻の判別がつけられる。その場合、出席は授業の最初にとるとよいだろう。

代返対策

僕はあまり気にしていないが、このシステムは代返は可能である。 というよりも、少人数クラス以外ではどのような方法をとっても代返は可能である。

このエントリで書いた方法でも可能である。例えばQRコードを撮影して、LINEで送れば、出席していなくても、出席フォームのアドレスがわかる。どの時代も持つべきものは友人といったところであろう。ただ、学生の協業を阻止したいという先生方もおられるだろう。その場合にはロケーション・データの取得を行えばよい。

ただ、ロケーション・データはわりと簡単に偽装ができる(Android/PC)。 学生側の対策としては、最初の授業の時に学校の教室のロケーションデータを確認しておくとよいだろう。そうすれば、家で寝ていたとしても出席したかのように偽装できる。

Rで因子分析 基礎

この原稿は統計学勉強会のためにかかれたもので、学校で習うあたりまでの簡単な解説である。

因子分析とは

(探索的)因子分析とは、観測できる変数から観察できない因子(潜在変数)を見出す探索し発見する方法である。このように説明してもよくわからないので、実際に実例を使いながら説明をした方がよさそうである。

Rで因子分析をする際にはpsychパッケージを使用する。psychパッケージにはサンプルデータも入っているため、入門にもちょうどいいと思う。

library("psych")
library("GPArotation")

GPArotationパッケージは回転をするためのパッケージ。 分析の際に使用するので一緒に読み込んでおく。

psychパッケージにはパーソナリティの5因子モデル(IPIP-NEO)のデータが含まれている。 パーソナリティの5因子モデルのデータは"bfi"という名前である。

data(bfi)

5因子モデルの議論にはあまり詳しくないが、IPIP-NEOというのは、人のパーソナリティを5つの因子で分ける試みの一つである(https://sapa-project.org/)。パーソナリティの5因子モデルの試みはいくつもあり、精神医学ではNEO-PI-Rを見かけることがあるが、サンプルデータなので細かいところは措いておこう。

調べたところIPIP-NEOには日本語の定訳がないようだ。変に日本語に翻訳してしまうと、正式な日本語訳だと誤解されると迷惑をかけるので、質問文は原版通りに、それぞれの因子の邦訳だけしておく。

Agreeableness 協調性・調和性
A1 Am indifferent to the feelings of others. (q_146)
A2 Inquire about others’ well-being. (q_1162)
A3 Know how to comfort others. (q_1206)
A4 Love children. (q_1364)
A5 Make people feel at ease. (q_1419)

Conscientiousness 勤勉性・誠実性
C1 Am exacting in my work. (q_124)
C2 Continue until everything is perfect. (q_530)
C3 Do things according to a plan. (q_619)
C4 Do things in a half-way manner. (q_626)
C5 Waste my time. (q_1949)

Extraversion 外向性
E1 Don’t talk a lot. (q_712)
E2 Find it difficult to approach others. (q_901)
E3 Know how to captivate people. (q_1205)
E4 Make friends easily. (q_1410)
E5 Take charge. (q_1768)

Neuroticism 神経症傾向・情緒〔不〕安定性
N1 Get angry easily. (q_952)
N2 Get irritated easily. (q_974)
N3 Have frequent mood swings. (q_1099)
N4 Often feel blue. (q_1479)
N5 Panic easily. (q_1505)

Openness 開放性・経験への開放性
O1 Am full of ideas. (q_128)
O2 Avoid difficult reading material.(q_316)
O3 Carry the conversation to a higher level. (q_492)
O4 Spend time reflecting on things. (q_1738)
O5 Will not probe deeply into a subject. (q_1964)

gender 性別 Males = 1, Females =2
education 教育 1 = HS 高校入学, 2 = finished HS 高卒, 3 = some college 大学入学, 4 = college graduate 大卒 5 = graduate degree 院卒
age 年齢 age in years

この質問文の中から5つの「まとまり」(因子)を導くのか因子分析の目的である。 データは確証的因子分析のものだが、今回はそのデータを探索的因子分析を用いる。

d1 <- bfi[1:25]

26列目以降は性別・教育・性別のデータが入っているので、1-25列だけを使用する。

res01 <- fa(d1, nfactors = 5, fm = "ml", rotate = "promax", scores=TRUE)
print(res01, digits = 3, sort=TRUE)

データ: d1、因子数: nfactors、推定方法: fm、回転方法: rotate、因子得点を表示scores=TRUEで表記する。データを最初に持ってくる以外は順番が入れ替わっても問題ない。

printのオプションは小数点を第3位まで: digits = 3、ソートを指定する。 以下が因子負荷(パターン行列)である。

ここではプロマックス回転、最尤法を使用する。最もよく使われる回転方法と推定法のペアである。最尤法には問題はない。データが正規分布から大きく逸脱している場合には、最尤法がむしろ望ましい。問題は、プロマックス回転の方だろう。プロマックス回転は簡便法であり、必ずしも良い選択肢とはならない。代わりにジオミン回転や独立クラスタ回転(ハリス・カイザー回転)などを使うのが良いだろう。

Standardized loadings (pattern matrix) based upon correlation matrix
  item    ML2    ML1    ML3    ML5    ML4    h2    u2  com
N1   16  0.862  0.224  0.041 -0.266 -0.097 0.705 0.295 1.37
N2   17  0.834  0.168  0.054 -0.247 -0.036 0.657 0.343 1.28
N3   18  0.721 -0.003 -0.012 -0.019 -0.007 0.525 0.475 1.00
N5   20  0.502 -0.159  0.026  0.147 -0.150 0.338 0.662 1.59
N4   19  0.492 -0.321 -0.102  0.054  0.084 0.478 0.522 1.93
E2   12  0.119 -0.709  0.046 -0.019 -0.005 0.548 0.452 1.07
E1   11 -0.055 -0.647  0.159 -0.015 -0.044 0.369 0.631 1.15
E4   14 -0.014  0.608 -0.043  0.274 -0.113 0.519 0.481 1.48
E5   15  0.158  0.480  0.237 -0.008  0.167 0.405 0.595 2.00
E3   13  0.075  0.480 -0.067  0.238  0.251 0.441 0.559 2.15
C2    7  0.141 -0.114  0.662  0.076  0.062 0.427 0.573 1.20
C4    9  0.152  0.029 -0.644  0.053 -0.039 0.465 0.535 1.14
C3    8  0.039 -0.098  0.585  0.088 -0.058 0.317 0.683 1.13
C5   10  0.187 -0.090 -0.562  0.015  0.093 0.435 0.565 1.34
C1    6  0.058 -0.050  0.542 -0.014  0.158 0.321 0.679 1.21
A3    3  0.036  0.203  0.011  0.621 -0.008 0.511 0.489 1.22
A2    2  0.048  0.099  0.082  0.567 -0.005 0.401 0.599 1.12
A5    5 -0.089  0.278 -0.039  0.546  0.013 0.483 0.517 1.56
A4    4 -0.024  0.075  0.196  0.425 -0.169 0.286 0.714 1.84
A1    1  0.151  0.106  0.044 -0.394 -0.036 0.150 0.850 1.50
O3   23  0.037  0.239 -0.037  0.080  0.594 0.473 0.527 1.37
O5   25  0.096  0.025 -0.025  0.052 -0.522 0.274 0.726 1.10
O1   21  0.015  0.155  0.028  0.025  0.508 0.324 0.676 1.20
O2   22  0.174  0.022 -0.075  0.153 -0.450 0.244 0.756 1.62
O4   24  0.158 -0.257 -0.020  0.170  0.381 0.257 0.743 2.627

表の見る部分は、数字の大小である。 因子負荷 は1~-1までの値をとり、1もしくは-1に近ければ非常に関連が高いという意味で、0が関連が低いという意味である。相関係数と同様の解釈の方法でよい。ちなみに、直交回転の場合因子負荷と相関係数は一致するが、斜交回転では一致しないので、斜交回転の際には、値が異なることに注意が必要である。

項目N1のML2(第2因子)は0.862であり、関連が高いことがわかる。他のN項目も同様にML2と正の関連があることがわかる。ML3は0.041と関連が低くなっており、N項目と第3因子(ML3)には関連がないことが確認できる。

printコマンドで"sort=TRUE"にすると自動で並び変えてくれるため、解釈が非常にやりやすくなる。ただし、試行錯誤の段階では、この例のように明確に分かれないため、ソートをしない方が解釈しやすいということもあるので、適宜使い分けが必要だ。

原因はわからないが、RStudioのRMarkdownからでは因子得点は出力できなかった。RStudioのコンソールから直接コマンドを入れると出力される。ノーマルなRであれば、このような問題は起きないので、RStudioを使用する際にだけ注意が必要だ。

次のブロックに表示されるのは統計量である。

                      ML2   ML1   ML3   ML5   ML4
SS loadings           2.651 2.389 1.944 1.875 1.493
Proportion Var        0.106 0.096 0.078 0.075 0.060
Cumulative Var        0.106 0.202 0.279 0.354 0.414
Proportion Explained  0.256 0.231 0.188 0.181 0.144
Cumulative Proportion 0.256 0.487 0.675 0.856 1.000

SS loadings: 因子負荷量平方和
Proportion Var: 寄与率
Cumulative Var: 累積寄与率
Proportion Explained: 説明率
Cumulative Proportion: 累積説明率

論文に書くときにはは、因子負荷量平方和、寄与率、累積寄与率の3つがあればよい。

次のブロックは因子間の相関が表示される。

With factor correlations of
      ML2    ML1    ML3   ML5   ML4
ML2  1.000 -0.272 -0.231 0.014 0.025
ML1 -0.272  1.000  0.375 0.335 0.153
ML3 -0.231  0.375  1.000 0.243 0.211
ML5  0.014  0.335  0.243 1.000 0.187
ML4  0.025  0.153  0.211 0.187 1.000

ほとんどの相関係数が絶対値0.35以下であり、5つの因子間の相関がそれほど高くないことがわかる。

次のブロックが最後で適合度などが表記される。

The degrees of freedom for the null model are  300  and the objective function was  7.228 with Chi Square of  20163.79
The degrees of freedom for the model are 185  and the objective function was  0.628

The root mean square of the residuals (RMSR) is  0.03
The df corrected root mean square of the residuals is  0.038

The harmonic number of observations is  2762 with the empirical chi square  1474.696  with prob <  1.29e-199
The total number of observations was  2800  with Likelihood Chi Square =  1749.883  with prob <  1.39e-252

Tucker Lewis Index of factoring reliability =  0.8721
RMSEA index =  0.0551  and the 90 % confidence intervals are  0.0526 0.0573
BIC =  281.469
Fit based upon off diagonal values = 0.979
Measures of factor score adequacy             
                                                    ML2   ML1   ML3   ML5   ML4
Correlation of (regression) scores with factors   0.929 0.904 0.881 0.868 0.835
Multiple R square of scores with factors          0.863 0.816 0.777 0.754 0.698
Minimum correlation of possible factor scores     0.727 0.633 0.553 0.508 0.395

スクリープロット法とカイザーガットマン基準

因子数を決定するために一般的に使われている方法。この方法は他の方法で代用した方がよいが、普及率が高いので記載しておく。

scree(d1,factors=TRUE,pc=TRUE,main="Scree plot",hline=NULL,add=FALSE)
VSS.scree(d1, main = "scree plot")  

f:id:iDES:20190319093630p:plain

スクリープロット法は図にしてガクッと落ちているところを探して、落ちる前の数を因子数として採用する方法である。 この図では、明確にわからない。2~3でガクッと落ちているものの、固有値はそこまで低くなく、ここで切っていいかは判断しづらい。

次に一般的によく使われるのが、カイザーガットマン基準である。固有値を「1」と決めて、それ以上のものを採用するという基準である。

図の1のところに線が横に引いてあるのが、カイザーガットマン基準である。カイザーガットマン基準に従えば、6因子構造を採用することになる。

ただ、このデータは5因子モデルなので、カイザーガットマン基準の6因子という結果とは異なる。また、スクリープロット法もあまりよくわからないので、探索的因子分析で、このデータをこの2つの方法で、5因子と決定することは難しい。

MAP基準、平行分析、BICの使用が現在では推奨されており、上の2つの方法は参考程度にするのがよいだろう。

クロンバッハのα係数

クロンバッハのαとは内的妥当性の係数の一つである。信頼性係数とも呼ぶ。外的妥当性とは計測したいものをどのくらい計測できているか、他の方法と比較してどのくらい妥当なのかをみるが、内的妥当性は質問項目が因子を導くのにどのくらい妥当かというものである。質問項目にノイズが多くあれば、クロンバッハのαは低くなる。

クロンバッハのαはpsychパッケージに含まれており、以下のコマンドで出力される。

alpha(d1)

各項目の統計量まで出力されるが、論文で使用する際には、以下値さえあればよい。

lower alpha upper   95% confidence boundaries
0.51  0.53  0.56

使用するのは中央の0.53である。95%信頼区間が表示されているが、この値の表記を求められることはないと思う。

0.53という数字だが、これは高いとは言えない数字だと思う。表記が主観的になっているので、いくつであれば良いかというのが明確に決まっていないためである。因子分析を使用している人たちにも意見のばらつきはあるだろうが、0.7以上くらいは求められるのではないだろうか。

クロンバッハのαず最も使用頻度の高い方法だが、もう少し良い指標である「ω係数」などもあるため、そちらの表記の方が望ましい。ただ、クロンバッハのαがまだ主流なので、ω係数とは何か?と質問がでる所(例えば学会など)では、両方の併記が望ましいだろう。

この記事はRでの基本的な因子分析の方法しか扱っていない。 残したお題は、次回研究会で扱うので、その際にまた記事を書くつもりである。

コマンドの複製

何度も同じような分析をするときには

統計処理を行うとき、クロス集計表や相関係数などの基礎分析を山のようにしなければならない時がある。

SPSSのようにマウスでポチポチしていると大変な手間*1コマンドだと、同じような分析を何度もする際に非常に楽だと言われている。

しかし、それでも、問番号を書き換えるのはめんどくさいし、ヒューマンエラーも発生する。

そういうときには、コマンドを複製していくのが合理的だと思う。 いくつか方法があるが、誰でもできるExcelを使った方法を紹介しようと思う。

サンプルコード

ここでは例示としてRのクロス集計表のコマンドを使ってみよう。

ct01<-table(d1$gender,d1$Q04_01)
ct01
res01<- chisq.test(ct01)
res01

性別とQ04が20問くらいあって手で打つのがめんどくさい、と仮定してコマンドを複製してみよう。

f:id:iDES:20190309233535p:plain

Exxelは"ct01"の右下を掴み、下方向へドラッグ&ドロップすると"ct02""ct03"と自動的に番号を振ってくれる。この性質を利用し、数字を書き換えなくてもExcelに自動でコマンドを複製させることができる。

区切りは「変化するところ」「変化しないところ」「変化するところ」と交互に入れていくだけである。

改行をするところには、<BR>タグを入れておく。 htmlで使う改行(break)の記号である。 最後は、 改行をするところには、<BR>タグを2回いれる。そうすると、前後を1行あけることができる。

エディタへコピー

エクセルで複製したコマンドをエディタへコピーする。 Windowsであればメモ帳でよい。

f:id:iDES:20190309233553p:plain

ここでする作業2つである。

  1. tabの置換
  2. html形式での保存

1. tabの置換

Excelからコピーすると妙な空白がある。 これはExcelがtab区切りという形式でデータがコピーされるためである。 このtab(空白)を取り除く必要がある。

まず、tabを範囲指定してコピーする。

f:id:iDES:20190309233623p:plain

そのあと、メニューから置換を選ぶ

f:id:iDES:20190309233641p:plain

検索する文字列に貼り付けでtabを入れる。

f:id:iDES:20190309233658p:plain

置換後の文字列には何も入れない。つまり何も入れないとtabの空白が詰められるのである。 最後に[すべて置換]を押す。 そうすると、以下のようになる。

f:id:iDES:20190309233729p:plain

空白がなくなぎゅっと埋まった感じになる。

2. html形式での保存

このファイルを[名前をつけて保存]する。

f:id:iDES:20190309233710p:plain

この際に、ファイル名を"〇〇.html"とする。文字コードUTF-8に変えておく。

html形式ファイルを開ける

保存したhtmlファイルをブラウザで開けると次のように表示される。

f:id:iDES:20190309233754p:plain

これをRかRStudioに張り付けるとコマンドとして使用できる。 SPSSシンタックスやstataなどにも使える。

*1:SPSSはクロス集計表は一気に出力できるので例外として

今学期のおすすめ学習アプリ

大阪大学でICT教育を取り上げる授業があり、毎回、学生たちに学習アプリのおすすめを聞くことにしている。 僕が知らないアプリを学生に教えてもらう機会でもあるので、楽しみにしている授業の一つだ。今学期話題に挙がったアプリをまとめておこうと思う。

僕のおすすめ

まずは僕のおすすめアプリから。

mikan

http://mikan.link/ f:id:iDES:20190208185658p:plain

実際にかなり利用しているアプリ。英単語を覚える、忘れないために使っているアプリ。1日に振り返ることのできる単語数が多いところが気に入っている。

Google翻訳

https://translate.google.co.jp/?hl=ja f:id:iDES:20190208185634p:plain

わざわざ言わなくてもよいアプリ。翻訳をする際に下訳的な使うのに便利。 Microsoft翻訳もそこそこおススメ。

 grammarly

https://app.grammarly.com/ f:id:iDES:20190208185639p:plain

英文校正ツール。アプリと言ってよいのかわからないが、スペリングののチェックをするアプリとしてはGingerと双璧。スペルミスには役立つが、表現の提案はいまいちな気がする。有料版で追加料金を払うと文章のネイティブチェックをしてもらえるのは便利かもしれない。本当はguruフリーランスの人を見つけるのがいいのだと思う。

Quizlet

https://quizlet.com/ja f:id:iDES:20190208185709p:plain こちらも超有名。単語帳的なものであればQuizlet便利。学生の中にも使用している人がいた。著作権的に問題がありそうな気がするが、Quizletを検索するとDuo3.0の例文があったりするので、文例暗記にも便利なのだと思う。

Flashcards Deluxe

こちらはQuizletとセットのようなところがあるが、非常に便利なアプリ。 https://itunes.apple.com/jp/app/flashcards-deluxe/id307840670?mt=8 f:id:iDES:20190208185631p:plain

学生のおすすめ

スタディサプリ

こちらも有名所。最近は予備校に行かなくても大学受験対策の授業を受けることができる。しかも低価格で、というアプリ。自分が受験生の頃にあったらよかったなと思う。 https://studysapuri.jp/ f:id:iDES:20190208185716p:plain

スタディサプリ ENGLISH

https://eigosapuri.jp/ f:id:iDES:20190208185721p:plain

こちらはTOEIC・英会話のスタディサプリ。大学受験だけではなく、大学生、社会人も対象にした英語のアプリ。

完全リスニング りすなん!

完全リスニング りすなん! f:id:iDES:20190208185650p:plain

様々な言語の数字のリスニングを鍛えられるアプリらしい。英語での数の数え方が下手なので、勉強してみたい。

英語の友

https://eigonotomo.com/

f:id:iDES:20190208185628p:plain

旺文社のリスニング対策アプリ。使ったことはないが、これはいいかもしれない。

abceed

https://www.globeejapan.com/

f:id:iDES:20190208185604p:plain

こちらも英語のリスニングアプリ。TOEIC向けのアプリらしい。

Citation Machine

http://www.citationmachine.net/ f:id:iDES:20190208185619p:plain

grammarly、gingerと同じく英語の校正アプリ。使ったことがないので、また使ってみたいと思う。

kahoot

https://kahoot.it/ f:id:iDES:20190208185642p:plain

クイズや投票機能などを備えたツール。教育で使えるし、おそらく企業内でもいろいろ使い道がありそうだ。有料なので、なかなか使いにくいとは思うが、似たようなシステムをつくるよりは安いかもしれない。

ロイロノート

https://n.loilo.tv/ja/ f:id:iDES:20190208185655p:plain

メモ程度のノートに関連性をつけて並べることとそれを共有できるソフトウェア。研究では、KJ法に少し近い気がした。 いろいろと使い道はありそうだ、有料だが、さほど高くないので、導入するのは簡単そうだ。

くずし字学習支援アプリKuLA

くずし字学習支援アプリKuLA f:id:iDES:20190208185647p:plain

くずし字のアプリらしい。大阪大学の文学研究科の飯倉洋一先生の科研で作成されたものらしい。実際に作成の中心になった人は橋本雄太先生という方のようだ。

とても素敵な科研費の使い方だと思う。

紹介:くずし字学習支援アプリ「KuLA」が公開開始。iOS版、Android版あり。

Adobe Scan

https://acrobat.adobe.com/jp/ja/mobile/scanner-app.html f:id:iDES:20190208185607p:plain

授業資料の電子化方法として出てきたアプリ。最近のレンズの良いスマホであれば、これで十分かもしれない。

Microsoft Office Lens|PDF Scan

f:id:iDES:20190208185701p:plain Microsoft Office Lens

個心的にはこちらを使っている。

Cam Scanner

f:id:iDES:20190208185614p:plain

Cam Scanner

他のスキャナ。使ったことはない。

Scan Snap

f:id:iDES:20190208185712p:plain http://scansnap.fujitsu.com/jp/

アプリではないがスキャナはScan Snapが最も良い。少し高いが大学生になったら持っていても損はないと思う。タブレットが2-1PCと合わせると非常に強力。Scan Snapの最新式は持ってないが、ix500を2台使っている。

おまけ

スマホをやめれば魚が育つ

f:id:iDES:20190208185706p:plain スマホをやめれば魚が育つ

こちらは学習アプリではなく、スマホ依存を止めるアプリ。スマホを触らなければ触らないほど、魚が育つというコンセプト。 スマホを使いすぎているという学生からの情報提供。

Rで基礎分析(クロス集計表、相関係数、分散分析)

このエントリーは統計学勉強会用の下書きである。

ここでは、Rでクロス集計表、相関係数、分散分析をする方法を述べる。 どんな難しい分析をするときにも、最初は記述統計、そして、この3つの分析をして、多変量解析に進む。 その意味で、基礎分析と言っても、初学者にとってのもの、という意味ではなく、すべての分析の基礎にあるという意味で捉えた方が適当である。

また、初学者にとっても、この3つの分析は重要である。 統計解析を普段しない人と話すときに、「統計学が苦手」「やろうとは思っているが難しい」といったことがでてくるのだが、びっくりするほど、難しいものではないように思う。難しいものは難しいし、簡単なものは簡単だ、というくらいであって、他のことと大差はない。基礎的な3つの分析であれば、たれでも十分にできるはずである。

おそらく、統計学の授業で最初に手計算をする先生にあたるのが、ほとんどの場合、統計学嫌いになる原因である。 うまく、授業をすれば、嫌いになるほど大変なものではないはずだ。

分析の決め方

変数は尺度水準によっていくつかに分かれる。 細分化された尺度水準を考慮する分析は存在するが、その分析をする頃には尺度水準についても詳しくなっているはずである。 とりあえず、分析をしたいという人であれば、2つの水準に分けるのがよいし、多くの場合2つの水準で十分である。

  1. 連続変数 2つの値の間の無限の数を持つ数値型の変数
    例:身長、体重、車の走行距離、年齢、年収など。

  2. カテゴリカル変数 有限な数のカテゴリーによって構成される変数 例:生物学的性(男女)、人種、職種、大卒など。

2つの変数をみて、連続なのかカテゴリカルなのかを判断し、下の表で分析を選択する。

連続変数 カテゴリカル変数
連続変数 連続変数 分散分析
カテゴリカル変数 分散分析 クロス集計表

今回はAERパッケージのCPS1985というデータを例にして説明したい。

library(AER) #パッケージの呼び出し。CPS1985というデータがこのパッケージに含まれている
head(CPS1985) #CPS1985データの行頭のみ表示
?CPS1985 #データについて説明の表示
data(CPS1985) #データの呼び出し

クロス集計表

データの説明を読むとどのような変数があるかがわかる。クロス集計表はカテゴリカル変数である、gender(性別, 1=Female, 0=Male)とMARR(婚姻状態, 0=Unmarried, 1=Married)の2つの変数の関連について調べてみよう。

スクリプト

ct1<-table(CPS1985$gender,CPS1985$married)
ct1
res1<- chisq.test(ct1)
res1

変数名は「データ名$変数名」とドルマークを挟んで指定する。

結果

    no yes
male   101 188
female  83 162
X-squared = 0.028233, df = 1, p-value = 0.8666

有意差があるか否かは、カイ二乗検定の結果で判断する。 結果はp-valueと表示されている値である。

フィッシャーの正確確率検定

セルのケース数が一桁になる場合は、フィッシャーの正確確率検定を使った方がよい場合がある。Rではカイ二乗検定をしたときにフィッシャーテストをした方がよいというメッセージが出るので、そのメッセージを参考にするとよいだろう。

スクリプト

fisher.test(ct1)

chisq.testの頭の部分をfisherに変えればよい。 ちなみにchiはカイs、qは二乗のsquareの頭2文字である。testは検定のことである。

結果

p-value = 0.8551
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.7213704 1.5258105
sample estimates:
odds ratio
  1.048508

フィッシャーテストの方は95%信頼区間、オッズ比まで出してくれるので便利である。

調整済み標準化残差

調整済み標準化残差を調べたいときにはカイ二乗検定のあとに下記のスクリプトを追加する。

スクリプト

res1$stdres

結果

    no       yes
male    0.259397 -0.259397
female -0.259397  0.259397

調整済み標準化残差は絶対値で、1%水準は2.58、0.1%水準は3.29、0.01%水準は3.89以上になる。 2×2のクロス集計表であれば、カイ二乗検定の結果と調整済み標準化残差の結果はほとんどの場合同一であるが、一つ変数に3カテゴリ以上ある場合には、調整済み標準化残差だけが有意を示す場合がある。このようなケースでは、リコードをどこで行えばよいかがわかるため、クロス集計表の分析をするときには、調整済み標準化残差の値は出しておいた方がよいだろう。

オッズ比

オッズ比の計算はRの標準のスクリプトにはない(ただし、フィッシャーテストをすれば出力できる)。 epitoolsパッケージを使うのが最も簡単であろう。

スクリプト

library(epitools) #epitoolsパッケージの読み込み
oddsratio.wald(ct1)$measure

結果

        odds ratio with 95% C.I.
         estimate     lower   upper
  male   1.000000        NA      NA
  female 1.048577 0.7327264 1.50058

参照:Rでオッズ比と調整済み残差を出す

クロス集計表が見にくいとき

データが数値の場合(CPS1985はカテゴリカル変数は文字列で入っているので問題ない)はexpressパッケージを使うとわかりやすくなるかもしない。

スクリプト

library("expss") #expssパッケージの呼び出し
cro(CPS1985$gender,CPS1985$married)

croの中に入れるのはtableの中に入れるものと同じ。 結果

|                |              | CPS1985$married |     |
|                |              |              no | yes |
| -------------- | ------------ | --------------- | --- |
| CPS1985$gender |         male |             101 | 188 |
|                |       female |              83 | 162 |
|                | #Total cases |             184 | 350 |

この表は見やすくなっている以上に、Markdown形式であることがおそらく重要である。

Markdown形式では次のように表示される。

CPS1985$married
no yes
CPS1985$gender male 101 188
female 83 162
#Total cases 184 350

例えば、Atomエディタに貼り付けて、Markdown preview / Markdown preview Enhancedで表示させて、プレビューされた内容をコピーしてExcelに張り付けるといった作業も可能である。 memiscパッケージを使うのが王道だが、手数が少ない分、このルートも使いどころはあるかもしれない。

相関係数

相関係数は連続変数同士の関連を調べる分析である。 age年齢とwage賃金について検討してみよう。

スクリプト

cor(CPS1985$age,CPS1985$wage)

corは相関のcorrelationの頭3文字である。 オプションを何も指定しないとピアソンの積率相関係数が求められる。 オプションは以下のようにつける。

 cor(CPS1985$age,CPS1985$wage, , method="pearson") # ピアソンの積率相関係数
 cor(CPS1985$age,CPS1985$wage, , method="kendall") # ケンドールの順位相関係数
 cor(CPS1985$age,CPS1985$wage, , method="spearman") # スピアマンの順位相関係数

無相関か否か(関連が統計学的に有意か否か)を求めるには、testと打てばよい。

 cor.test(CPS1985$age,CPS1985$wage)

結果

Pearson's product-moment correlation

data:  CPS1985$age and CPS1985$wage
t = 4.1472, df = 532, p-value = 3.917e-05
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.09352049 0.25794433
sample estimates:
cor
0.1769669

こちらもp-valueをみて有意か否かを判断する。

分散分析

カテゴリカル変数と連続変数の分析をする場合、分散分析を行うことになる。ここでは、エスニシティethnicityと賃金wageの関係について検討する。 エスニシティはカテゴリカル変数であり、賃金は連続変数である。

コマンド

res<- aov(wage ~ ethnicity, data =CPS1985) # 分散分析
summary(res) # 結果表示
with(CPS1985, tapply(wage, ethnicity, mean, na.rm=TRUE)) # 平均値の計算

aovは分散分析の英語であるAnalysis of Varianceの頭文字をとったコマンドである。ANOVAと略すことが多いがRではaovである。

連続変数 ~ カテゴリカル変数, データの順番で記述する。

aovコマンドでは平均値の比較ができない。 そこで、withから始まる計算式を使う。 meanは平均値、na.rm=TRUEは欠損値を含むケースを除外するコマンドである。

結果

             Df Sum Sq Mean Sq F value Pr(>F)  
ethnicity     2    173   86.33   3.297 0.0378 *
Residuals   531  13904   26.18     

cauc hispanic    other
9.277932 7.283333 8.058358

Pr(>F) がp-valueと同じものである。 下2段は平均値の比較であり、白人を意味するcauc(Caucasian)が最も賃金が高いという結果になっている。

追記:psychパッケージを利用する

library(psych)
describe.by(CPS1985$wage, list(CPS1985$ethnicity))

パネル調査は社会学にとって必要か

社会学はどこから来てどこへ行くのか

社会学はどこから来てどこへ行くのか

シノドスで書評するために読んでみた。
非常に面白い。
想定された読者は社会学者だろうが、社会学に興味があって多少知識がある人であれば、おもしろく読めるのではないかと思った。

全体的に勉強になるのだが、個人的には岸さんと筒井さんのパートが最も興味深かった。それは僕が社会調査をしているからだ。加えて、質的調査、量的調査を両方行っているため、質と量の考え方には非常に興味がある。

いくつもある議論の中から、社会学におけるパネル調査について筒井さんが必要性を感じていないところについて少し書いてみたい。筒井さんはパネル調査は一過性のブームだと考えている。

そもそもパネルデータは要らない。必要ないんですよ。社会学者からすると必要はないんだけれども、時代の要請におされるのか、なんかやらなきゃという感じになっている。

とくに計量経済学者には。経済学者にとっては基本的に因果がすべてなので。でも、社会学者は多少の迷いを持ちながらやっている。その迷いながらというのは、これはちょっと上から目線になってしまうんですけれども、計量社会学はまだ自己認識が足りていないと思うんですよね。つまり、自分たちが何をやってきたのかをちゃんと今まで考えてきていなかったので、迷っているだけだろうと思っているんです。開き直ればいいのに。

どう開き直るかというと、自分たちは異質なもの同士を比べるんだ、と。そう開き直ればいいのに、なぜか迷いが出てきて、「いいのかな、いいのかな」みたいなことになってしまう。

社会学では異質性(heterogeneity)に興味を持つことが多い。例えば、階層を規定する要因として大卒と非大卒があるのではないか、であったり、男女差があるかのではないかといったものだ。同一時点に存在する差異について興味を持つのである。

賃金に男女差があれば、それをさらに詳細にデータを取り、賃金格差を生み出している要因を探し出して、制度的に改善できないかと考える。それが社会学の典型的な社会政策の提言の方法である。

こういった考え方をする学問ばかりではない。例えば、薬の効果を確かめる場合のことを考えてみよう。

薬の効果を計測するときには、薬を飲んだ群(A)とプラセボを飲んだ群(B)を比較する。ここで重要なのは、経時的に起こる変化である。しばらく経ってBよりAの症状が改善していれば、その薬は有効だという結論が得られる。

経時的にデータをとって、変化を期待し投入する変数=薬があり、その効果をみる。経済学であれば、子ども手当という政策をしたら、少子化が改善したいった分析がこのモデルにあたる*1

この経時的なモデルの場合、薬を飲む群の中にどのような人が含まれるかということにはあまり興味を持たない。高血圧であれば、高血圧の診断を満たしていれば、OKである。男性か、女性かということはあまり問われないのである。サンプルの異質性ではなく、経時的な変化に興味があるのである。

このように興味を持つところが学問によって異なる。社会学のもともとの興味関心が異質性にあるのだから、経時的な変化には興味を持たなくてもいい場合がほとんどではないか、ということだ。

少し言い回しは違うが、だいたいこのような理由で筒井さんは、社会学におけるパネル調査は必須ではないと考えており、パネル調査のブームはそのうち下火になると予想している。

社会学が興味を持つ異質性についてもう少し考えてみたい。

筒井さんの指摘以外にも社会学にパネル調査があまり寄与しない理由がある。それは、社会学が計測するものは、数年では変化が起きないものが多いという点である。

長期追跡調査でみる日本人の意識変容―高度経済成長世代の仕事・家族・エイジング

27年経って同じ項目を調査したデータを基にかかれた本だが、ここでの成果を大まかに要約すると、長期間経っても人はあまり変わっていなかったということである。この調査で指摘されているのは、意識項目である。

パラサイト・シングルの時代 (ちくま新書)

パラサイト・シングルの時代 (ちくま新書)

流行語を生み出した本であり、しばしば批判の対象にもなるが、この本は社会学の重要な論点を指摘している。それは、実態は変わっても人々の意識はそう簡単に変わらないということだ。高度経済成長期は、結婚をすると生活レベルがあがることが多かった。しかし、高度経済成長期以降、特に、バブル経済以降が顕著なのだろうが、結婚をすると実家にいるときよりも、生活レベルが落ちることが多い(実態)。しかし、結婚感(意識)は依然として、結婚すると、現在の生活レベルかそれ以上の生活レベルの上昇を伴うものと考えられている。その結果、実家にとどまり続ける「パラサイト」が増えたという。

これらの研究から予想できるのは、数年間追跡調査をしても、社会学が興味を持っているものほとんどの項目には変化が起こらないことである。パネル調査とは、計量モデルに「時間」という要素を加えることだが、変化がないのであれば、新しい発見や成果は期待できない。

一方で、経時的なモデルを研究している人たちの方は、この20年くらいのあいだに、異質性に興味を持つようになってきているのではないかと思う。

最初にあげた薬の例であれば、男女で薬の効き方が異なるのではないかという研究がこの20年くらいで書かれている。僕がよく読んでいる精神医学の分野だと、抗うつ薬の聞き方には異質性が関係しているという研究が2010年代初頭から盛んにされ、現在私たちは誰(男女・年齢・並存症の違いよって)どの薬を入れれば効きやすいかという標準的投薬法が確立されている。

例えば、SSRIという最も使用される抗うつ薬は女性に効きやすいことがわかっている。SSRIの有効性を確かめる試験では、女性サンプルの方が多い論文がほとんどだった。女性比率が高くなれば、効果があるという結果を出しやすいからだ。薬の有効性を明らかにする精神医学や薬理学では、もともと、異質性にあまり興味を持ってこなかったため、有意差を出すために、異質性を利用する裏技が使われてきた。

ただ、最近は研究者レベルでは、異質性によって結果が大きく左右されることが知られるようになったため、裏技は使いにくくなっている。それよりも、誰にどの薬が効くのかという異質性の研究へ方向性が変化した。

性別の他にも年齢によって抗うつ薬の効き方に違いがあることがわかっている。女性の場合は閉経以後はSSRIがあまり効かなくなる。高齢者のうつ病には、パロキセチン以外のSSRIは有効ではないことが判明している*2

もう少し野心的な研究では、ゲノム情報を採取して、どのようなゲノムの人にはどのような薬が効くかといった研究も始まっている。

同じような理由で、経済学の人たちの一部には異質性に興味を持ち始めたのではないかと思う。筒井さんは、社会学者がパネル調査をすることに賛成をしてくれると述べているが、それはある意味当然のようにも思える。しかし、それは社会学に、あまり有益な結果をもたらさないようにも思う。

もちろん、時間によって変化があるものもあるはずなので、その場合には、パネル調査は非常に意義があると言えよう。

個人的に参加している研究では、ひきこもりの介入結果の測定だけはパネル調査で設計をしている。介入と結果という変化を期待する研究なので、パネル調査で行う必要がある。逆にいえば、パネル調査でしか結果が得られない調査以外は、クロスセクショナル(一時点)の社会調査でよいのだろうと思う。

*1:本当に改善するかは知らない

*2:ちなみにSSRIではミルナシプランとベンラファキシンは効かず、デュロキセチンのみにエビデンスがあり、高齢者への標準的介入はデュロキセチンとされている