Redukcja wymiaru danych

Dziś będziemy przyglądać się metodom redukcji wymiaru.

Dla przykładu weźmy zbiór danych o ekspresji genów u Drożdży.

Zawiera on dane z pomiaru poziomu mRNA w populacji komórek drożdży pod wpływem różnego rodzaju stresu.

0. Wczytaj dane do macierzy w R

1. Dokonaj analizy PCA funkcjami princomp i svd (obserwacje=geny, warunki=zmienne). Zanalizuj ważność składowych i wyrysuj kilka pierwszych na wykresach 2-wymiarowych.

2. przekształć dane do macierzy odległości (dist()) i zastosuj skalowanie wielowymiarowe do 2-wymiarów (cmdscale()). Wybierz jakąś inną metrykę w funkcji dist i porównaj wyniki. Przyjrzyj się też funkcji isoMDS z pakietu MASS, która dotyczy przypadku macierzy odległości nie spełniających nierówności trójkąta.

3. Zastosuj grupowanie metodą k-means, aby uzyskać kilka (3-4) grupy genów zbliżonych do siebie profliem ekspresji..Użyj pakietu ggplot2 (f. qplot()) do narysowania wykresu 2D i pokoloruj punkty wg. przynależności do grup z k-means.

Mieszanki rozkładów

Dziś spróbujemy swoich sił w modelach związanych z mieszankami rozkładów

Na początek zainstalujmy pakiet mixtools:

install.packages(“mixtools”)
library(“mixtools”)

1. Zapoznaj się ze zbiorem faithful

data(faithful)

summary(faithful)

plot(faithful)

2. Używając funkcji normalmixEM, dopasuj modele mieszane do jednowymiarowych zmiennych eruptions i waiting oraz do ich rozkładu łącznego (mvnormalmixEM).

3. Wygeneruj zbiór danych z rozkładu mieszanego 2 wymiarowego o tych samych wariancjach lecz zróżnicowanych wagach (p1=0.9), zrekonstruuj składowe przy pomocy funkcji EM, użyj też metody k-średnich

4. Wygeneruj zbiór danych z rozkładu mieszanego 2 wymiarowego o różnych wariancjach (sigma1=5xsigma2) lecz zrównoważonych wagach (p1=p2), zrekonstruuj składowe przy pomocy funkcji EM, użyj też metody k-średnich

5. Wygeneruj zbiór danych z dwóch składowych o różnych średnich. Zwiększaj wariancję dopóty, dopóki jesteś w stanie zrekonstruować dobrze parametry rozkładu.

 

Klastrowanie

Dziś zajmiemy się klastrowaniem. Mamy do dyspozycji dwa rodzaje metod: hierarchiczne (hclust) i typu k-średnich (kmeans i pam z modułu cluster)

0. Przypomnijmy sobie zbiór danych iris z biblioteki class (z poprzednich zajęć)

1. Spróbuj użyć metody kmeans do poklastrowania zbioru obserwacji iris

2. przyjrzyj się metodzie dist i wyznacz kilka macierzy odleglosci dla obserwacji z iris

3. użyj tych macierzy do otrzymania klasteryzacji typu k-medoids(pam z library(clust))

4. Wyznacz różne klasteryzacje hierarchiczne metodą hclust. Wyświetl dendrogram  metodą plot(). Zidentyfikuj klastry metodą hclust.rect() lub identify().

 

Klasyfikacja metodą kNN

Dziś będziemy analizować dane o kwiatach z różnych odmian Irysów (pochodzące od R. Fishera).

Zadanie 0.

library(class)

summary(iris)

plot(iris)

Zadanie 1. Spróbujmy poklasyfikować nasze przykłady irysów na podstawie dlugości i szerokości płatków tych kwiatów przy użyciu metody kNN (funkcja knn). Jak dobrze jesteśmy w stanie poklasyfikować te przykłady w zależności od k jeśli chodzi o czułość i specyficzność?

