Teaching

SAD Wykład 7 – ocena błędu klasyfikacji i metody repróbkowania

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).

 

SAD Wykład 6 – regresja logistyczna i analiza dyskryminacyjna

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)

 

SAD – zadanie zaliczeniowe 1 (10 pkt)

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.

 

Zajęcia nr 5. Regresja do wielu zmiennych i modele liniowe

Slajdy są tutaj

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 nr 4 – korelacja i regresja

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:

  • 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 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

Zajęcia 3 – więcej testów

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())

Zajęcia 2 – Testowanie wielu hipotez

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