5.6 判別分析 (discriminant analysis)
5.6.1 線形判別関数 lda()
ylabs
第二の点集合のラベルとして使われる文字列ベクトル.既定値はy
の行の次元 名か,もしそれが無ければ数値1:n
が使われるexpand
第二の点を第一の点に対してプロットする際に適用される拡大率.これは,二つの点集合を物理的に比較可能にするために,スケールを調整する目的に使うこ とができる
arrow.len var.axis=TRUE
の時にプロットされる軸上の矢印の「やじり」の長さ.arrow.len=0
とすればやじり部分を描かないxlim,ylim
第一変数セットの単位に関するx,y
軸の長さ限界main,sub,xlab,ylab,...
グラフィックスパラメータバイプロットは,多変量データ行列の観測値と変数の双方を同じプロットに表現す ることをねらったプロットである.バイプロットには多くの変種があり,おそらく最も 広く使われているものは
biplot.printcomp()
に移植されているものであろう.関数biplot.default()
は二つの変数を同じ図に描く基礎となる機能を提供するだけである.biplot()
には作図パラメータも引き渡すことができる.関数の副作用として現在のグラフィックスデバイスにプロットを描く.
#
クラス"formula"
用のS3
メソッドlda(formula, data, ..., subset, na.action)
#
クラス"data.frame"
用のS3
メソッドlda(x, ...)
#
クラス"matrix"
用のS3
メソッドlda(x, grouping, ..., subset, na.action = na.fail)
引数:
formula groups ~ x1+x2+...
の形のモデル式.つまり,目的変数はグルーピング 因子で,右辺は(
因子でない)
判別子を指定するdata formula
中で指定された説明変数が優先的に選ばれるデータフレームx
行列,データフレーム,もしくは説明変数を含む行列.もし如何なるモデル式も 主要引き数として与えられないとき必要grouping
各観測値に対するクラスを指示する因子.もし如何なるモデル式も主要引き数として与えられないとき必要
prior
クラスへの所属可能性に対する事前確率.もし指定されないと,訓練データに対するクラス比率が使われる.もし与えるなら,確率は因子水準の順番で並べる 必要がある
tol
行列が特異かどうかを判断する許容値.分散がtol^2
以下の変数と,単位分散 の変数の線型結合は除外されるsubset
訓練用サンプルとして使われる観測値例を指定する添字ベクトル.(
もし与えられるなら,この引き数は名前付きでなければならない
)
na.action
欠損値NA
があるときの処理法を指定する関数.既定では失敗させる.もう一つの選択肢は
na.omit
で,変数に欠損値が含まれる例があれば,それを除 外する(
もし与えられるなら,この引き数は名前付きでなければならない)
method
平均・分散を標準的な推定するなら"moment"
,最尤推定なら"mle"
,cov.mve()
を使うなら"mve"
,t
分布に基づく頑健推定量を使うなら"t"
CV
もし真なら,「一時に一つ取り除く」クロスバリデーションに対する結果(
クラス と事後確率)
を返す.もし事前分布を推定するなら,全データセット中の比率が 使われるnu method="t"
に対するt
分布の自由度...
他のメソッドへ(
から)
引き渡される追加引き数返り値: もし
CV=TRUE
なら,返り値は成分,class (MAP
判別結果(
因子))
とposterior (
クラスに対する事後確率)
を含むリストである.さもなければ,返り値はクラス
"lda"
のオブジェクトで,以下の成分を含む:prior
使用された事前分布means
グループ平均scaling
観測値を判別関数に変換する行列で,グループ内共分散行列が球系になるように正規化されている
svd
特異値で,線形判別変数に関するグループ間・内標準偏差の比を与える.これら の2
乗は標準的なF
統計量であるN
観測値の数call (
マッチした)
関数呼び出し注意:この関数は,最初の二つの引き数として,形式的そしてオプションのデータフレー ムを与えても,または行列とグルーピング因子を与えても,呼び出すことができる.他の 全ての引き数はオプションであるが,もし
subset
とna.action
引き数が必要なら,引 数名を省略してはならない.もしモデル式を主要引数として与える際は,オブジェクトは 通例のようにupdate()
関数を用いて変更できる.注意:以下の例で使われる
base
パッケージの組込みデータセットiris3
はAnderson
によるアイリス(
西洋アヤメ)
データ*6である.> library(MASS) # MASSパッケージの読み込み
> data(iris3) # アイリスデータ読み込み
> train <- sample(1:150, 75) # 訓練データの添字(ランダムに75例を選ぶ)
> Iris <- data.frame(rbind(iris3[,,1], iris3[,,2],
iris3[,,3]), Sp=rep(c("s","c","v"),
rep(50,3))) # リストをデータフレームに変換
> table(Iris$Sp[train]) # 訓練データを因子(品種)別に表集計
c s v 24 23 28
# 訓練データを用いた,モデル式による線形判別実行
> ( z <- lda(Sp ~ ., Iris, prior = c(1, 1, 1)/3, subset = train))
Call: # 呼び出し式
lda(Sp ~ ., data = Iris, prior = c(1, 1, 1)/3, subset = train)
Prior probabilities of groups: # 事前確率(等確率)
c s v
0.3333333 0.3333333 0.3333333
Group means: # グループ平均
Sepal.L. Sepal.W. Petal.L. Petal.W.
c 6.008696 2.769565 4.356522 1.3565217 s 4.933333 3.414815 1.433333 0.2296296 v 6.520000 2.968000 5.488000 2.0280000
Coefficients of linear discriminants: # 線形判別子の係数
LD1 LD2
Sepal.L. -0.6051669 -0.8211747 Sepal.W. -1.4893318 2.7247793 Petal.L. 2.2944885 -0.8671333 Petal.W. 2.9291641 3.5783644 Proportion of trace:
LD1 LD2
0.9883 0.0117
# 線形判別子を用いた残りの75例の予測(線形判別)
> predict(z, Iris[-train, ])$class
[1] s s s s s s s s s s s s s s s s s s s s s s s s s s s c c c c c c c c v [37] c c c c c c c c v c c c c c c c c v v v v v v v v v v v v v v v v v v v [73] v v v
Levels: c s v
# 因子Petal.W.を除いてやり直し
> (z1 <- update(z, . ~ . - Petal.W.))
Call: # 呼び出し式(同じに見える?)
lda(Sp ~ ., data=Iris, prior=c(1,1,1)/3, subset=train)
Prior probabilities of groups: # グループ毎の事前確率(等確率指定)
c s v
0.3333333 0.3333333 0.3333333
Group means: # グループ別平均
Sepal.L. Sepal.W. Petal.L. Petal.W.
c 5.937500 2.750000 4.179167 1.2791667 s 5.030435 3.452174 1.495652 0.2260870
*6 Fisher により引用されて以来有名となり,しばしば「Fisher のアイリスデータ」として引用される.
base パッケージには,同一であるが形式の異なる二つの組込みデータセットiris(150×5行列)と iris3(50×4×3配列)がある.3種類の西洋アヤメ(Iris setosa, Iris versicolor, Iris virginica)各々 50個の花に付いて,4種類の測定値,萼片の長さと幅,花弁の長さと幅,が与えられている.
v 6.692857 3.021429 5.603571 1.9964286
Coefficients of linear discriminants: # 線形判別子の係数
LD1 LD2
Sepal.L. 0.9055751 0.3902900 Sepal.W. 1.5851015 -2.5279530 Petal.L. -2.1554253 0.1300322 Petal.W. -3.0802797 -1.4416391 Proportion of trace:
LD1 LD2 0.9912 0.0088