Laboratorium nr 2 z wielowymiarowej analizy danych – Daniel
Transkrypt
Laboratorium nr 2 z wielowymiarowej analizy danych – Daniel
Laboratorium nr 2 z wielowymiarowej analizy danych – Daniel Kosiorowski Rozgrzewka część pierwsza (grafika w R) par(mfrow=c(2,1)) plot(function(x) dnorm(x, log=FALSE), -5, 5,main = "gęstość rozkładu N(0,1)", ylab="gęstość") plot(function(x) pnorm(x, log.p=FALSE), -5, 5, main = "dystrybuanta rozkładu N(0,1)", type="h",ylab="dystrybuanta") Rozgrzewka część druga (grafika w R) par(mfrow=c(1,1)) x<-seq(-5,5,by=0.05) g1<-dnorm(x,0,1) g2<-dt(x,1) plot(x,g1,type="l",lwd=2) lines(x,g2,col="red",type="l",lwd=2) legend("topleft",c("N(0,1)","t(1)"),fill=c("black","red"),cex=2) PRZYKŁAD 12: PODSTAWOWE OPERACJE NA MACIERZACH Z<-matrix(c(1,1,2,2,3,4,5,6),ncol=4) #definiujemy macierz# Z dim(Z) apply(Z,2,mean) apply(Z,1,mean) TZ<-t(Z) dim(TZ) #transpozycja# #wymiar macierzy# Z*Z Z%*%TZ C<- Z%*%TZ #mnożenie po współrzędnych# #mnożenie macierzowe# #tworzymy nową macierz# det(C) #wyznacznik macierzy# apply(TZ,2,sd) solve(C) #odwrotność macierzy C# #piszemy pierwszą funkcję – obiekt środowiska R - “cegiełkę” którą możemy następnie wykorzystywać jako element bardziej zaawansowanych procedur# std <-function(x){ sd<-sqrt(sum((x-mean(x))^2)/(length(x))) sd } apply(TZ,2,std) zadanie 12.1: zdefiniować w programie R macierz H wymiaru 3 na 3 o diagonalnej złożonej z jedynek, napisać funkcję liczącą rozstęp, zastosować komendę apply oraz stworzoną wcześniej własną funkcję do policzenia rozstępów wierszy macierzy H. zadanie 12.2: Z systemu MOODLE ściągnąć plik tekstowy „dane – wynagrodzenia” oraz załadować go do programu R. Stworzyć na jego podstawie macierz danych, następnie z tej macierzy danych usunąć wszystkie kolumny za wyjątkiem kolumn: wynagrodzenie, lata edukacji i doświadczenie 1 Laboratorium nr 2 z wielowymiarowej analizy danych – Daniel Kosiorowski zawodowe. Z trzech pozostawionych kolumn utworzyć nową macierz danych. Policzyć następnie jej wektor średnich i macierz kowariancji. Stworzyć macierzowy diagram rozrzutu dla tej macierzy. Zinterpretować policzone charakterystyki danych. PRZYKŁAD 13: PODSTAWOWE OPERACJE NA MACIERZACH CD C<-matrix(c(1,1,2,2,3,4,5,6,11),ncol=3) #definujemy macierz# C diag(C) sum(diag(C)) W<-eigen(C) W W1<-W$values W2<-W$vectors #wartości własne# #wektory własne# W1 W2 sum(W1) sum(W2[,1]) lambda<-diag(W1) lambda #macierz wartości własnych# zadanie 13.1: Utworzyć w programie R macierz Z wymiaru 4x4, której druga kolumna złożona jest z liczb 1, 2, 3, 4. Następnie powtórzyć powyższy schemat dla tej macierzy. zadanie 13.2: Dla macierzy utworzonej w punkcie 13.1 utworzyć macierz złożoną z jej standaryzowanych wektorów własnych. Uwaga: Wektor własny jeżeli γ złożony rzeczywistych współrzędnych nazywany jest standaryzowanym γT γ = 1 . zadanie 13.3: Odwiedzić internetowy serwis GUS. W oparciu o darmowe dane oferowane przez ten serwis – stworzyć macierz danych wymiaru (liczba powiatów w Polsce)x5. Policzyć macierz kowariancji dla tej macierzy danych oraz sprawdzić czy forma kwadratowa związana z tą macierzą jest dodatnio określona. Czy dane powinny dotyczyć cech ciągłych? Uwaga: Formę kwadratową Q(x) , x = (x1,..., x p ) ∈ » p związana z macierzą symetryczną A(p × p) = ( aij ) definiujemy jako p t Q(x) = x Ax = p ∑ ∑ aij xi x j . i =1 j =1 Macierz A nazywana jest dodatnio określona (dodatnio półokreślona) jeżeli odpowiadająca jej forma spełnia Q(x) > 0 (Q(x) ≥ 0 ) dla wszystkich x ∈ » p . 2 Laboratorium nr 2 z wielowymiarowej analizy danych – Daniel Kosiorowski 3 TWIERDZENIE: Macierz A jest dodatnio określona A > 0 wtedy i tylko wtedy, gdy jej wartości własne λi > 0 , i = 1,..., p . PRZYKŁAD NR 14 #ważne zadanie wielowymiarowego normalnego# dotyczące generowania obserwacji library(MASS) #wgrywamy pakiet MASS# t.m.cov <- matrix(c(1,-0.4,-0.4,1),2,2) #tworzymy teoretyczną macierz kowariancji# w.sr<-c(0,0) #teoretyczny wektor średnich# pr<-mvrnorm(n=1000, w.sr, t.m.cov) #generujemy obserwacje# z rozkładu plot(pr,cex=1.2,pch=19) sample.m.cov<-cov(pr) #empiryczna macierz kowariancji# dek<-eigen(sample.m.cov) #bardzo ważna kwestia – dekompozycja macierzy kowariancji# dek abline(dek$vectors[,1],lwd=2,col="green") abline(dek$vectors[,2],lwd=2,col="red") lambda<-diag(dek$values) #wartości własne# p1<-dek$vectors[,1] #pierwszy wektor własny# p2<-dek$vectors[,2] #drugi wektor własny# P<-cbind(p1,p2) P%*%lambda%*%t(P) # dlaczego wynik różni się od macierzy t.m.cov # lambda_1<-solve(lambda) W<-P%*%(lambda_1)%*%t(P) W round(W%*%sample.m.cov) zadanie 14.1: Proszę powtórzyć schemat dla próby 500 obserwacji z rozkładu 0 1 0.9 , . Korzystając z twierdzenia o dekompozycji spektralnej macierzy symetrycznej N 2 0 0.9 1 policzyć macierz odwrotną do macierzy kowariancji tego rozkładu. Czy potrafimy policzyć pierwiastek kwadratowy takiej macierzy? zadanie 14.2: Z systemu moodle ściągnąć zbiór danych „koszty leczenia”, stworzyć macierz obserwacji, policzyć macierz kowariancji dla zmiennych Beds (liczba łóżek) i Admissions (przyjęcia do szpitala). Policzyć wektory własne i wartości własne tej macierzy. Sporządzić diagram rozrzutu. Wskazać interpretację wektorów własnych i wartości własnych. Laboratorium nr 2 z wielowymiarowej analizy danych – Daniel Kosiorowski PRZYKŁAD NR 15 m.cov <- matrix(c(1,-0.4, 0.7,-0.4,1,0.1,0.7,0.1,1),3,3) #definiujemy macierz kowariancji# w.sr<-c(0,0,0) m.cov det(m.cov) pr<-mvrnorm(n=1000, w.sr, m.cov) emp.cov<-cov(pr) W1<-eigen(m.cov) W2<-eigen(emp.cov) #proszę porównać te dwie macierze W1 i W2# srednie<-apply(pr,1,mean) P1<-W1$vectors SK1<-pr%*%P1 cov(SK1) sd(SK1[,1]) sd(SK1[,2]) sd(SK1[,3]) sd(pr[,1]) sd(pr[,2]) sd(pr[,3]) pairs(pr) pairs(SK1) zadanie 15.1: Powtórzyć schemat dla macierzy danych z punktu 12.2 zadanie 15.2: Wygenerować 1000 obserwacji z rozkłady normalnego 3D ale odznaczającego się większym rozrzutem aniżeli ten wykorzystywany w przykładzie 15. Powtórzyć schemat dla uzyskanych danych. ZADANIE DLA AMBITNYCH STUDENTÓW NR 1 Generujemy próby 100 obserwacji z rozkładu normalnego 3D, dla każdej z prób liczymy macierz kowariancji a następnie jej wektory i wartości własne. Należy oszacować rozkład prawdopodobieństwa dwóch pierwszych wartości własnych macierzy kowariancji (to rozkład dwuwymiarowy – wystarczy, że oszacujemy jego 2D gęstość prawdopodobieństwa). 4