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

Podobne dokumenty