ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Rで判別分析(1)-分散が等しい場合:線形判別分析-

2011-07-27 17:39:08 | そのほか
内容

グループ1(G1)、グループ2(G2)とあって、それぞれのデータがある。
このとき、あるデータAがあったとき、Aは、グループ1に属するか、
グループ2に属するかを見たい。


方法
0.インクルード(MASSを読み込む)

library(MASS)

1.データを作成・読み込む

<<グループ1、グループ2のデータが1項目しかないとき>>

例:ある試験 受験者10人(うち、5人合格)
  グループ1(合格者):100,75,80,90,95
  グループ2(不合格):68,65,50,40,55

Rでの入力:
label<-c(rep(1,5),rep(2,5))
g1<-c(100,75,80,90,95)
g2<-c(68,65,50,40,55)
dat<-c(g1,g2)
dat<-data.frame(dat)


<<グループ1、グループ2のデータが2項目のとき>>

例:国語と英語の試験 受験者10人(うち、5人合格)
  グループ1(合格者)の国語:100,75,80,90,95
  グループ1(合格者)の英語:100,75,80,90,95

  グループ2(不合格)の国語:68,65,50,40,55
  グループ2(不合格)の英語:68,65,50,40,55

Rでの入力:
label<-c(rep(1,5),rep(2,5))
kokugo<-c(100,75,80,90,95,68,65,50,40,55)
eigo<-c(90,80,76,74,78,68,55,30,20,45)
dat<-cbind(kokugo,eigo)
dat<-data.frame(dat)


2.判別分析の実行(以降、1項目でも2項目でも同じ)
result<-lda(label~.,data=dat)

3.判別分析の結果表示
係数を出す
result$scaling

定数項を出す
-mean(result$means %*% result$scaling)

判別得点の表
cbind(label,predict(result)$class,predict(result)$x)

判別結果
table(label,predict(result)$class)

4.新しいデータの判別

<<1項目の場合>>
x<-c(70)
x %*% result$scaling-mean(result$means %*% result$scaling)

<<2項目の場合>>

x<-c(87,70)
x %*% result$scaling-mean(result$means %*% result$scaling)

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ひろゆき「フジテレビと日本... | トップ | eclipseでDBViewを使わずに、... »
最新の画像もっと見る

そのほか」カテゴリの最新記事