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