Hatena::ブログ(Diary)

極めて個人的なメモ

Θ・)ノシ Bob#3のメモ帳です。
1972 | 12 |
2003 | 03 | 04 | 05 | 06 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 |
2006 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 11 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2011 | 05 | 06 | 09 | 10 |
2012 | 02 | 03 | 05 | 06 | 08 |
2013 | 01 | 02 | 03 |
2015 | 02 |

2013-02-21 第29回R勉強会@東京( #TokyoR )の予習メモ このエントリーを含むブックマーク このエントリーのブックマークコメント

今週末の Tokyo.R #29 ( http://atnd.org/events/36417 ) はいつもにも増して興味深い発表が多いので、より理解できるようにちょっとだけ予習というかメモ書きをしておく。

予習するのは以下の3本。



★RでAHP

AHP( Analytic Hierarchy Process) は一対比較法の一種。

一対比較法は官能評価などで3個以上の対象物を2個の組み合わせの相対評価から、心理的、主観的な評価を数量化(尺度化)する方法

いくつかの手法があるが、よく知られたものとしてサーストン法(プロビットモデル)、シェッフェ法、ブラッドレイ・テリー法(ロジットモデル)などがある。

AHPはこれを階層化したものでオペレーションズ・リサーチ世界で発達してきた。


RでAHPを行うには群馬大の青木先生による関数を使うのが手っ取り早い。

http://aoki2.si.gunma-u.ac.jp/R/AHP.html


他の一対比較法についても青木先生による関数がある。

サーストン法 http://aoki2.si.gunma-u.ac.jp/R/ThurstonePairedComparison.html

シェッフェ法 http://aoki2.si.gunma-u.ac.jp/R/ScheffePairedComparison.html

ブラッドレイ・テリーhttp://aoki2.si.gunma-u.ac.jp/R/ScheffePairedComparison.html



★外れ値

外れ値の検討 (@ さん)

http://d.hatena.ne.jp/isseing333/20110901/1314883790


scratch-Rには mvoutlier パッケージの使用例。

http://eau.uijin.com/stats/anovaAssumptions.html


outliers パッケージのgrubbs.test関数の使用例。

http://sc1.cc.kochi-u.ac.jp/~murakami/cgi-bin/FSW/fswiki.cgi?page=R%A5%E1%A5%E2#p12


@ さんによる DMwR パッケージのlofactor関数の使用例。

http://d.hatena.ne.jp/kingqwert/20130103/p1


RjpWikiにもどなたかが外れ値の探索に便利な関数を載せてくれている。

http://www.okada.jp.org/RWiki/?R%A4%C7%A5%C7%A1%BC%A5%BF%A5%AF%A5%EA%A1%BC%A5%CB%A5%F3%A5%B0#h9b85c91



★Rによる独立成分分析

独立成分分析は次元縮約の方法の一つ。

Rでは fastICA パッケージで実行できる。


独立成分分析そのものについては下記が参考になった。

http://www.slideshare.net/zansa/121218-zansa13-for-web


主成分分析と独立成分分析の違いについては下記のページが参考になる。

http://meg.aalip.jp/ICA/index.html


Rでの実行については @ さんの以下のエントリも参考になる。

http://blog.kzfmix.com/entry/1226406576

2011-10-03 Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj

[]Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj - 極めて個人的なメモ を含むブックマーク Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj - 極めて個人的なメモ のブックマークコメント

Rで共分散構造分析を行うにはこれまでは John Fox さんの{sem}パッケージを使うのが普通でした。

私も以前、{sem}パッケージの使い方についてエントリを書いています。

id:bob3:20091226

id:bob3:20091227

id:bob3:20100530


しかし最近は{OpenMX}や{lavaan}など共分散構造分析のためのパッケージが他にも出てきました。

特に{lavaan}はまだβ版ながら評判が良いようです。

{lavaan}の公式サイトはこちら→ lavaan - latent variable analysis


というわけで、ブルーバックス『原因をさぐる統計学』に載っている事例をいくつが{lavaan}でやってみましょう。


まずは{lavaan}と関連パッケージのインストール

install.packages(c("lavaan", "psych", "qgraph"))

パッケージの呼び出し。

library(lavaan)
library(psych)
library(qgraph)

まずは『原因を探る統計学』のp129、p237に載っている「ヘッド・スタート計画」の事例から。


まず、分析する相関係数行列を入力します。

# ヘッドスタート計画の相関係数行列
HS <- matrix(c(1.000, 0.484, 0.224, 0.268, 0.230, 0.265,
                0.484, 1.000, 0.342, 0.215, 0.215, 0.295,
                0.224, 0.342, 1.000, 0.387, 0.196, 0.234,
                0.268, 0.215, 0.387, 1.000, 0.115, 0.162,
                0.230, 0.215, 0.196, 0.115, 1.000, 0.635,
                0.265, 0.295, 0.234, 0.162, 0.635, 1.000), 6)
colnames(HS) <- rownames(HS) <- paste("x", 1:6, sep="")

それぞれの変数の意味は、

x1:母親学歴

x2:父親の学歴

x3:父親の職業

x4:家庭の収入

x5:MRT(知能検査

x6:ITPA(知能検査


次にモデル記述です。

「多重指標モデル」と「外生潜在変数が2つのモデル」の2パターンでやってみます。


# 多重指標モデル
HS.mdl.1 <- '
  # 測定方程式の記述
  f1 =~ x1 + x2 + x3 + x4
  f2 =~ x5 + x6
  # 構造方程式の記述
  f2 ~ f1 '

# 外生潜在変数が2つのモデル
# 因子間相関は記述しなくてもOK。
HS.mdl.2 <- '
  # 測定方程式
  f1 =~ x1 + x2
  f2 =~ x3 + x4
  f3 =~ x5 + x6
  # 構造方程式
  f3 ~  f1 + f2 '

{lavaan}パッケージではモデル記述に以下のような記号の使い方をしています。

=~ 測定方程式

~ 構造方程式(回帰

~~ 残差の共分散(相関)


それでは分析の実行です。

HS.fit.1 <- sem(HS.mdl.1, sample.cov=HS, sample.nobs=1800)
summary(HS.fit.1, fit.measures=TRUE, standardized=TRUE)

HS.fit.2 <- sem(HS.mdl.2, sample.cov=HS, sample.nobs=1800)
summary(HS.fit.2, fit.measures=TRUE, standardized=TRUE)

出力結果は割愛しますが、CFI、TLI、AICBIC、RMSEAといった指標値に続き、推定された係数が出てきます。(なぜかメジャーなGFI、AGFIは出力されない…)

Std.allというのが標準化係数のようです。

また、sem()を実行したときに「相関係数行列からの分析はまだサポートしてないよ!」という警告メッセージが出ます。

このあたりはβ版ゆえ仕方がないでしょう。

それでもテキストと同じ数値が出てきます。


一応、パス図の描画もしてくれます。

ただ、本当に“一応”という感じで、モデルの確認程度にしか使えないと思います。

diagram(HS.fit.1, "多重指標モデル", errors=TRUE, cut=0, lr=FALSE)

f:id:bob3:20111004005908p:image:w360


qgraph(HS.fit.1, titles=FALSE)

はてなフォトライフメンテ中で画像を載せられませんでした…


diagram(HS.fit.2, "潜在変数が2つのモデル", errors=TRUE, cut=0, lr=FALSE)

はてなフォトライフメンテ中で画像を載せられませんでした…


qgraph(HS.fit.2, titles=FALSE)

はてなフォトライフメンテ中で画像を載せられませんでした…


といった具合で、まだまだ不具合や不満点はあるものの、多母集団同時分析や平均構造モデルにも対応するということで、{lavaan}は今後が楽しみなパッケージです。

時間ができたら他の事例でも試してみます。






あ、そうそう、転職しました。

2005-06-08

blogWatcher blogWatcher - 極めて個人的なメモ を含むブックマーク blogWatcher - 極めて個人的なメモ のブックマークコメント

東京工業大学奥村研究室が開発したblogWatcherが面白い。

公開されているblogのエントリを簡単なテキストマイニングに掛けるシステム blogWatcher です。

これ、意外と使えそう。

機能面ではまだまだ拡張の余地がありそうですが、現状でも消費者ニーズの抽出やざっくりとしたブランド浸透状況の確認には使えるのでは。

今度、プレゼンの資料に混ぜ込んでみよう。

Mozilla Firefox 用の検索窓プラグインも公開されてます。