統計ブログはじめました!

各専門分野の統計技術、方法、テクニックなどを気ままに分かり易く例題をもとに解説します。

医学と統計(72)

2011-10-06 10:41:40 | 日記・エッセイ・コラム

情報統計研究所へのアクセスはここから.

ベイジアンネットワーク・モデルについて。

前回は、
名義ロジスティック回帰分析によって出産時体重に影響を与える有意な因子を統計解析環境「R」の例題で示しました。
例題は「R」の "libraly(MASS)" の 「出産時体重」 を編集した 「BirthWeight.xls」 を下記のURLから downloard して用いました。

downloard URL:
 http://kstat.sakura.ne.jp/dbase/dbase.html/

ロジスティック・モデルでは予測式から出産時体重を推定するもので、出産時体重に影響する重要な因子をその予測式の係数をもとに知ることが出来ます。医学などでは予測モデル(予測式)よりも、一意的に有意な因子の特定に重点がおかれます。
重回帰型分析ですが回帰モデルの推定に重きを置いている訳ではありません。
また、
SAS や SPSS などの著名な商用統計ソフトの影響もあり、それらの出力形式が医学文献で多用されると、それが標準であるような錯覚? が、いつのまにか正規フォマットになってしまいます。
確かに、
医学などでロジスティック分析は良く用いられる統計手法ですが、ロジスティック分析は従属変数(目的)と独立変数(説明)の関係であり、すべての変数間の関係を知りたいなら、因子分析や主成分分析を行えば良いでしょう。
もし、
各変数間の関係を知りたいなら、変数間の相関関係を見ることになりますが、多変量相関も2変数間の相関であり、他の因子の影響を受けています。
ここでは、
変数間の関係をグラフィカル・モデルとして分かりやすく表現できる「ベイジアンネットワーク・モデル(Bayesian Network Model)」を紹介したいと思います。

前回の例題(BirthWeight.xls)を用い「R」で分析します。
まずは、
 ・ MS Excel で「BirthWeight.xls」を開いて下さい。そして、
 ・ 青色セル(B~I 列)のデータ(190行まで)を選択しコピーして下さい。次に、
 ・ 「R」の次のコマンドを実行すると、データが「R」に取り込まれます。
    dat<- read.delim("clipboard", header=T)

 ・ データを「dat」で確認して下さい、
 ・ 確認出来たら、次のコマンドを実行して下さい。
 ・ library( deal ) が必要ですので、パッケージを予めインストールしておいて下さい。

次の「R」コマンドを実行して下さい(この例題にのみ適用)。
------------------------------------------------------------------
dat$WEIGHT<-factor(dat$low)
dat$RACE<-factor(dat$race)
dat$SMOKE<-factor(dat$smoke)
dat$HyBP<-factor(dat$ht)
dat$UI<-factor(dat$ui)

dat2<- dat[, c(2,3,6,9,10,11,12,13)]
dat2

library(deal)
pre_net<-network(dat2)
pre_dist<-jointprior(pre_net)
dist_renew<-learn(pre_net,dat2,pre_dist)
pre_net2<-getnetwork(dist_renew)

banlist(pre_net2) <- matrix(c("4","5","5","1","5","2","7","1","7","2",
           "7","4","7","5","7","8","8","2","8","4"),
                         ncol=2,nrow=10,byrow=T)

pos_net <- autosearch(pre_net2,dat2,pre_dist)

network <- getnetwork(pos_net)
localprob(network)

rm(list=ls(all=TRUE))
------------------------------------------------------------------
(詳しくは、「データマイニング入門、豊田秀樹、東京図書、2008年」を参考にして下さい)

出力結果は図1のようになりました。

図1 ベイジアンネットワーク・モデルの表現
Networkgraph

図1から、変数間の影響の関係を矢印で視覚的に把握することが出来ます。
ここでは、ベイジアンネットワーク分析のほんの一部をご紹介したに過ぎません。
詳しくは、成書をご参考になさって下さい。