Zadanie 2. Spróbuj użyć  metody knn.cv aby oszacować jakość klasyfikacji w walidacji krzyżowej. Jak oszacowanie jakości zmienia się w zależności od liczności podziału zbioru obserwacji?

Zadanie 3. Przypomnij sobie także metodę lda z pakietu MASS i użyj jej do tego samego zbioru przy użyciu walidacji krzyżowej.

 

Analiza dyskryminacyjna

Wybierz sobie jeden z plików z danymi do zadania zaliczeniowego.

Przeczytaj rozdział 4 z “Na przełąj przez data mining” .

Spróbuj użyć lda i qda z pakietu MASS do predykcji jakościowej choroby  na podstawie danych ilościowych (wzrost waga itp.).

Używając pakietu ROCR wykreśl wykresy ROC i Precision/Recall dla swojego klasyfikatora.

 

 

Zadanie Zaliczeniowe

Będziemy rozpatrywać dane hipotetycznych pacjentów pobrane z mojej strony www

Mamy tam wielu pacjentów, i dla każdego pomierzone różne zmienne. Severity – to dolegliwość: jeśli =0 to pacjent zdrowy, jeśli nie, to jest to ilościowa miara dokuczliwości.

1. Znajdź mutacje odpowiadające za powstawanie choroby i wpływające na stopień dolegliwości. Oszacuj statystyczną istotność (p) i współczynnik błędów I rodzaju (FDR).

2. Czy choroba zależy od ilościowych wskaźników (wzrost, waga, cisnienie)? Spróbuj określić model liniowy nie zawierający zmiennych nie wpływających na wynik.

Każdy wybiera sobie jeden zbiór danych, odsyłamy skrypt w R i krótki raport z wnioskami.

Termin: do 4.maja 2014.

 

Zajęcia 5 – regresja do wielu zmiennych

Popatrzmy na zbiory danych:

  • Dzielnice Denver (zmienne to : populacja (X1), % zmiany populacji (X2), % dzieci <18 w populacji (X3), % korzystających z darmowych obiadów (X4), zmiana dochodów (X5), wskaźnik przestępczości (/1000 mieszkańców)(X6), zmiana wsk. przestępczości (X7)). Dane pochodzą z Piton foundation
  • Samochody (dane pochodzą z Kelly Blue Book)

Zadanie 1. Wczytaj te dane do R’a przy pomocy funkcji read.csv. Zwróć uwagę na inne prametry np (sep=”t”)

Zadanie 2. Wyrysuj zależności parami przy pomocy funkcji plot()

Zadanie 3. Znajdź dobry model liniowy opisujący  wsp. przestępczośći (X6) i zmiane przestepczości (X7)

Zadanie 4. Znajdz model liniowy opisujący dobrze cenę samochodu

Zadanie 5. Które zmienne mają największy wplyw na zmienne objasniane

Zadanie 6. Jak zachowuja sie reszty w wyznaczonych modelach liniowych

Zadanie 7. Sprobuj zainstalowac pakiet glmnet i znalezc oszczedne modele opisujace zmiennosc przestepczosci w dzielnicach

Zajęcia 4 – korelacja +regresja

Dziś głównie o korelacji i regresji.

Zadanie 1.

Wygeneruj próbki losowe, zmiennych x i y niezależnych, normalnych. Wyświetl je przy pomocy funkcji scatterplot i policz dla nich współczynnik korelacji Pearsona ( funkcja cor(x,y) ). Jak zmienia się rozkład korelacji w zależności od wariancji rozkładów i rozmiaru próby (np. duże próby o małej wariancji vs małe próby o dużej wariancji)?

Zadanie 2.

Wygeneruj próbę, gdzie zmienne x i y są istotnie zalażne, ale współczynnik korelacji Pearsona jest bliski zera (np. krzyż, obwarzanek lub rogalik). Czy można umiesz w tych trzech przypadkach zaproponować takie przekształcenie f, że korelacja (f(Y),x) jest istotna?

Zadanie 3.

