• 検索結果がありません。

線形判別関数 lda()

ドキュメント内 ためになった他の人のサイト script of (ページ 189-192)

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

ドキュメント内 ためになった他の人のサイト script of (ページ 189-192)