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

Zajęcia 1.

Slajdy do wykładu 1

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 – crossout.py (5pkt)

Zadanie polega na napisaniu programu w pythonie, który pomaga w wykreślaniu zadanych słów lub wyrażeń w plikach tekstowych.

Np. wywołanie:

crossout.py -w cholewcia –cross “X” -c 3 –in moj_esej.txt

powinno wczytać zawartość pliku moj_esej.txt, następnie podmienić w niej wszystkie wystąpienia słowa “cholewcia” znakiem “X” powtórzonym trzy razy i wypisać wynik na wyjście standardowe.

Program powinien obsługiwać następujące opcje:

  • -w lub –word, słowo do zastąpienia, powinno posiadać wartość domyślną (Państwa ulubione słowo do wykreślenia)
  • -x lub –cross: znak służący do wykreślania, domyślnie “x”
  • -c lub –count: liczba znaków w wykreśleniu. Jeśli podamy liczbę całkowitą, zawsze wstawiamy tyle znaków (niezależnie od długości słowa), jeśli nie podamy tego parametru, to zamieniamy słowa na tyle “krzyżyków” ile znaków miało słowo
  • -l lub –list, ten parametr zastępuje -w, i określa nazwę pliku, w którym znajduje się lista słów (każde w oddzielnej linijce), które powinniśmy zastępować. Wynik działania dla listy jest taki sam jak dla kolejnego wywołania skryptu crossout.py dla każdego ze słów z osobna.
  • -o lub –out,  nazwa pliku wyjściowego (domyślnie standardowe wyjście)
  • -i lub –in, nazwa pliku wejściowego (domyślnie standardowe wejście)

Warto użyć modułu Argparse, przypominam, że na wykładzie omawialiśmy też przykładowy skrypt z użyciem ArgParse.

Jeśli ktoś chciałby w ten sposób zdobyć dodatkowe punkty, to proszę o wysyłanie rozwiązań a-mailem do mnie ( bartek@mimuw.edu.pl, z załącznikiem w postaci  pliku crossout.py i kluczem [WDI-BONUS] w temacie do najbliższego wtorku, 18.12.2014). Osoby wysyłające rozwiązanie powinny też przyjść w środę 19. lutego o 12.00 do mnie (p. 5770) i opowiedzieć o swoim rozwiązaniu.

Pytania proszę w komentarzach poniżej.