HADのプログラム作成で参考にした文献など

 
 

 

さて、思いのほか使われるようになったHADですが、アルゴリズムなどがどうやって作られているか気になる人もいるかと思います。ソースコードはあまりにごちゃごちゃで恥ずかしいので(笑)公開はしませんが【追記:HAD12.01からオープンソースになりました】、どの文献を読んでコードを作ったかをまとめておきたいと思います。

基本的には、SPSSのヘルプにある、アルゴリズムが書いてあるページを参考にしています。
IBM SPSS statistics インフォメーションセンター

ここの目次から、ヘルプ→Algorithm(最後にあります)を展開すると、各分析プロシージャのアルゴリズムの詳細が書いてあります。ただ、分析法によって違う文献を参考にしているものもあるので、詳細は続きをどうぞ。
マニアックな記事ですが、統計理論の勉強がしたい、分析プログラムを書きたいという人には参考になると思います。

あと、大抵の分析結果はSPSSとSAS両方の結果と一致することを確認しています。ただし、SPSSに入っていない分析の場合は、別のソフトで確認している場合があります。その場合は、それについても言及しています。

参考文献は最後に列挙しています。

いくつかネットに上がっているPDFリンクや、ブログやHPなどのサイトを参照した場合があります。その場合はリンクを張っています。

・記述統計量、度数分布、クロス表、散布図など
平均や分散、標準偏差などは定義式通り計算しています。
文献としては、山内(2009)などがオススメです。

・正規性の検定
コルモゴロフ・スミルノフ検定は、SPSSのアルゴリズムとRのks.test()を参考にしています。また、HADではlillieforsの補正も行っています。
→結果は、確率が0.2以下ならSPSSと一致します。SPSSは0.2以上はすべて0.2と返しますが、それ以上の確率の場合はRと一致します。言い換えれば、結果はRのks.test()関数の結果と完全に一致します。
ジャック・ベラ検定はWikipediaの数式とJarque & Bera(1980)を参考に作成しました。

