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