Dzisiaj korzystamy ze slajdów do rozdziału 8.
Na laboratorium dobrze jakbyśmy zrobili ćwiczenia do tego rozdziału w książce. Używamy pakietów randomForest, MASS i gbm. Dane z pakietu ISLR.
@ MIM UW
Dzisiaj korzystamy ze slajdów do rozdziału 8.
Na laboratorium dobrze jakbyśmy zrobili ćwiczenia do tego rozdziału w książce. Używamy pakietów randomForest, MASS i gbm. Dane z pakietu ISLR.
Dziś na wykładzie zajmiemy się oceną błędu modeli statystycznych. Zaczniemy od regresji liniowej, ale skupimy się na metodach klasyfikacji. Wprowadzimy pojęcia zbioru treningowego i testowego, poznamy klasyfikator k-najbliższych sąsiadów i zastanowimy się nad kompromisem pomiędzy obciążeniem a wariancją modeli i różnymi metodami repróbkowania.
Slajdy dostępne są tu: część 1. i część 2.
Na laboratorium będziemy testować uczyć się metod klasyfikacji na danych z pakietu ISLR)
Zaczniemy od załadowania danych giełdowych Smarket (library(ISLR))
Zadanie 1. Użyj metody regresji logistycznej (glm(…,family=binomial)), aby przewidzieć czy rynek pójdzie w górę czy w dół (kolumna Direction zbioru Smarket) na podstawie danych z ostatnich kilku dni (Lag1,..,Lag5,Volume). Zbadaj błąd modelu na podstawie danych ze zbioru treningowego oraz przy podziale zbioru danych na treningowy (pierwsze 1000 observacji) i testowy (ostatnie 250 obserwacji).
Zadanie 2. Dokonaj tej samej analizy metodami lda i qda z pakietu MASS, oraz metody knn z pakietu class. Oblicz błędy klasyfikacji dla lda, qda i knn dla różnych wartości k (1,2,3,4,5).
Zadanie 3. Użyj funkcji knn.cv do zbadania klasyfikatorów knn na podstawie zbioru Smarket. Przeanalizuj stabilność oszacowania błędu na podstawie takich re-próbkowanych zbiorów uczących i testowych. ( k= 3, 5, 10).
23. kwietnia mówiliśmy o regresji logistycznej i analizie dyskryminacyjnej.
Materiał był na podstawie rozdziału 4. książki “An Introduction to statistical Learning” autorstwa Garetha James’a, Danieli Witten, Trevora Hastie’go i Roberta Tibshirani’ego. Książka dostępna jest również jako PDF, na stronie książki są też wykłady wideo i przykłady w R.
Korzystałem ze slajdów Abbass’a Al Sharif’a dostępnych tu: (część 1 i część 2)
Może Państwa zaciekawić:
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. W szczególności badano obecność 100 mutacji. Każda mutacja występuje lub nie u każdego z pacjentów. Zakładamy, że ich występowanie jest wzajemnie niezależne od siebie. Mamy pomiary ilościowe wagi, wzrostu i ciśnienia tętniczego (skurczowego i rozkurczowego). Severity – to dolegliwość badanej choroby: jeśli =0 to pacjent zdrowy, jeśli severity >0, to jest to ilościowa miara dokuczliwości choroby.
Interesuje nas, które z mutacji i które z mierzonych parametrów mogą mieć wpływ na badaną chorobę. W przypadku mutacji wpływ może być jakościowy (posiadanie mutacji zwiększa zapadalność na chorobę) albo ilościowy (jeśli pacjent jest chory i posiada mutację, to dokuczliwość choroby jest inna niż w przypadku braku mutacji). W przypadku parametrów ilościowych podobnie. Np. pacjenci o wyższym wzroście mogą częściej zapadać na chorobę albo mieć inną jej dolegliwość niż pacjenci o niższym wzroście.
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)? Sprawdź które zmienne mogą mieć związek z występowaniem choroby. Spróbuj określić model liniowy dokuczliwości choroby oparty o dane pacjentów nie zawierający zmiennych nie wpływających na wynik.
Każdy wybiera sobie jeden zbiór danych i zapisuje swój wybór w Doodle. Analizujemy dane najlepiej jak umiemy i odsyłamy skrypt w R użyty do analizy i krótki raport z opisem analizy i wyciągniętymi wnioskami. Odpowiedzi wysyłamy na adres e-mail wykładowcy z dopiskiem [SAD-1-2015] w temacie.
Termin: do 30. kwietnia 2015.
Pojawiły się pytania, więc chciałem Państwu przypomnieć, że jutro mamy kolokwium z SAD. Zakres tematyczny obejmuje testy i rozkłady prawdopodobieństwa, które omawialiśmy na zajęciach do tej pory.
Dobrymi przykładami zadań, które mogłyby pojawić się na kolokwium to 4 pierwsze zadania z egzaminu z poprzedniego roku lub 4 pierwsze zadania z egzaminu poprawkowego.
Slajdy są tutaj
Popatrzmy na zbiory danych:
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
Dziś głównie o korelacji i regresji. Slajdy do wykładu są tutaj. Przyda nam się pakiet car (companion to applied regression). Instalujemy go przez install.packages(“car”)
Zadanie 1.
Wygeneruj próbki losowe, zmiennych x i y niezależnych, normalnych. Wyświetl je przy pomocy funkcji plot lub scatterplot (z pakietu car) 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)? (Aby oszacować zachowanie rozkładu trzeba spróbować więcej niż raz dla zadanych parametrów).
Zadanie 2. Spróbuj zrobić to zamo dla zmiennych zależnych (np. x=rnorm(1000), y=x+rnorm(1000,0,0.3). Zobacz jak wyglądają wykresy (scatterplot i plot) dla takich zmiennych. Można popróbować też z funkcją hexbin z pakietu hexbin do rysowania map gęstości
Zadanie 3.
Wygeneruj próbę, gdzie zmienne x i y są istotnie zależ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 4.
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:
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 5.
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
Slajdy do wykładu są tutaj
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. 10 100 10000) wyników strzałów z celownikiem dobrym (srednia 0) i tyle samo z celownikiem przesunietym w górę (średnia 1,2 lub 10) lub przesuniętym w dół (średnia odp. -1 -2 -10). Sprawdź testem t-Studenta (t.test), czy można rozpoznać te dwie sytuacje. Jak zależy to od liczby strzałów?
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 i wariancji=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). Może przydać się funkcja sample, i definiowanie zakresów, np. 1:6
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 wygeneruj próby (np. po 100 dzieci z każdej grupy i określ statystyczną istotność zależnośći wagi od wzrostu testem f z ANOVA (funkcja aov())
Zajmiemy się dziś testowaniem wielu hipotez. Slajdy są tu
Najpierw przypomnimy sobie rozkłady dwumianowy i hipergeometryczny
Zadanie 1.
Spróbuj wygenerować po 10, 100 lub 1000 różnych wyników eksperymentu dla schematów testu Fisher’a (próbowanie herbaty razy 20) 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.
Używając funkcji hist, spróbuj wyrysować histogramy p-wartości dla różnej “rozdzielczości” i oszacuj FDR.
Zadanie 3.
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, hist