Pakiet R w analizie układów złożonych

ZADANIA



ZADANIE 0

ZADANIE 1

Stworzyć własną funkcję o nazwie cross.prod(u,v), która zwraca iloczyn wektorowy wektorów \(\mathbf{v}=(v_x,v_y,v_z)\) i \(\mathbf{u}=(u_x,u_y,u_z)\). Skorzystać ze znanego wzoru

\( \mathbf{v} \times \mathbf{u} = \left| \begin{array}{cc}v_y & v_z\\ u_y & u_z\end{array} \right|\mathbf{e_x} - \left| \begin{array}{cc}v_x & v_z\\ u_x & u_z\end{array} \right| \mathbf{e_y} + \left| \begin{array}{cc}v_x & v_y\\ u_x & u_y\end{array} \right| \mathbf{e_z}\).

Do stworzenia funkcji można wykorzystać konstruktory matrix() oraz funkcje c(), t(), det(). Sprawdzić działanie funkcji na znanych przykładach, np. \(\mathbf{v}=(1,0,0)\) i \(\mathbf{u}=(0,1,0)\).

ZADANIE 2

Należy:
  1. wygenerować 100 liczb z rozkładu normalnego N(1, 2.5),
  2. na jednym wykresie porównać gęstość prawdopodobieństwa tak wygenerowanych punktów z gęstością teoretyczną,
  3. zapisać wyniki w pliku "zad2.png".

ZADANIE 3

Należy:
  1. wczytać dane z pliku zad.txt
  2. wykonać histogram i korzystając z niego zaproponować postać dopasowania,
  3. wykonać dopasowanie za pomocą regresji i przedstawić je na wykresie (dane + dopasowanie),
  4. wykonać test KS i ocenić jego wynik.

ZADANIE 4

Należy dokonać wizualizacji tabliczki mnożenia 1..20 na 1..20 za pomocą pakietu ggplot2: Wykonać również histogram wartości mnożenia. Oba rysunki wyeksportować do formatu PNG lub JPG.
Spoiler: kluczową sprawą jest przygotowanie ramki danych, w której będą trzy kolumny - jeden i drugi czynnik oraz iloczyn. Można skorzystać z funkcji rep(), biorąc pod uwagę, że np. rep(1:3, each = 2) daje wektor [1, 1, 2, 2, 3, 3], a rep(1:3, times = 2) to [1, 2, 3, 1, 2, 3].

ZADANIE 5

Uradowany swoimi imieninami, Święty Mikołaj spożył do spólki z Rudolfem zbyt dużo ajerkoniaku, w wyniku czego jego chód stał się losowy (random walk). Zakładając, że krok w prawo to "1" a w lewo to "-1" oraz, że Mikołaj startuje z pozycji x=0 i wykonuje M=500 kroków wykreśl:
  1. pozycję Mikołaja w czasie x(t),
  2. entropię S(t) rozkładu kroków w chwili t (tzn. jest to entropia rozkładu wszystkich kroków od t'=0,..,t).
Porównaj entropię z wartością teoretyczną.

Wykonaj takie same rysunki i rozważania widząc, że Rudolf, rozdrażniony opilstwem Św. Mikołaja, kopnął go z całej siły w prawą nogę i w efekcie Mikołaj stąpa na nią teraz 5 razy rzadziej niż na lewą.

ZADANIE 6

Należy stworzyć sieć współwystępowania słów w tekście The Murders in the Rue Morgue (http://www.if.pw.edu.pl/~julas/CSAR/rue1.txt): połączenie pomiędzy dwoma słowami istnieje wtedy, gdy sąsiadują one ze sobą w tekście.
Wskazówka 1: do wczytania i oczyszczenia pliku wykorzystać początkowe instrukcje z Lab. 8, przykład 8.11
Wskazówka 2: macierz połączeń można dość prosto stworzyć przesuwając o 1 wektor słów, a następnie użyć polecenia table do otrzymania macierzy kontyngencji (tzn. współwystępowania, przykład 3.13). Następnie korzystając z polecenia graph_from_adjacency_matrix() i podając macierz jako argument można stworzyć graf. Wykonać:
  1. rysunek sieci, biorąc pod uwagę węzły, które mają stopień co najmniej k=10,
  2. rysunek przedstawiający rozkład stopni wierzchołków,
  3. rysunek przedstawiający zależność c(k).
Należy również policzyć średnią najkrótszą drogę w sieci.

ZADANIE 7

Należy:
  1. wylosować 80 punktów z dwuwymiarowego rozkładu Gaussa z macierzą kowariancji S=[3 0; 0 3] (60 dla średniej m1=[2,2] i 20 dla średniej m2=[-1,-1])
  2. stworzyć ramkę danych, zwierającą trzy kolumny (x, y oraz klasa),
  3. dodać do ramki nową kolumnę z=x+y i wyrysować punkty na wykresie trójwymiarowym używając funkcji scatterplot3d() z biblioteki scatterplot3d,
  4. wykonać analizę składowych głównych,
  5. stworzyć ramkę danych zawierająca pierwsze dwie współrzędne z PCA (pola $scores[,1] oraz $scores[,2]),
  6. na takich zmiennych dokonać analizy LDA za pomocą funkcji lda()
Do programu należy załączyć rysunki powstałe w wyniku wykonania punktów (iii), (iv) i (vi).