R 薛毅 例8.1

薛毅 例8.1

马氏距离判别法 二元

在研究砂基化问题中,有七个因子x1~x7,从已液化和未液化的底层中分别抽取了12个和23个样本。I类表示已液化,II类表示未液化。试建立距离判别的判别准则,并按判别准则对原35个样本进行回代,分析误判情况。

setwd("F://study//R//lesn//source//Chapter08")
classX1<-data.frame(   # I类已液化,12个样本,按因子分列。
    x1=c(6.60,  6.60,  6.10,  6.10,  8.40,  7.2,   8.40,  7.50,  
         7.50,  8.30,  7.80,  7.80),
    x2=c(39.00, 39.00, 47.00, 47.00, 32.00,  6.0, 113.00, 52.00,
         52.00,113.00,172.00,172.00),
    x3=c(1.00,  1.00,  1.00,  1.00,  2.00,  1.0,   3.50,  1.00,
         3.50,  0.00,  1.00,  1.50),
    x4=c(6.00,  6.00,  6.00,  6.00,  7.50,  7.0,   6.00,  6.00,
         7.50,  7.50,  3.50,  3.00),
    x5=c(6.00, 12.00,  6.00, 12.00, 19.00, 28.0,  18.00, 12.00,
         6.00, 35.00, 14.00, 15.00),
    x6=c(0.12,  0.12,  0.08,  0.08,  0.35,  0.3,   0.15,  0.16,
         0.16,  0.12,  0.21,  0.21),
    x7=c(20.00, 20.00, 12.00, 12.00, 75.00, 30.0,  75.00, 40.00,
         40.00,180.00, 45.00, 45.00)
)
classX2<-data.frame(   # II类未液化,23个样本,按因子分列。
    x1=c(8.40,  8.40,  8.40,  6.3, 7.00,  7.00,  7.00,  8.30,
         8.30,   7.2,   7.2,  7.2, 5.50,  8.40,  8.40,  7.50,
         7.50,  8.30,  8.30, 8.30, 8.30,  7.80,  7.80),
    x2=c(32.0 ,32.00, 32.00, 11.0, 8.00,  8.00,  8.00, 161.00,
        161.0,   6.0,   6.0,  6.0, 6.00,113.00,113.00,  52.00,
        52.00, 97.00, 97.00,89.00,56.00,172.00,283.00),
    x3=c(1.00,  2.00,  2.50,  4.5, 4.50,  6.00,  1.50,  1.50,
         0.50,   3.5,   1.0,  1.0, 2.50,  3.50,  3.50,  1.00,
         1.00,  0.00,  2.50, 0.00, 1.50,  1.00,  1.00),
    x4=c(5.00,  9.00,  4.00,  7.5, 4.50,  7.50,  6.00,  4.00,
         2.50,   4.0,   3.0,  6.0, 3.00,  4.50,  4.50,  6.00,
         7.50,  6.00,  6.00, 6.00, 6.00,  3.50,  4.50),
    x5=c(4.00, 10.00, 10.00,  3.0, 9.00,  4.00,  1.00,  4.00,
         1.00,  12.0,   3.0,  5.0, 7.00,  6.00,  8.00,  6.00,
         8.00,  5.00,  5.00,10.00,13.00,  6.00,  6.00),
    x6=c(0.35,  0.35,  0.35,  0.2, 0.25,  0.25,  0.25,  0.08,
         0.08,  0.30,   0.3,  0.3, 0.18,  0.15,  0.15,  0.16,
         0.16,  0.15,  0.15, 0.16, 0.25,  0.21,  0.18),
    x7=c(75.00, 75.00, 75.00,  15.0, 30.00, 30.00, 30.00, 70.00,
         70.00,  30.0,  30.0,  30.0, 18.00, 75.00, 75.00, 40.00,
         40.00,180.00,180.00,180.00,180.00, 45.00, 45.00)
)

# 加载马氏距离判别法
source("discriminiant.distance.R")
discriminiant.distance(classX1, classX2, var.equal=TRUE)  # 类I,类II,无测试集,协方差相等 。看结果可知,第9、28、29样本判别失误
##       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
## blong 1 1 1 1 1 1 1 1 2  1  1  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2
##       27 28 29 30 31 32 33 34 35
## blong  2  1  1  2  2  2  2  2  2
discriminiant.distance(classX1, classX2) #类I,类II ,无测试集,协防查默认不相等。 看结果可知,第9样本判别失误
##       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
## blong 1 1 1 1 1 1 1 1 2  1  1  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2
##       27 28 29 30 31 32 33 34 35
## blong  2  2  2  2  2  2  2  2  2

关于协方差的理解,仍有不到位的情况。
为什么协方差阵相同和不同时,结果会不同呢。

posted @ 2013-11-28 10:08  pstn  阅读(480)  评论(0)    收藏  举报