・差の検定
平均値の差の検定:いわゆるt検定も定義式通りに計算しています。参考にしたのは森・吉田(1990)です。
順位の差の検定:各種ノンパラメトリック検定と多重比較を計算しています。文献は山内(2009)です。
相関係数の差の検定:相関係数をフィッシャー変換して、その差をz検定します。文献は岩淵(1997です。
あとは狩野先生のサイトも参考になります。

・相関係数
積率相関係数:これも定義式通りです。心理統計の教科書に書いてあります。
スピアマンの順位相関:まず得点を順位化して、ピアソンの積率相関の定義式で計算しています。
→両方ともSPSSやSASと一致します。
ポリコリック・ポリシリアル相関係数:Olsson(1979)の論文をもとに作成しています。
推定方法は、準ニュートン法です。論文には尤度関数と、一次と2次の導関数も記述があります。ポリコリック相関係数ぐらいなら2次導関数を使わずとも,準ニュートン法で早く,正確に推定できます。推定値はRのpolycor()関数と一致するのを確認しています。

・信頼性係数
α係数:青木先生のサイトに計算式が書いてあります。共分散の和を使う方法で計算しています。
ω係数:清水(2010)の式をもとに作成しています。
→ほかに算出するソフトウェアがないので比較できませんが、清水(2010)と結果が一致するので大丈夫だと思います。
級内相関係数:SPSSのページを参考に作っています。ただ、HADは1要因固定効果モデルです。
→SPSSと一致するのを確認しています。
ケンドールの一致度係数:このサイトや森・吉田(1997)を参考に作りました。計算方法としてはフリードマン検定のχ2乗値をもとに算出しています。
→SPSSと一致するのを確認しています。
順位級内相関:kW-1 /(k-1)で計算しています。ただし、kは変数の数、Wはケンドールの一致度係数。
Fleissのκ係数:どれを参考にしたのか論文が見つからないのですが、Wikipediaに式があります。これも参考にしました。

・分散分析
基本的な知識は森・吉田(1997)から得ています。
また、Anova君のサイト広大の入戸野先生の論文などを参考にしています。また、多重比較については永田・吉田(1997)も参考にしています。特にShaffer法を実行するための対比較数の上限の表が便利です。
→分析結果は、SASと一致するのを確認しています。SPSSとは一致しないことがありますが、それはSPSSがやや独特なやり方を用いているので、あえて一致しないようにしています。また同じ方法を用いればAnova君とも一致することを確認しています(ただし、Shaffer法は、HADは簡便な方法を用いているので一致しないことがあります)。

・回帰分析
渡部(1998)や青木先生のサイトを参考にしています。
また、階層的重回帰分析については前田先生のサイトや、Cohen et al(2003)、Preacher, Curran, & Bauer(2006)を参考にしています。
→分析結果はSPSSやSASと一致します。

・判別分析
青木先生のサイトにある線形判別分析のところを参考にしています。
→SPSSと出力する指標が違うので、見かけ上は一致しませんが、推定結果は同じになります。検定結果も同じです。

・多変量回帰分析・正準相関分析
君山(2006)を参考にしました。たぶん多変量回帰の日本語の解説本はこの本しかないですね。
→分析結果は、SPSSの一般線形モデルの「多変量」の結果と一致します。

・媒介分析
村山航さんのサイトにあるmediation analysisの解説は大いに役立ちました。あとはPreacherのmediationについてのページも参考にしました。あとはBaron & Kenny(1996)も参考にしました。
→ソベル検定の結果はPreacherのページのものと一致します。ブートストラップ法は乱数を用いるので完全には一致しませんが、だいたい同じ結果を出します。

・順序ロジスティック回帰分析
SPSSの一般化線形モデルのアルゴリズムを参照しました。
→SPSSやSASの一般化線形モデルのものと同じ結果を出します。

・名義ロジスティック回帰分析
SPSSの名義回帰分析のアルゴリズムのページを参照しました。
→SPSSの名義回帰分析と同じ結果を出します。

・ポアソン回帰分析
推定は最尤法で、ニュートン法を使っています。
SPSSの一般化線形モデルのアルゴリズムを参照しました。
また、一般化ポアソン回帰はIsmail & Jemain (2007)(PDFリンク)の発表資料を参照しました。
→SPSSやSASの一般化線形モデルと同じ結果を出します。

・打ち切り回帰分析
推定は最尤法で、ニュートン法を使っています。
Joreskog(2002)(PDFリンク)の論文を参考にしました。ここに尤度関数、1次・2次の導関数が書いてあります。
→Mplusの打ち切り回帰と同じ結果を出します。

・因子分析
基本的な知識は芝(1972)で得ました。
因子の推定は、最尤法と最小二乗法はニュートン法を使って推定しています。
最尤法はSPSSのページを参照しました。あとはJoresdog(1967)も参照しました。
最小二乗法は豊田(2012)を参照しました。ここに尤度関数と1次・2次の導関数が書いてあります。
主因子法は芝(1972)にある反復法を用いています。
主成分法は、相関行列を固有値分解して解を得ています。固有値分解の解法はJacobi法です。
非反復推定法は、狩野先生からいただいたVBコードをもとに作成しました。論文はKano(1990)など。
回転法は、バリマックス法(オーソマックス法)と直交プロクラステス法は芝(1972)にアルゴリズムがあります。
斜交プロクラステス法は、Cramer(1974)に解法が書いてあります。
プロマックス法はバリマックス解をpowerの数値乗したものをターゲットにして、斜交プロクラステスを施しています。
独立クラスタ回転はHarris & Kaiser(1964)に式があります。また、村上・野上(1999)も参考にしました。
また、独立クラスタ回転とオブリミン回転は、堀先生のページにエクセルVBAに移植されたバージョンがおいてあり、それを参考にしました。

→SPSSやSASと同じ結果を出しますが、収束基準によっては微妙に変わります。また、HADは不適解の場合はSPSSと結果が一致しないことがあります。

・クラスタ分析
階層クラスタ分析のアルゴリズムは青木先生のサイトこのサイトを参考にしました。
→SPSSと完全には一致しませんが、ほぼ同じ結果を出します。
K-means法はSPSSのQuick Clusterにアルゴリズムが書いてあります。

・多次元尺度法
古典的な推定法を使っています。距離行列を固有値分解して、収束するまで反復推定しただけのアルゴリズムです。SPSSのものとほぼ一致しますが、アルゴリズムが違うので少し違います。時間があれば、ALSCALを導入したいです。

・対応分析(数量化三類)
青木先生のサイトを参考にしました。また、ここにVBAプログラムがあったのでそれも参考にしました。
→SPSSと同じ結果を出します。ただし、SPSSは重みありの結果を出力しています。

・級内相関係数(マルチレベル分析)
豊田(2000)と狩野・三浦(2002)を参考にしました。

・マルチレベル相関分析
豊田(2000)と狩野・三浦(2002)を参考にしました。
→MplusのMUMLでのマルチレベルの相関係数と一致します。

・ペアワイズ相関分析
Griffn & Gonzalez(1995)とGonzalez & Griffin(1999)を参照しました。
→ほかにプログラムがないので参照できませんが、マルチレベル相関とほぼ同じ結果を出します。

・階層線形モデル
これもHAD10から搭載します。Raudenbush & Bryk(2002)にすべてが書いてあります。
推定法は最尤法で、アルゴリズムはFisherスコアリング法です。
また、SPSSのMixedモデルのアルゴリズムのページも参考にしました。
→HLM7とほぼ同じ結果を出します。結果が完全に一致しないのは推定アルゴリズムが異なっていることが原因です。検定結果などに影響するほどの違いではないです。ただ、HLM7で推定するとき、最尤法を選択しないと一致しません。また、同じ方法を選べば、SPSSのMixedモデルとほぼ同じ結果を出します。ただ、分散成分の検定方法が異なっているので、検定結果は違います。HADはHLM7と同じ方法を使っています。

・構造方程式モデル
HAD11から搭載されました。基本的な知識は豊田(1998)と狩野・三浦(2002)から得ました。SEMについてはこれ以外にもたくさん文献があるので,自分に合ったのを見てみてください。またMplusのサイトのテクニカルアペンディックスも参考にしています。解を求めるアルゴリズムはExcelのソルバーを使っています。ソルバーの非線形方程式を解くエンジンを使っています。方法は,準ニュートン法など複数の方法を組み合わせて使っているようです。
→Mplusと推定値は一致します ただし,SRMRはMplusの定義とは違うものを使っているので一致しません。また,ソルバーを使っているので解の収束についてはその仕様に依存するため,厳密には他のソフトウェアと一致させることはできません。今のところ実用上,問題なく動いています。

・マルチレベル構造方程式モデル
HAD12から搭載されました。これも,狩野・三浦(2002)や豊田(2000)を参考にしました。マルチレベルSEMのなかでも,SEMの多母集団同時分析を使って表現する,Muthen最尤法を使っています。またSEMと同様に,Mplusのサイトのテクニカルアペンディックスも参考にしています。
→MplusのMUMLと推定値はほぼ一致します。ただ,適合度の独立モデルがなぜか合いません。しかし,MplusのMLを使った場合の独立モデルとは一致します。この原因はよくわかっていませんが,適合度がMLと一致するのでよしとしています。これもソルバーを使っているため,厳密な最適解である保証はありません。一応そうなるような工夫はしています。

文献
Baron, R.M., & Kenny, D.A. (1996) The moderator-Mediator variable distinction in social psychological research: Concepual strategic, and statistical considarations. Journal of Personality and Social Psychology, 51, 1173-1182.

Cramer, E.M.(1974) On browne's solution for oblique procrustes rotation. Psychometrika, 39, 159-163.

Gonzalez, R. & Griffin, D. 1999 The correlational analysis of dyad-level data in the distinguishable case. Personal Relationships, 6, 449-469.

Griffin, D., & Gonzalez, R. 1995 Correlational Analysis of Dyad-Level Data in the Exchange Case. Psychological Bulletin, 118, 430-439.

岩淵千明編 (1997) あなたもできるデータの処理と解析 福村出版

Jarque, C.M. & Bera, A.K. (1980) Efficient tests for normality, homoscedasticity, and serial independence of regression residuals. Economics Letters, 6, 255-259.

Joresdog, K.G. (1967) Some contributions to maximum likelihood factor analysis. Psychometorika, 32,443-482.

Kano, Y. (1990) Noniterative estimation and the choice of the number of factors in exploratory factor analysis. Psychometrika, 55, 277-291.

狩野裕・三浦麻子(2002) グラフィカル多変量解析 増補版 現代数学社

君山由良 (2006) 多変量回帰分析・正準相関分析・多変量分散分析 多変量間の相関と因果関係の因子 データ分析研究所

森敏昭・吉田寿夫 (1990) 心理学のためのデータ解析テクニカルハンドブック

村上隆・野上康子 (1999) 心理学的個人差測定尺度構成のための主成分分析の使用について 名古屋大學教育學部紀要. 心理学, 46, 99-109.

永田靖・ 吉田道弘 (1997) 統計的多重比較法の基礎 サイエンティスト社

Olsson, U. (1979) Maximum likelihood estimation of the polychoric correlation coefficient, Psychometorika, 44, 443-460.

Preacher, K.J., Curran, P.J., &, Bauer, D.J. (2006) Computational tools for probing interactions in multiple linear regression, multilevel modeling, and latent curve analysis. Journal of Educational and Behavioral Statistics, 31, 437-448.

Raudenbush & Bryk(2002) Hierarchical Linear Models. Applications and data analysis methods. second edition. Sage Publications.

芝祐順 (1972) 因子分析法 東京大学出版会

清水和秋 (2010) 項目因子分析で構成した尺度の因子パターン、共通性、信頼性そして因子的真実性 関西大学心理学研究, 1, 9-24.

豊田秀樹 (1998) 共分散構造分析入門編 朝倉書店

豊田秀樹 (2000) 共分散構造分析応用編 朝倉書店 10章

豊田秀樹 (2012) 因子分析入門 東京図書

山内光哉 (2009) 心理・教育のための統計法第3版 サイエンス社

 
This entry was posted in HAD. Bookmark the permalink.