Wygeneruj próby X i Y w następujący sposób: wybierz srednie mx1, mx2, my1, my2 i wylosuj po 50 obserwacji x_1..x_50 ze srednia mx1, x_51..x_100 ze srednia mx2, y_1..y_50 ze srednia my1 i y_51..y_100 ze srednia my2 (wariancja zawsze równa 1). Rozważ 3 przypadki:

  • 1 ==mx1==mx2, my1==my2==100
  • 1 == mx1==my1, mx2== my2 == 100
  • 1 == mx1==mx2 == my1,  my2 == 100

Wyrysuj te rozkłady przy pomocy funkcji scatterplot.  Policz współczynniki korelacji Pearson’a dla tych pzykładów. Przy pomocy funkcji summary(lm(y ~ x)) policz współczynniki korelacji i ich istotność. Czy z istotnej wartości korelacji Pearson’a można wnioskować zależność liniową?

Zadanie 4.

Wylosuj zmienne x i y, przy czym niech y = cdf (x) + N(0,0.1) (dystrybuanta rozkładu normalnego + niewielkie zaburzenie losowe). Policz współczynnik korelacji Pearsona i Spearmana dla y~x

Zajęcia nr 3.


Zacznijmy od generowania losowych liczb z rozkładu normalnego (przydatna funkcja to rnorm). Weźmy przykład biathlonistki, która strzela do tarczy. Niech zmienna losowa x oznacza odchylenie jej strzału od środka tarczy (1-wymiarowe).

Zadanie 1. Wygeneruj zadaną liczbę (np. 100) wyników strzałów z celownikiem dobrym (srednia 0) i tyle samo z celownikiem przesunietym w górę (średnia >0) lub przesuniętym w dół (średnia <0). Sprawdź testem t-Studenta (t.test), czy można rozpoznać te dwie sytuacje.

Zadanie 2. Spróbuj oszacować (np. metodą prób i błędów) ile strzałów trzeba wykonać (przy założeniu różnicy średnich=1) aby móc rozróżnić celownik dobry od popsutego.

Zadanie 3. Dla zadanej liczby n strzałów wygeneruj dużo (>1000) prób po n i policz ich p wartości, wygeneruj rozkład p-wartości (przy pomocy pakietu qvalue) i oszacuj FDR

Zadanie 3. Wróćmy do zagadnienia kostek do gry. Wygeneruj beczkę (np. 10000) kostek do gry nieobciążonych i dołóż do nich garść (np. 100) kostek obciążonych na 6ce. Dla każdej kostki wykonaj N rzutów kostką i zbadaj wynik testem chi^2 (chisq.test). Zobacz jak FDR zależy od obciążenia kostki (np. p(6)=1/2 vs. p(6)=0.9).

Zadanie 4. Wykonaj wykresy qq (qqplot) dla strzałów biatlonistek karabinem dobrym i popsutym. Porównaj je do wykresu q-q pomiędzy rozkładem z jednego karabinu a rozkładem pochodzącym z mieszaniny strzałów z dwóch karabinów).

Zadanie 5. Na podstawie wybranej siatki centylowej określ statystyczną istotność zależnośći wagi od wzrostu testem f z ANOVA (aov())

 

Zajęcia 2 testowanie wielu hipotez

Zajmiemy się dziś testowaniem wielu hipotez.

Zadanie 1.

Spróbuj wygenerować 100 różnych wyników eksperymentu dla schematów testu Fisher’a (próbowanie herbaty) i schematu Bernoulliego (dziesięciokrotny rzut monetą) przy założeniu hipotezy zerowej. Zobacz jak często popełniają błedy I rodzaju testy phyper i pbinom przy zastosowaniu poprawki Bonferroniego lub bez niej.

Zadanie 2.

Zainstaluj pakiet qvalue z bioconductor’a Przeczytaj manual i zastosuj go  (qvalue.gui) do p-wartości uzyskanych w Zad 1.

Przydatne funkcje:

rhyper,runif,rbinom, phyper, pbinom, write, scan, for