Sigma1 2),2,2) X1 = mvrnorm(n - e

Transkrypt

Sigma1 2),2,2) X1 = mvrnorm(n - e
Laboratorium nr 10 z wielowymiarowej analizy danych – Daniel Kosiorowski
Sigma1 <- matrix(c(10,3,3,2),2,2)
X1 = mvrnorm(n= 9000, mu= c(0,0),Sigma1)
Sigma2 <- matrix(c(10,0,0,2),2,2)
X2 = mvrnorm(n= 1000, mu= c(-10,6),Sigma2)
BALLOT<-rbind(X1,X2)
train <- sample(1:10000, 1000)
data<-BALLOT[train,]
plot(data)
lab1=rep('A',9000)
lab2=rep('B',1000)
lab=c(lab1,lab2)
grp <- lab[train]
##
## liczymy odporny estimator położenia i odporny estimator macierzy kowariancji
## rysujemy elipsoidy tolerancji
library(rrcov)
mcd <- CovMcd(data)
col <- c(3,4)
gcol <- ifelse(grp == "A", col[1], col[2])
plot(mcd, which="tolEllipsePlot", class=TRUE, col=gcol)
##
## Prowadzimy klasyczną analizę dyskryminacyjną i rysujemy 0.975 elipsoidę
tolerancji oraz prostą separującą klasy
##
require(ellipse)
grp <- lab[train]
lda <- LdaClassic(data, grp)
lda
e1 <- ellipse(lda@cov, centre=lda@center[1,])
e2 <- ellipse(lda@cov, centre=lda@center[2,])
plot(data, col=gcol)
ab <- lda@ldf[1,] - lda@ldf[2,]
cc <- lda@ldfconst[1] - lda@ldfconst[2]
abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=2, lwd=2)
lines(e1, type="l", col=col[1])
lines(e2, type="l", col=col[2])
##
## Prowadzimy klasyczną oraz odporną (MCD) analizę dyskryminacyjną, rysujemy ##
dane, rysujemy prostą separującą klasy
1
Laboratorium nr 10 z wielowymiarowej analizy danych – Daniel Kosiorowski
require(ellipse)
Sigma3 <- matrix(c(100,30,30,20),2,2)
zaburzenie = mvrnorm(n= 1000, mu= c(5,5),Sigma3)
licz=rbinom(1000,2,0.1)
data=data+zaburzenie*licz
plot(data, col=gcol)
lda <- LdaClassic(data, grp)
ab <- lda@ldf[1,] - lda@ldf[2,]
cc <- lda@ldfconst[1] - lda@ldfconst[2]
abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=2, lwd=2)
abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=4, lwd=2)
rlda <- Linda(data, grp, method="mcd")
rlda
ab <- rlda@ldf[1,] - rlda@ldf[2,]
cc <- rlda@ldfconst[1] - rlda@ldfconst[2]
abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=2, lwd=2)
ZADANIE: ANALIZUJEMY NASZ PRZYKŁAD za pomocą podejścia klasycznego i
odpornego.
2