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

SAD 2014/15 Zajęcia 1

Slajdy do wykładu są tu

Dziś spróbujemy oswoić środowisko R. Program na dziś, to proste obliczenia, liczby, wektory, definiowanie ich “ręcznie”.

Można oprzeć się np. na notatkach P. Biecka do wprowadzenia do R (tutaj http://www.biecek.pl/semestr/stats/ )

Naszym zadaniem na dziś jest odpowiedzieć na pytania:

Czy p. Bristol naprawdę potrafiła zgadywać?

Na jakim poziomie istotności musielibyśmy odrzucać hipotezy, żeby móc tę hipotezę zerową odrzucić?

Jak wyglądałaby sytuacja, gdybyśmy rozważali problem “dwustronny”?

Zadanka “biologiczne” z ostatniego slajdu.

Przydatne funkcje R:

help()

phyper()

q()

 

 

Zadanie bonusowe WDI

Mamy dane dwa pliki. mutacje.txt , który zawiera współrzędne punktowych mutacji na chromosomach, np:

chr1 556
chr1 557
chr1 1001
chr2 33
chr2 34

I plik geny.txt, który zawiera pozycje genów na chromosomach w postaci przedziałów:

GenA chr1 276 620
GenB chr1 700 823
GenC chr2 21 300
GenD chr2 765 989

Napisz skrypt mutacje_w_genach.py, który na podstawie podanych plików w zadanym formacie wypisze do pliku wynik.txt w osobnych linijkach kolejne geny wraz z liczbą mutacji a na standardowe wyjście poda liczbę mutacji nie przypisanych do żadnego genu. Dla podanych powyżej przykładowych danych wynik powinien być następujący:

W pliku wynik.txt

GenA 2
GenB 0
GenC 2
GenD 0

A na standardowym wyjściu:

1

Za zadanie można otrzymać maksymalnie 5 punktów. Rozwiązanie należy wysłać na adres bartek@mimuw.edu.pl najpóźniej 15. lutego umieszczając w tytule znacznik “[WDI-BONNUS]”.