\documentclass[]{book}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
\else % if luatex or xelatex
  \ifxetex
    \usepackage{mathspec}
  \else
    \usepackage{fontspec}
  \fi
  \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
\fi
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\usepackage[margin=1in]{geometry}
\usepackage{hyperref}
\hypersetup{unicode=true,
            pdftitle={Eksploracyjna Analiza Danych.},
            pdfauthor={Andrzej Dąbrowski},
            pdfborder={0 0 0},
            breaklinks=true}
\urlstyle{same}  % don't use monospace font for urls
\usepackage{natbib}
\bibliographystyle{apalike}
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\usepackage{framed}
\definecolor{shadecolor}{RGB}{248,248,248}
\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\ImportTok}[1]{#1}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}}
\newcommand{\BuiltInTok}[1]{#1}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\usepackage{longtable,booktabs}
\usepackage{graphicx,grffile}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
\setlength{\emergencystretch}{3em}  % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{5}
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi

%%% Use protect on footnotes to avoid problems with footnotes in titles
\let\rmarkdownfootnote\footnote%
\def\footnote{\protect\rmarkdownfootnote}

%%% Change title format to be more compact
\usepackage{titling}

% Create subtitle command for use in maketitle
\newcommand{\subtitle}[1]{
  \posttitle{
    \begin{center}\large#1\end{center}
    }
}

\setlength{\droptitle}{-2em}
  \title{Eksploracyjna Analiza Danych.}
  \pretitle{\vspace{\droptitle}\centering\huge}
  \posttitle{\par}
\subtitle{Metoda geometryczna}
  \author{Andrzej Dąbrowski}
  \preauthor{\centering\large\emph}
  \postauthor{\par}
  \predate{\centering\large\emph}
  \postdate{\par}
  \date{1 stycznia 2019}

\usepackage{booktabs}
\usepackage{amsthm}
\makeatletter
\def\thm@space@setup{%
  \thm@preskip=8pt plus 2pt minus 4pt
  \thm@postskip=\thm@preskip
}
\makeatother

\usepackage{amsthm}
\newtheorem{theorem}{Twierdzenie}[chapter]
\newtheorem{lemma}{Lemat}[chapter]
\newtheorem{corollary}{Wniosek}[chapter]
\newtheorem{proposition}{Propozycja}[chapter]
\newtheorem{conjecture}{Conjecture}[chapter]
\theoremstyle{definition}
\newtheorem{definition}{Definicja}[chapter]
\theoremstyle{definition}
\newtheorem{example}{Przykład}[chapter]
\theoremstyle{definition}
\newtheorem{exercise}{Exercise}[chapter]
\theoremstyle{remark}
\newtheorem*{remark}{Remark}
\newtheorem*{solution}{Solution}
\let\BeginKnitrBlock\begin \let\EndKnitrBlock\end
\begin{document}
\maketitle

{
\setcounter{tocdepth}{1}
\tableofcontents
}
\chapter{Wstęp}\label{wstep}

\begin{quote}
\emph{Dane są jak ludzie. Wystarczy je trochę pomęczyć a powiedzą całą
prawdę.} {[}Ronald Coase{]}
\end{quote}

\chapter{Macierz danych}\label{macdan}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-2}{}{\label{def:unnamed-chunk-2}
}\textbf{Macierz danych} jest tablicą o wymiarach \(n \times p\) \[
  X = \begin{bmatrix}
        x_{11} & x_{12} & \cdots & x_{1p}\\
        x_{21} & x_{22} & \cdots & x_{2p}\\
        \vdots & \vdots & \ddots & \vdots\\
        x_{n1} & x_{n2} & \cdots & x_{np}
      \end{bmatrix} = 
      \begin{bmatrix}
        X^1 & X^2 & \cdots & X^p
      \end{bmatrix} = 
      \begin{bmatrix}
        X_1^T \\ X_2^T \\ \vdots \\ X_n^T
      \end{bmatrix}
  \]
\EndKnitrBlock{definition} Macierz danych przedstawia zbiór \(n\)
przypadków, każdy z nich opisany jest przez \(p\) zmiennych (cech).
Kolumny \(X^{1},X^{2},\ldots,X^{p}\) są \(n\) - wymiarowymi wektorami
cech. Wiersze \(X_{1},X_{2},\ldots,X_{n}\) są \(p\) - wymiarowymi
wektorami przypadków. Zazwyczaj macierz danych (dla \(p=2\) ) jest
przedstawiana jako 2-wymiarowy wykres \(n\) punktów (\emph{wykres
rozrzutu})

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-3}{}{\label{def:unnamed-chunk-3}
}\textbf{Macierzą klonów} wektora \(A \in \mathbf{R}^p\) jest tablica o
wymiarach \(n\)x\(p\) \[
  A^n = 
    \begin{bmatrix}
      A^T \\ A^T \\ \vdots \\ A^T
    \end{bmatrix}
  \]
\EndKnitrBlock{definition}

Na przykład, jeżeli \(\mathbf{a}\) jest liczbą to \(\mathbf{a}^n\) jest
\(n\) - wymiarowym wektorem \[
\begin{bmatrix}
      a \\ a \\ \vdots \\ a
    \end{bmatrix}
\]

Wektory w macierzy \(X\) są zapisane w standardowym, kartezjańskim
układzie współrzędnych o początku w punkcie \(\mathbf{0}\). Dla
dowolnych wektorów \(A,B\), symbol \(AB\) oznacza wektor o początku w
punkcie \(A\) i końcu w punkcie \(B\).

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-4}{}{\label{def:unnamed-chunk-4}
}\textbf{Środkiem ciężkości} macierzy danych \(X\) jest punkt G,
spełniający równanie \[
  \sum_{i=1}^n GX_i= \mathbf{0}
  \]
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-5}{}{\label{thm:unnamed-chunk-5}
}Każda macierz ma jedyny środek ciężkości. Oznaczymy go \(G=g(X)\). Co
więcej, \[
  g(X)=\frac{1}{n}X^T \mathbf{1}^n
  \]
\EndKnitrBlock{theorem}

Dla macierzy danych \(X\) naturalny jest układ współrzędnych o centrum w
środku ciężkości \(g(X)\). Taka operacja nazywa się
\textbf{centrowaniem} \(X\) i oznacza symbolem \(X^0\). Mamy więc: \[
X^0=X-g(X)^n
\]

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-6}{}{\label{def:unnamed-chunk-6}
}\textbf{Macierz wariancji/kowariancji}.\\
Niech \(X\) i \(Y\) będą macierzami o wymiarach odpowiednio
\(n \times p\) i \(n \times q\).\\
\textbf{Macierzą kowariancji} między \(X\) i \(Y\) jest macierz o
wymiarach \(p\)x\(q\) \[
    V(X,Y)=\frac{1}{n}\left(X^0\right)^TY^0
  \] \textbf{Macierzą wariancji dla \(X\)} nazywamy macierz kwadratową o
wymiarach \(p\)x\(p\): \(V(X)\stackrel{def}{=}V(X,X)\)
\EndKnitrBlock{definition}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-7}{}{\label{def:unnamed-chunk-7}
}\textbf{Standaryzacja macierzy danych}\\
Niech \[
    X^0=\begin{bmatrix}
            Z^1 & Z^2 & \cdots & Z^p
          \end{bmatrix}
  \] Standaryzacją macierzy \(X\) jest tablica: \[
     S(X)=\begin{bmatrix}
            \frac{Z^1}{||Z^1||} &  \frac{Z^2}{||Z^2||} & \cdots &  \frac{Z^p}{||Z^p||}
          \end{bmatrix}  
  \]\\
Symbol \(||A||\) oznacza długość wektora \(A\)
\EndKnitrBlock{definition}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-8}{}{\label{def:unnamed-chunk-8}
}\textbf{Macierzą korelacji} macierzy \(X\) i \(Y\) o wymiarach
odpowiednio \(n \times p\) i \(n \times q\) jest macierz
\(R(X,Y)\stackrel{def}{=}V(S(X),S(Y))\)\\
\(R(X)\stackrel{def}{=}R(X,X)\).
\EndKnitrBlock{definition}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-9}{}{\label{def:unnamed-chunk-9}
}\textbf{Odległość Frobeniusa} macierzy \(X\) i \(Y\) o tych samych
wymiarach \(n \times p\) jest liczba \[
  d^2(X,Y) = \frac{1}{n} \sum_{i=1}^n \sum_{j=1}^p (x_{ij}-y_{ij})^2 =\\
          \frac{1}{n} \sum_{i=1}^n ||X_i - Y_i||^2 =\\
          \frac{1}{n} \sum_{j=1}^p ||X^j - Y^j||^2
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-10}{}{\label{def:unnamed-chunk-10}
}\textbf{Bezwładność} macierzy \(X\) o wymiarach \(n \times p\) jest
liczba \[
  J(X) = d^2(X,g(X)^n)
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:unnamed-chunk-11}{}{\label{prp:unnamed-chunk-11}
}\[
  J(X)=Tr(V(X))
\]
\EndKnitrBlock{proposition}

\chapter{Model liniowy}\label{modlin}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-12}{}{\label{def:unnamed-chunk-12}
}\textbf{Hiperpłaszczyzna \(H\) wymiaru \(d \geq 0\) w przestrzeni
\(\mathbf{R}^p\) o kierunku podprzestrzeni \(U\) i przechodząca przez
punkt \(A \in \mathbf{R}^p\)} \[
  H=H(U,A) \stackrel{def}{=}U+A,\\
  dim(U) = d
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{example}
\protect\hypertarget{exm:unnamed-chunk-13}{}{\label{exm:unnamed-chunk-13}
}Gdy \(U=\{\mathbf{0}\}\) to hiperpłaszczyzna przechodząca przez \(A\)
jest punktem \(A\). Przyjmiemy, ze wymiar takiej hiperpłaszczyzny jest
równy 0.\\
Gdy \(U\) jest jednowymiarową podprzestrzenią \(\mathbf{R}^p\) o
wektorze bazowym \(B\) to hiperpłaszczyzna wymiaru 1 przechodząca przez
\(A\) jest prostą o kierunku wektora \(B\) przechodzącą przez punkt
\(A\)
\EndKnitrBlock{example}

Dla macierzy \(X\) i hiperpłaszczyzny \(H\) Oznaczenie \(X \subset H\)
jest równoważne spełnieniu warunku \[
  X_i \in H \;\; i=1,2,\ldots,n
\]

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-14}{}{\label{def:unnamed-chunk-14}
}\textbf{Model liniowy}\\
Niech \(X\) macierz danych \(n \times p\). Modelem liniowym macierzy
\(X\) o wymiarze \(d\) jest macierz \(Y \subset H\) wymiaru
\(n \times p\), dla pewnej hiperpłaszczyzny \(H\) wymiaru
\(0 \leq d \leq p\).
\EndKnitrBlock{definition}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-15}{}{\label{def:unnamed-chunk-15}
}\textbf{Najlepszy model liniowy wymiaru \(d\)}\\
Niech \(Y\) będzie dowolnym modelem liniowym macierzy \(X\) o wymiarze
\(d\).\\
Model \(Y^*\) jest najlepszym modelem liniowym macierzy \(X\) o wymiarze
\(d\) gdy spełnia warunek \[
  d^2(X,Y^*)\leq d^2(X,Y) \;\; \forall Y
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-16}{}{\label{thm:unnamed-chunk-16}
}\textbf{Twierdzenie Pitagorasa dla punktu}\\
\[
  \forall A \in \mathbf{R}^p\,\,
d^2(X,A^n) = d^2(X,g(X)^n)+d^2(A^n,g(X)^n)=\\
J(X)+||g(X)-A||^2
\]
\EndKnitrBlock{theorem}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-17}{}{\label{cor:unnamed-chunk-17}
}\[
   \forall A \in \mathbf{R}^p \,\,
  d^2(X,g(X)^n)\leq d^2(X,A^n)\\
  J(X) \leq d^2(X,A^n)
\]
\EndKnitrBlock{corollary}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-18}{}{\label{cor:unnamed-chunk-18}
}Najlepszym modelem 0-wymiarowym macierzy \(X\) jest \(g(X)^n\)\\
Najlepszym modelem \(p\)-wymiarowym macierzy \(X\) jest \(X\)
\EndKnitrBlock{corollary}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-19}{}{\label{def:unnamed-chunk-19}
}\textbf{Kwadratowy błąd względny modelu}\\
Niech \(Y\) będzie modelem liniowym macierzy \(X\). Kwadratowy błąd
względny modelu to liczba \[
  RSE(Y)=\frac{d^2(X,Y)}{J(X)}
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-20}{}{\label{thm:unnamed-chunk-20}
}Niech \(Y_1\) i \(Y_2\) będą najlepszymi modelami liniowymi macierzy
\(X\) o wymiarach \(0\leq d_1 \leq d_2 \leq p\). Wtedy \[
  0\leq RSE(Y_2) \leq RSE(Y_1) \leq 1
\]
\EndKnitrBlock{theorem}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-21}{}{\label{def:unnamed-chunk-21}
}\textbf{Rzut prostopadły na hiperpłaszczyznę}\\
Niech \(H=H(U,A)\) będzie hiperpłaszczyzną o kierunku podprzestrzeni
\(U\) o wymiarze \(d>0\) i przechodzącą przez punkt
\(A \in \mathbf{R}^p\). Rzutem punktu \(Q \in \mathbf{R}^p\) na \(H\)
jest punkt \[
  P_H(Q)=P_U(Q-A)+A=P_U(Q)+(A-P_U(A))
\] gdzie \(P_U()\) jest rzutem prostopadłym na podprzestrzeń \(U\)
\EndKnitrBlock{definition}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-22}{}{\label{cor:unnamed-chunk-22}
}\(P_H\) jest operatorem liniowym \(\iff\) \(H\) jest podprzestrzenią
liniową
\EndKnitrBlock{corollary}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-23}{}{\label{cor:unnamed-chunk-23}
}Dla \(n \times p\) macierzy \(W\) \[
  P_H(W)=W \iff W \subset H 
\]
\EndKnitrBlock{corollary}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-24}{}{\label{thm:unnamed-chunk-24}
}\textbf{Twierdzenie Pitagorasa dla hiperpłaszczyzn}\\
Niech H będzie hiperpłaszczyzną wymiaru \(0<d \leq p\), \(X,Y\)
macierzami danych wymiaru \(n \times p\), \(Y \subset H\) \[
  d^2(X,Y) = d^2(X,P_H(X))+d^2(P_H(X),Y)
\]
\EndKnitrBlock{theorem}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-25}{}{\label{cor:unnamed-chunk-25}
}Niech \(Y^*\) będzie najlepszym modelem liniowym wymiaru \(d\) dla
macierzy \(X\), \(Y^* \subset H^*\).\\
Wtedy \[
  Y^*=P_{H^*}(X)
\]
\EndKnitrBlock{corollary}

\begin{quote}
Z ostatniego wniosku wynika, że budowanie najlepszego modelu \(Y^*\)
jest równoważne szukaniu najlepszej hiperpłaszczyzny rzutu \(H^*\)\\
Dlatego wymiennie można używać jako synonimu modelu macierzy danych
\(Y^*\) i hiperpłaszczyzny rzutu \(H^*\)
\end{quote}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-26}{}{\label{cor:unnamed-chunk-26}
}\[
  RSE(X,P_{H^*}(X))=1-\frac{J(P_{H^*}(X))}{J(X)}
\]
\EndKnitrBlock{corollary}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-27}{}{\label{def:unnamed-chunk-27}
}\textbf{Współczynnik determinacji najlepszego modelu liniowego wymiaru
\(d\)} \[
  r^2(P_{H^*}(X)) \stackrel{def}{=}\frac{J(P_{H^*}(X))}{J(X)}
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-28}{}{\label{thm:unnamed-chunk-28}
}\[
  H^*=U^*+g(X)
\] dla pewnej podprzestrzeni \(U^* \subset \mathbf{R}^p\)
\EndKnitrBlock{theorem}

\begin{quote}
Budowanie najlepszego modelu wymiaru \(d\) mozna ograniczyć do szukania
najlepszej \emph{podprzestrzeni} wymiaru \(d\).
\end{quote}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-29}{}{\label{thm:unnamed-chunk-29}
}Najlepszy model \(d\) wymiarowy \(H^*=U^*+g(X)\) dla macierzy danych
\(X\) spełnia jeden z dwóch warunków; \[
  J(P_{U^*+g(X)}(X)) \geq J(P_{U+g(X)}(X)) \\
  Tr(V(P_{U^*}(X^0)))  \geq J(P_U(X^0))
\] dla dowolnej podprzestrzeni \(U\) wymiaru \(d\)
\EndKnitrBlock{theorem}

Dla zadanego układu współrzędnych operator rzutu na podprzestrzeń
\(d\)-wymiarową można utożsamić z macierzą \(C\) wymiaru \(d \times p\),
której wiersze są wektorami bazy (ortonormalnej) przestrzeni rzutu
\(U\): \[
  C=
    \begin{bmatrix}
      C_1^T \\ C_2^T \\ \vdots \\ C_d^T
    \end{bmatrix}
\]

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:maks}{}{\label{thm:maks} }Macierz \(C^*\)
odpowiadająca rzutowi na optymalną podprzestrzeń dla macierzy \(X\) o
macierzy wariancji \(V=V(X)\) spełnia warunek: \[
    C^*=argmax(Tr(CVC^T))
  \] z warunkiem ubocznym \[
  ||C_i||=1,\;i=1,2,\dots,d
\]
\EndKnitrBlock{theorem}

Korzystając z metody mnożników Lagrange'a zadanie maksymalizacji z
poprzedniego twierdzenia może być przedstawione jako zagadnienie
maksymalizacji funkcji, gdzie zmienną jest macierz \(C\) wymiaru
\(d \times p\) \[
  Tr(CVC^T)- Tr(C^T \Lambda C)
\] Macierz \(\Lambda = diag(\lambda_1,\lambda_2,\dots,\lambda_d)\) jest
diagonalna. Wartości \(\lambda_i\) muszą być tak dobrane, aby spełniony
był warunek \(||C_i||=1,\;i=1,2,\dots,d\)

Skorzystamy tu z warunku dostatecznego na istnienie ekstremum funkcji
rzeczywistej z argumentem macierzowym (uogólnienie pojecia gradientu).

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-30}{}{\label{def:unnamed-chunk-30}
}\textbf{Pochodna macierzowa} funkcji rzeczywistej macierzy \(D\)
rozmiaru \(d \times p\) jest macierzą rozmiaru \(d \times p\): \[
    \left [
      \frac{\partial f}{\partial D}(D) 
      \right ]_{ij} = 
    \frac{\partial f(D)}{\partial D_{ij}}
  \]
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-31}{}{\label{thm:unnamed-chunk-31}
}Jeżeli funkcja \(f(D)\) ma ekstremum dla macierzy \(D_0\) to \[
  \left.\frac{\partial f}{\partial D}(D)\right|_{D=D_0}=0
\]
\EndKnitrBlock{theorem}

\BeginKnitrBlock{lemma}
\protect\hypertarget{lem:unnamed-chunk-32}{}{\label{lem:unnamed-chunk-32}
}Dla symetrycznej macierzy \(W\) \[
  \frac{\partial Tr(A^TWA)}{\partial A}=2WA\\
  \frac{\partial Tr(BWB^T)}{\partial B}=2BW\\
\]
\EndKnitrBlock{lemma}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-33}{}{\label{thm:unnamed-chunk-33}
}Macierz \(C\) odpowiadająca rzutowi na optymalną podprzestrzeń dla
macierzy \(X\) o macierzy wariancji \(V=V(X)\) (twierdzenie
\ref{thm:maks}) spełnia równanie \[
  CV=\Lambda C
\]
\EndKnitrBlock{theorem}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-34}{}{\label{cor:unnamed-chunk-34}
}Wiersze macierzy \(C\) (\textbf{składowe główne}) są wektorami własnymi
macierzy \(V\), odpowiadającymi jej \(d\) największym wartościom własnym
\(\lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_d\)
\EndKnitrBlock{corollary}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-35}{}{\label{cor:unnamed-chunk-35}
}Współczynnik determinacji najlepszego modelu \(d\)-wymiarowego wyraża
się wzorem; \[
  r^2=\frac{\sum_{i=1}^d \lambda_i}{\sum_{i=1}^p \lambda_i}
\]
\EndKnitrBlock{corollary}

\section{Reifikacja modelu}\label{reifikacja-modelu}

Składowe główne są zbiorem nowych cech w \(d\)-wymiarowej przestrzeni
najbliższej w sensie odległości Frobeniusa danym z macierzy \(X\).
Interesujące jest uzyskanie praktycznej interpretacji tych nowych cech.
Taki proces nazywa się \textbf{reifikacją} modelu.\\
Zazwyczaj wszystkie analizy prowadzi się dla danych scentrowanych
\(X^0\), to znaczy w układzie współrzędnych, którego początek umieszcza
się w środku ciężkości \(X\).\\
Model danych \(X\) w przestrzeni składowych głównych (ang. \emph{PCA
scores}) jest macierzą \(Y=X^0C^T\).\\
O związku między kolumnami \(X^0\) i \(Y\) świadczy macierz korelacji
\(R(X,Y)\)

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:unnamed-chunk-36}{}{\label{prp:unnamed-chunk-36}
}Niech \(V=V(X)=[v_{ij}]\) będzie macierzą wariancji \(X\),
\(C=[c_{ij}]\) macierzą, której wiersze są składowymi głównymi \[
  r_{ij} \stackrel{def}{=} [R(X,Y)]_{ij}=\sqrt{\frac{\lambda_j}{v_{ii}}}c_{ij}
\]
\EndKnitrBlock{proposition}

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:kolo}{}{\label{prp:kolo} }\[
  \sum_{j=1}^p r_{ij}^2=1
\]
\EndKnitrBlock{proposition} Liczba \(r_{ij}\) jest korelacją między
\(X^i\) a \(Y^j\), czyli cosinusem kąta miedzy nimi. Im ten kąt mniejszy
(a więc korelacja większa) tym bardziej nowa zmienna \(Y^j\) jest
związana z \(X^i\). Propozycja \ref{prp:kolo}, mówi że wektor
\([r_{i1}, r_{i2},\dots ,r_{ip}]\), reprezentujący zmienną \(X^i\) leży
na sferze jednostkowej w układzie współrzędnych korelacyjnych między
\(X^i\) a \(Y^1,Y^2,\dots,Y^p\).\\
Wykres w układzie dwóch pierwszych składowych korelacyjnych nazywa się
\emph{kołem korelacyjnym}. Pokazuje on jak ``stare'' zmienne są związane
z dwiema najważniejszymi składowymi głównymi.

\section{Przykład}\label{przykad}

Dane są związane z wynikami zawodów olimpijskich w Seulu (1988) w
siedmioboju kobiet.\\
System punktowy przelicza wyniki 7 dyscyplin na punkty. Porównamy ten
system punktów z modelem składowych głównych.

\textbf{Słowniczek}\\
hurdles = 100 m płotki\\
shot = pchnięcie kulą\\
javelin = oszczep

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{load}\NormalTok{(}\StringTok{"siedmioboj.Rda"}\NormalTok{)}
\NormalTok{hm <-}\StringTok{ }\KeywordTok{as.matrix}\NormalTok{(siedmioboj[,}\DecValTok{1}\OperatorTok{:}\DecValTok{7}\NormalTok{])}
\NormalTok{knitr}\OperatorTok{::}\KeywordTok{kable}\NormalTok{(}
\NormalTok{  hm[}\DecValTok{1}\OperatorTok{:}\DecValTok{5}\NormalTok{,], }\DataTypeTok{booktabs =} \OtherTok{TRUE}\NormalTok{,}
  \DataTypeTok{caption =} \StringTok{'Wyniki 5 najlepszych zawodniczek.'}
\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{table}

\caption{\label{tab:unnamed-chunk-37}Wyniki 5 najlepszych zawodniczek.}
\centering
\begin{tabular}[t]{lrrrrrrr}
\toprule
  & hurdles & highjump & shot & run200m & longjump & javelin & run800m\\
\midrule
Joyner-Kersee (USA) & 12.69 & 1.86 & 15.80 & 22.56 & 7.27 & 45.66 & 128.51\\
John (GDR) & 12.85 & 1.80 & 16.23 & 23.65 & 6.71 & 42.56 & 126.12\\
Behmer (GDR) & 13.20 & 1.83 & 14.20 & 23.10 & 6.68 & 44.54 & 124.20\\
Sablovskaite (URS) & 13.61 & 1.80 & 15.23 & 23.92 & 6.25 & 42.78 & 132.24\\
Choubenkova (URS) & 13.51 & 1.74 & 14.76 & 23.93 & 6.32 & 47.46 & 127.90\\
\bottomrule
\end{tabular}
\end{table}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{kor <-}\StringTok{ }\KeywordTok{round}\NormalTok{(}\KeywordTok{cor}\NormalTok{(hm), }\DecValTok{2}\NormalTok{)}
\NormalTok{knitr}\OperatorTok{::}\KeywordTok{kable}\NormalTok{(}
\NormalTok{  kor, }\DataTypeTok{booktabs =} \OtherTok{TRUE}\NormalTok{,}
  \DataTypeTok{caption =} \StringTok{'Korelacje między zmiennymi'}
\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{table}

\caption{\label{tab:unnamed-chunk-38}Korelacje między zmiennymi}
\centering
\begin{tabular}[t]{lrrrrrrr}
\toprule
  & hurdles & highjump & shot & run200m & longjump & javelin & run800m\\
\midrule
hurdles & 1.00 & -0.81 & -0.65 & 0.77 & -0.91 & -0.01 & 0.78\\
highjump & -0.81 & 1.00 & 0.44 & -0.49 & 0.78 & 0.00 & -0.59\\
shot & -0.65 & 0.44 & 1.00 & -0.68 & 0.74 & 0.27 & -0.42\\
run200m & 0.77 & -0.49 & -0.68 & 1.00 & -0.82 & -0.33 & 0.62\\
longjump & -0.91 & 0.78 & 0.74 & -0.82 & 1.00 & 0.07 & -0.70\\
\addlinespace
javelin & -0.01 & 0.00 & 0.27 & -0.33 & 0.07 & 1.00 & 0.02\\
run800m & 0.78 & -0.59 & -0.42 & 0.62 & -0.70 & 0.02 & 1.00\\
\bottomrule
\end{tabular}
\end{table}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{siedmioboj_pca <-}\StringTok{ }\KeywordTok{prcomp}\NormalTok{(hm, }\DataTypeTok{scale =} \OtherTok{TRUE}\NormalTok{)}
\NormalTok{knitr}\OperatorTok{::}\KeywordTok{kable}\NormalTok{(}
\NormalTok{  siedmioboj_pca}\OperatorTok{$}\NormalTok{rotation, }\DataTypeTok{booktabs =} \OtherTok{TRUE}\NormalTok{, }\DataTypeTok{digits=}\DecValTok{4}\NormalTok{,}
  \DataTypeTok{caption =} \StringTok{'Składowe główne'}
\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{table}

\caption{\label{tab:PCA}Składowe główne}
\centering
\begin{tabular}[t]{lrrrrrrr}
\toprule
  & PC1 & PC2 & PC3 & PC4 & PC5 & PC6 & PC7\\
\midrule
hurdles & 0.4529 & -0.1579 & -0.0451 & 0.0265 & -0.0949 & -0.7833 & -0.3802\\
highjump & -0.3772 & 0.2481 & 0.3678 & -0.6800 & -0.0188 & -0.0994 & -0.4339\\
shot & -0.3631 & -0.2894 & -0.6762 & -0.1243 & -0.5117 & 0.0509 & -0.2176\\
run200m & 0.4079 & 0.2604 & 0.0836 & -0.3611 & -0.6498 & 0.0250 & 0.4534\\
longjump & -0.4562 & 0.0559 & -0.1393 & -0.1113 & 0.1843 & -0.5902 & 0.6121\\
\addlinespace
javelin & -0.0754 & -0.8417 & 0.4716 & -0.1208 & -0.1351 & 0.0272 & 0.1729\\
run800m & 0.3750 & -0.2245 & -0.3959 & -0.6034 & 0.5043 & 0.1556 & 0.0983\\
\bottomrule
\end{tabular}
\end{table}

\begin{quote}
scale=TRUE oznacza, że używamy danych standaryzowanych
\end{quote}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{lambdy <-}\StringTok{ }\NormalTok{siedmioboj_pca}\OperatorTok{$}\NormalTok{sdev}\OperatorTok{^}\DecValTok{2}
\NormalTok{lmb_tab <-}\StringTok{ }\KeywordTok{data.frame}\NormalTok{(}\DataTypeTok{lambda=}\KeywordTok{round}\NormalTok{(lambdy,}\DecValTok{4}\NormalTok{),}\DataTypeTok{r2=}\KeywordTok{round}\NormalTok{(}\KeywordTok{cumsum}\NormalTok{(lambdy)}\OperatorTok{/}\DecValTok{7}\NormalTok{,}\DecValTok{2}\NormalTok{))}
\NormalTok{lmb_tab <-}\StringTok{ }\KeywordTok{t}\NormalTok{(lmb_tab)}
\KeywordTok{colnames}\NormalTok{(lmb_tab) <-}\StringTok{ }\DecValTok{1}\OperatorTok{:}\DecValTok{7}
\NormalTok{knitr}\OperatorTok{::}\KeywordTok{kable}\NormalTok{(}
\NormalTok{  lmb_tab, }\DataTypeTok{booktabs =} \OtherTok{TRUE}\NormalTok{,}
  \DataTypeTok{caption =} \StringTok{'Lambdy i współczynniki determinacji jako funkcja wymiaru modelu d'}
\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{table}

\caption{\label{tab:lambdy}Lambdy i współczynniki determinacji jako funkcja wymiaru modelu d}
\centering
\begin{tabular}[t]{lrrrrrrr}
\toprule
  & 1 & 2 & 3 & 4 & 5 & 6 & 7\\
\midrule
lambda & 4.4603 & 1.1943 & 0.521 & 0.4572 & 0.2453 & 0.073 & 0.049\\
r2 & 0.6400 & 0.8100 & 0.880 & 0.9500 & 0.9800 & 0.990 & 1.000\\
\bottomrule
\end{tabular}
\end{table}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{punkty_pca <-}\StringTok{ }\OperatorTok{-}\KeywordTok{predict}\NormalTok{(siedmioboj_pca)[,}\DecValTok{1}\NormalTok{]}
\NormalTok{pca_sco <-}\StringTok{ }\KeywordTok{data.frame}\NormalTok{(}\DataTypeTok{score=}\NormalTok{siedmioboj}\OperatorTok{$}\NormalTok{score,}\DataTypeTok{pca=}\NormalTok{punkty_pca)}
\KeywordTok{rownames}\NormalTok{(pca_sco) <-}\StringTok{ }\KeywordTok{rownames}\NormalTok{(siedmioboj)}
\NormalTok{knitr}\OperatorTok{::}\KeywordTok{kable}\NormalTok{(}
  \KeywordTok{t}\NormalTok{(pca_sco[}\DecValTok{1}\OperatorTok{:}\DecValTok{5}\NormalTok{,]), }\DataTypeTok{booktabs =} \OtherTok{TRUE}\NormalTok{,}\DataTypeTok{digits =} \DecValTok{2}\NormalTok{,}
  \DataTypeTok{caption =} \StringTok{'Porównanie punktów siedmioboju i punktów z pca dla 5 zawodniczek'}
\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{table}

\caption{\label{tab:unnamed-chunk-39}Porównanie punktów siedmioboju i punktów z pca dla 5 zawodniczek}
\centering
\begin{tabular}[t]{lrrrrr}
\toprule
  & Joyner-Kersee (USA) & John (GDR) & Behmer (GDR) & Sablovskaite (URS) & Choubenkova (URS)\\
\midrule
score & 7291.00 & 6897.00 & 6858.00 & 6540.00 & 6540.00\\
pca & 4.12 & 2.88 & 2.65 & 1.34 & 1.36\\
\bottomrule
\end{tabular}
\end{table}

\begin{quote}
Znak ``-'' przy predict(siedmioboj\_pca){[},1{]} został wybrany tak, aby
zwrot wektora pca i score był taki sam
\end{quote}

\includegraphics{EDA_bookdown_files/figure-latex/unnamed-chunk-40-1.pdf}

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{require}\NormalTok{(FactoMineR)}
\NormalTok{pca.FM  <-}\StringTok{ }\KeywordTok{PCA}\NormalTok{(hm, }\DataTypeTok{graph =} \OtherTok{FALSE}\NormalTok{)}
\NormalTok{knitr}\OperatorTok{::}\KeywordTok{kable}\NormalTok{(}
\NormalTok{  pca.FM}\OperatorTok{$}\NormalTok{var}\OperatorTok{$}\NormalTok{coord, }\DataTypeTok{booktabs =} \OtherTok{TRUE}\NormalTok{,}\DataTypeTok{digits =} \DecValTok{2}\NormalTok{,}
  \DataTypeTok{caption =} \StringTok{'Korelacje zmiennych oryginalnych ze składowymi głównymi'}
\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{table}

\caption{\label{tab:unnamed-chunk-41}Korelacje zmiennych oryginalnych ze składowymi głównymi}
\centering
\begin{tabular}[t]{lrrrrr}
\toprule
  & Dim.1 & Dim.2 & Dim.3 & Dim.4 & Dim.5\\
\midrule
hurdles & -0.96 & 0.17 & 0.03 & -0.02 & 0.05\\
highjump & 0.80 & -0.27 & -0.27 & 0.46 & 0.01\\
shot & 0.77 & 0.32 & 0.49 & 0.08 & 0.25\\
run200m & -0.86 & -0.28 & -0.06 & 0.24 & 0.32\\
longjump & 0.96 & -0.06 & 0.10 & 0.08 & -0.09\\
\addlinespace
javelin & 0.16 & 0.92 & -0.34 & 0.08 & 0.07\\
run800m & -0.79 & 0.25 & 0.29 & 0.41 & -0.25\\
\bottomrule
\end{tabular}
\end{table}

\includegraphics{EDA_bookdown_files/figure-latex/unnamed-chunk-42-1.pdf}

Składowa główna pc1 jest dodatnio i silnie skorelowana ze sportami
siłowymi i z prędkościami (z czasem biegu ujemnie!). Jedynym
niepasującym sportem jest rzut oszczepem, związanym z drugą składową
główną. Czyli punktacja, silnie związana ze składową 1 \emph{nie
uwzględnia w istocie rzutu oszczepem}.

\chapter{Grupowanie - analiza skupień}\label{cluster}

\section{Podział macierzy danych na
klasy}\label{podzia-macierzy-danych-na-klasy}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-43}{}{\label{def:unnamed-chunk-43}
}\textbf{Podział macierzy danych \(X\) na \(k\) klas} wyznaczony jest
przez podział indeksów wierszy na rozłączne zbiory
\(I_1,I_2,\dots,I_k\). Wyznaczone są w ten sposób podmacierze \[
  X_{[j]}=
  \begin{bmatrix}
        X_{i_1} \\ X_{i_2} \\ \vdots \\ X_{i_{n_j}}
  \end{bmatrix}
\] gdzie \[
  I_j=\left\{ i_1,i_2,\dots,i_{n_j} \right\}
\]
\EndKnitrBlock{definition} Macierz \(X\) można zapisać \footnote{po
  odpowiednim przestawieniu wierszy}: \[
X=
\begin{bmatrix}
        X_{[1]} \\ X_{[2]} \\ \vdots \\ X_{[k]}
  \end{bmatrix}
\]

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-44}{}{\label{def:unnamed-chunk-44}
}\textbf{Centroidem} \(G_j\) \(j\)\_tej klasy podziału \(\mathcal{P}\)
nazywamy środek ciężkości \(X_{[j]}\): \[
    G_j=g\left(X_{[j]}\right)
  \] Macierz \[
  G_{\mathcal{P}} =
  \begin{bmatrix}
        G_1^{n_1} \\ G_1^{n_2} \\ \vdots \\ G_1^{n_k}
  \end{bmatrix}
\]\\
nazywamy \textbf{macierzą centroidów podziału \(\mathcal{P}\)}
\EndKnitrBlock{definition}

\BeginKnitrBlock{lemma}
\protect\hypertarget{lem:unnamed-chunk-45}{}{\label{lem:unnamed-chunk-45}
}Niech \(G_1,G_2,\dots,G_k\) będą centroidami podziału, \(G=g(X)\).\\
1. \(G\) jest wypukłą kombinacją \(G_j\): \[
    G=\sum_{i=1}^k p_jG_j,\,\,
    p_j=\frac{n_j}{n},\,\,\sum_{i=1}^kp_j=1
  \] 2. \(G\) jest środkiem ciężkości \(G_{\mathcal{P}}\).
\EndKnitrBlock{lemma}

Dobry podział charakteryzuje się dwiema cechami:

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  Dane w podmacierzach \(X_{[1]}, X_{[2]}, \dots ,X_{[k]}\) są
  maksymalnie zwarte \footnote{Dane wewnątrz klas są do siebie podobne}
\item
  Centroidy podziału są maksymalnie odległe \footnote{Klasy są do siebie
    niepodobne}
\end{enumerate}

Realizacją postulatu 1. jest aby bezwładności \(J\left(X_{[j]}\right)\)
były małe, zaś postulatu 2. - aby bezwładność
\(J\left(G_{\mathcal{P}}\right)\) była jak największa.\\
Zazwyczaj trudno jest zrealizować jednocześnie tak dwa sprzeczne cele.
Okaże się, że (twierdzenie \ref{thm:podzial}) wystarczy realizować jeden
z tych postulatów

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-46}{}{\label{def:unnamed-chunk-46}
}\textbf{Bezwładność wewnątrzklasowa} podziału \(\mathcal{P}\) jest
liczbą \[
  J_W\left(\mathcal{P}\right)=\sum_{j=1}^k p_j J\left(X_{[j]}\right)
\] \textbf{Bezwładność międzyklasowa} podziału \(\mathcal{P}\) jest
liczbą \(J_M\left(\mathcal{P}\right) = J\left(G_{\mathcal{P}}\right)\)
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:podzial}{}{\label{thm:podzial} }\textbf{Twierdzenie
Pitagorasa dla podziału} Dla każdego podziału \(\mathcal{P}\) \[
    J(X)=J_W\left(\mathcal{P}\right)+J_M\left(\mathcal{P}\right)
  \]
\EndKnitrBlock{theorem}

\BeginKnitrBlock{corollary}
\protect\hypertarget{cor:unnamed-chunk-47}{}{\label{cor:unnamed-chunk-47}
}\(J_W\left(\mathcal{P}\right)\) maleje wtedy i tylko wtedy gdy
\(J_M\left(\mathcal{P}\right)\) rośnie
\EndKnitrBlock{corollary}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-48}{}{\label{def:unnamed-chunk-48}
}\textbf{Porządek między podziałami} \[
  \mathcal{P}\succ\mathcal{Q} \iff J_M\left(\mathcal{P}\right) > J_M\left(\mathcal{Q}\right)\\
    \mathcal{P}\succeq\mathcal{Q} \iff J_M\left(\mathcal{P}\right) \geq J_M\left(\mathcal{Q}\right)
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:unnamed-chunk-49}{}{\label{prp:unnamed-chunk-49}
}\[
   J_M\left(\mathcal{P}\right)=\sum_{j=1}^k p_j||G_j-G||^2\\ 
   J_W\left(\mathcal{P}\right)=\frac{1}{n} \sum_{j=1}^k \sum_{i \in I_j}||X_i-G_j||^2
\]
\EndKnitrBlock{proposition}

\subsection{Przykład}\label{przykad-1}

\subsubsection{\texorpdfstring{Użyteczne funkcje w
\(\mathbf{R}\)}{Użyteczne funkcje w \textbackslash{}mathbf\{R\}}}\label{uzyteczne-funkcje-w-mathbfr}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{SrodekCiezkosci <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(dane)\{}
\NormalTok{  g <-}\StringTok{ }\KeywordTok{apply}\NormalTok{(dane,}\DataTypeTok{MARGIN =} \DecValTok{2}\NormalTok{,mean)}
  \KeywordTok{return}\NormalTok{(}\KeywordTok{list}\NormalTok{(}\DataTypeTok{g =}\NormalTok{ g,}\DataTypeTok{n =} \KeywordTok{nrow}\NormalTok{(dane)))}
\NormalTok{\}}
\end{Highlighting}
\end{Shaded}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{srodki_ciezkosci <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(dane, podzial)\{}
\KeywordTok{require}\NormalTok{(dplyr)}
\NormalTok{ k <-}\StringTok{ }\KeywordTok{length}\NormalTok{(}\KeywordTok{levels}\NormalTok{(podzial))}
\NormalTok{ nc <-}\StringTok{ }\KeywordTok{ncol}\NormalTok{(dane)}
\NormalTok{ gg <-}\StringTok{ }\KeywordTok{numeric}\NormalTok{(k}\OperatorTok{*}\NormalTok{(nc}\OperatorTok{+}\DecValTok{1}\NormalTok{))}
\NormalTok{ gg <-}\StringTok{ }\KeywordTok{array}\NormalTok{(gg,}\DataTypeTok{dim=}\KeywordTok{c}\NormalTok{(k,nc}\OperatorTok{+}\DecValTok{1}\NormalTok{))}
\NormalTok{ gg <-}\StringTok{ }\KeywordTok{as.data.frame}\NormalTok{(gg)}
 \KeywordTok{colnames}\NormalTok{(gg) <-}\StringTok{ }\KeywordTok{c}\NormalTok{(}\KeywordTok{colnames}\NormalTok{(dane),}\StringTok{"n"}\NormalTok{)}
 
 \ControlFlowTok{for}\NormalTok{ (i }\ControlFlowTok{in} \DecValTok{1}\OperatorTok{:}\NormalTok{k) \{}
\NormalTok{   dane }\OperatorTok{%>%}\StringTok{ }
\StringTok{   }\KeywordTok{as.data.frame}\NormalTok{()  }\OperatorTok{%>%}\StringTok{ }
\StringTok{   }\KeywordTok{filter}\NormalTok{(podzial }\OperatorTok{==}\StringTok{ }\NormalTok{i) }\OperatorTok{%>%}
\StringTok{   }\KeywordTok{SrodekCiezkosci}\NormalTok{() ->}\StringTok{ }\NormalTok{gg_rob}
\NormalTok{   gg[i,}\DecValTok{1}\OperatorTok{:}\NormalTok{nc] <-}\StringTok{ }\NormalTok{gg_rob}\OperatorTok{$}\NormalTok{g}
\NormalTok{   gg[i,(nc}\OperatorTok{+}\DecValTok{1}\NormalTok{)] <-}\StringTok{ }\NormalTok{gg_rob}\OperatorTok{$}\NormalTok{n}
\NormalTok{ \}}
 \KeywordTok{return}\NormalTok{(gg)}
\NormalTok{\}}
\end{Highlighting}
\end{Shaded}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{JM <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(dane, podzial)\{}
\NormalTok{  gg <-}\StringTok{ }\KeywordTok{srodki_ciezkosci}\NormalTok{(dane, podzial)}
\NormalTok{  g <-}\StringTok{ }\KeywordTok{SrodekCiezkosci}\NormalTok{(dane)}\OperatorTok{$}\NormalTok{g}
\NormalTok{  jm <-}\StringTok{ }\DecValTok{0}
  \ControlFlowTok{for}\NormalTok{ (j }\ControlFlowTok{in} \DecValTok{1}\OperatorTok{:}\StringTok{ }\NormalTok{(}\KeywordTok{ncol}\NormalTok{(gg)}\OperatorTok{-}\DecValTok{1}\NormalTok{)) }
\NormalTok{      jm <-}\StringTok{ }\NormalTok{jm }\OperatorTok{+}\StringTok{ }\NormalTok{gg}\OperatorTok{$}\NormalTok{n }\OperatorTok{%*%}\NormalTok{(gg[,j]}\OperatorTok{-}\NormalTok{g[j])}\OperatorTok{^}\DecValTok{2}
\NormalTok{  jm <-}\StringTok{ }\KeywordTok{as.numeric}\NormalTok{(jm}\OperatorTok{/}\KeywordTok{nrow}\NormalTok{(dane))}
  \KeywordTok{return}\NormalTok{(jm)}
\NormalTok{\}}
\end{Highlighting}
\end{Shaded}

\subsubsection{Dane}\label{dane}

\begin{verbatim}
##   X1 X2
## 1  1  1
## 2  2  2
## 3  3  3
## 4  3  4
## 5  4  3
## 6  5  2
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{ggplot}\NormalTok{(X,}\KeywordTok{aes}\NormalTok{(X1,X2)) }\OperatorTok{+}\StringTok{ }\KeywordTok{geom_point}\NormalTok{(}\DataTypeTok{size=}\DecValTok{3}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\includegraphics{EDA_bookdown_files/figure-latex/unnamed-chunk-54-1.pdf}

\subsubsection{Porównanie podziałów}\label{porownanie-podziaow}

\begin{verbatim}
##   X1 X2 P1 P2 P3
## 1  1  1  2  1  1
## 2  2  2  2  2  1
## 3  3  3  2  1  2
## 4  3  4  2  2  2
## 5  4  3  1  2  2
## 6  5  2  1  1  2
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{p1_plot <-}\StringTok{ }\KeywordTok{ggplot}\NormalTok{(XP,}\KeywordTok{aes}\NormalTok{(X1,X2)) }\OperatorTok{+}\StringTok{ }\KeywordTok{geom_point}\NormalTok{(}\DataTypeTok{size=}\DecValTok{3}\NormalTok{,}\KeywordTok{aes}\NormalTok{(}\DataTypeTok{color=}\NormalTok{P1))}
\NormalTok{p2_plot <-}\StringTok{ }\KeywordTok{ggplot}\NormalTok{(XP,}\KeywordTok{aes}\NormalTok{(X1,X2)) }\OperatorTok{+}\StringTok{ }\KeywordTok{geom_point}\NormalTok{(}\DataTypeTok{size=}\DecValTok{3}\NormalTok{,}\KeywordTok{aes}\NormalTok{(}\DataTypeTok{color=}\NormalTok{P2))}
\NormalTok{p3_plot <-}\StringTok{ }\KeywordTok{ggplot}\NormalTok{(XP,}\KeywordTok{aes}\NormalTok{(X1,X2)) }\OperatorTok{+}\StringTok{ }\KeywordTok{geom_point}\NormalTok{(}\DataTypeTok{size=}\DecValTok{3}\NormalTok{,}\KeywordTok{aes}\NormalTok{(}\DataTypeTok{color=}\NormalTok{P3))}
\KeywordTok{grid.arrange}\NormalTok{(p1_plot,p2_plot,p3_plot,}\DataTypeTok{nrow=}\DecValTok{2}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{figure}
\centering
\includegraphics{EDA_bookdown_files/figure-latex/unnamed-chunk-56-1.pdf}
\caption{\label{fig:unnamed-chunk-56}Trzy podziały tych samych danych}
\end{figure}

\textbf{Środki ciężkości}

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{data.frame}\NormalTok{(}
  \DataTypeTok{Podzial=}\KeywordTok{c}\NormalTok{(}\StringTok{"P1 K1"}\NormalTok{,}\StringTok{"P1 K2"}\NormalTok{,}\StringTok{"P2 K1"}\NormalTok{,}\StringTok{"P2 K2"}\NormalTok{,}\StringTok{"P3 K1"}\NormalTok{,}\StringTok{"P3 K2"}\NormalTok{),}
  \KeywordTok{rbind}\NormalTok{(}
    \KeywordTok{srodki_ciezkosci}\NormalTok{(X,P1),}
    \KeywordTok{srodki_ciezkosci}\NormalTok{(X,P2),}
    \KeywordTok{srodki_ciezkosci}\NormalTok{(X,P3)}
\NormalTok{  )  }
\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##   Podzial   X1  X2 n
## 1   P1 K1 4.50 2.5 2
## 2   P1 K2 2.25 2.5 4
## 3   P2 K1 3.00 2.0 3
## 4   P2 K2 3.00 3.0 3
## 5   P3 K1 1.50 1.5 2
## 6   P3 K2 3.75 3.0 4
\end{verbatim}

\textbf{Bezwładność międzyklasowa i wewnątrzklasowa}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{jm1 <-}\StringTok{ }\KeywordTok{JM}\NormalTok{(X,P1)}
\NormalTok{jm2 <-}\StringTok{ }\KeywordTok{JM}\NormalTok{(X,P2)}
\NormalTok{jm3 <-}\StringTok{ }\KeywordTok{JM}\NormalTok{(X,P3)}
\NormalTok{(J <-}\StringTok{ }\KeywordTok{sum}\NormalTok{(}\KeywordTok{diag}\NormalTok{(}\KeywordTok{cov}\NormalTok{(X))))}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## [1] 3.1
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{bzwl <-}\StringTok{ }\KeywordTok{rbind}\NormalTok{(}
  \KeywordTok{c}\NormalTok{(jm1,J}\OperatorTok{-}\NormalTok{jm1),}
  \KeywordTok{c}\NormalTok{(jm2,J}\OperatorTok{-}\NormalTok{jm2),}
  \KeywordTok{c}\NormalTok{(jm3,J}\OperatorTok{-}\NormalTok{jm3)}
\NormalTok{)}
\KeywordTok{colnames}\NormalTok{(bzwl) <-}\StringTok{ }\KeywordTok{c}\NormalTok{(}\StringTok{"JM"}\NormalTok{,}\StringTok{"JW"}\NormalTok{)}
\KeywordTok{rownames}\NormalTok{(bzwl) <-}\StringTok{ }\KeywordTok{c}\NormalTok{(}\StringTok{"P1"}\NormalTok{,}\StringTok{"P2"}\NormalTok{,}\StringTok{"P3"}\NormalTok{)}
\NormalTok{bzwl}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##       JM    JW
## P1 1.125 1.975
## P2 0.250 2.850
## P3 1.625 1.475
\end{verbatim}

\begin{quote}
\(P3\succ P1 \succ P2\)
\end{quote}

\section{Podział Woronoja}\label{podzia-woronoja}

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-59}{}{\label{def:unnamed-chunk-59}
}\textbf{Podziałem Woronoja przestrzeni \(\mathbf{R}^p\)} o centrach
\(C_1,C_2,\dots,C_k\) jest rodzina podzbiorów \(\mathbf{R}^p\): \[
    W_j^* = \left\{  P \in \mathbf{R}^p : \; ||P-C_j||=min \{||P-C_r||, \; r=1,2,\dots,k \} \right\}
  \]
\EndKnitrBlock{definition}

\begin{figure}
\includegraphics[width=42.67in]{Tokyo_Voronoj} \caption{Mapa Tokio z podziałem Woronoja. Centrami są stacje kolejowe. Kolor zależy od odległości od stacji Shinjuku - centralnej stacji w Tokio (biały krzyżyk)}\label{fig:unnamed-chunk-60}
\end{figure}

Źródło:
\url{https://chichacha.netlify.com/2018/11/10/voronoi-diagram-with-ggvoronoi-package-with-train-station-data/}

Zbiory \(W_j^*\) nie są rozłączne (mają wspólne granice). Można je
skonstruować tak, aby uzyskały rozłączność: \[
  W_j=W_j^*-\bigcup_{r=1}^{j-1}W_r^*
\]

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-61}{}{\label{def:unnamed-chunk-61}
}\textbf{Podziałem Woronoja macierzy danych \(X\)} o centrach
\(C_1,C_2,\dots,C_k\) jest rodzina macierzy \(X_{[j]}\) taka, że \[
  I_j = \left\{i: X_i \in W_j \right\}
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:woronoj}{}{\label{thm:woronoj} }Niech
\(\mathcal{P}\) będzie podziałem macierzy \(X\) na \(k\) klas
\(X_{[1]},X_{[2]},\dots,X_{[k]}\), \(g(X_{[j]})=G_j \, (j=1,2,\dots,k)\)
- centroidami podziału \(\mathcal{P}\). Niech \(\mathcal{Q}\) będzie
podziałem Woronoja o centrach \(G_1,G_2,\dots,G_k\). Wtedy
\(\mathcal{Q} \succeq \mathcal{P}\).
\EndKnitrBlock{theorem}

\subsection{Przykład (cd)}\label{przykad-cd}

Korzystając z twierdzenia \ref{thm:woronoj} znajdziemy dla każdego z
podziałów \(P1,P2,P3\) maksymalnie najlepszy podział

\subsubsection{\texorpdfstring{Użyteczne funkcje w
\(\mathbf{R}\)}{Użyteczne funkcje w \textbackslash{}mathbf\{R\}}}\label{uzyteczne-funkcje-w-mathbfr-1}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{deuc <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(x,y)\{ }\CommentTok{# odleglosc euklidesowa}
  \KeywordTok{sum}\NormalTok{((x}\OperatorTok{-}\NormalTok{y)}\OperatorTok{^}\DecValTok{2}\NormalTok{)}
\NormalTok{\}}

\NormalTok{odSc <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(x,sc)\{ }\CommentTok{#odleglosc x od centroidów sc}
  \KeywordTok{apply}\NormalTok{(sc,}\DecValTok{1}\NormalTok{,}\ControlFlowTok{function}\NormalTok{(y) }\KeywordTok{deuc}\NormalTok{(x,y))}
\NormalTok{\}}

\NormalTok{prox <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(x,sc)\{ }\CommentTok{# podaje numer centroidu najblizszego punktowi x}
  \KeywordTok{which.min}\NormalTok{(}\KeywordTok{odSc}\NormalTok{(x,sc))}
\NormalTok{\}}

\NormalTok{proxV <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(dane,sc)\{}\CommentTok{# podaje numery centroidow najblizszych punktom danych dane}
  \KeywordTok{as.factor}\NormalTok{(}\KeywordTok{apply}\NormalTok{(dane,}\DecValTok{1}\NormalTok{,}\ControlFlowTok{function}\NormalTok{(x) }\KeywordTok{prox}\NormalTok{(x,sc)))}
\NormalTok{\}}
\end{Highlighting}
\end{Shaded}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{proxVpod <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(dane,podzial)\{}\CommentTok{# podaje numery klas najblizszych punktom danych dane}
\NormalTok{  nc <-}\StringTok{ }\KeywordTok{ncol}\NormalTok{(dane)}
\NormalTok{  sc <-}\StringTok{ }\KeywordTok{srodki_ciezkosci}\NormalTok{(dane,podzial)[,}\DecValTok{1}\OperatorTok{:}\NormalTok{nc]}
  \KeywordTok{proxV}\NormalTok{(dane,sc)}
\NormalTok{\}}

\NormalTok{proxWyn <-}\StringTok{ }\ControlFlowTok{function}\NormalTok{(dane,podzial)\{}\CommentTok{# sprawdza czy nowy podzial lepszy od starego}
\NormalTok{  w <-}\StringTok{ }\KeywordTok{proxVpod}\NormalTok{(dane,podzial)}
\NormalTok{  rowne <-}\StringTok{ }\KeywordTok{all.equal.factor}\NormalTok{(podzial,w)}
  \KeywordTok{return}\NormalTok{(}\KeywordTok{list}\NormalTok{(}\DataTypeTok{stare=}\NormalTok{podzial,}\DataTypeTok{nowe=}\NormalTok{w,}\DataTypeTok{rowne=}\NormalTok{rowne))}
\NormalTok{\}}
\end{Highlighting}
\end{Shaded}

\subsubsection{Poprawianie podziałów}\label{poprawianie-podziaow}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{(P11 <-}\StringTok{ }\KeywordTok{proxWyn}\NormalTok{(X,P1))}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## $stare
## [1] 2 2 2 2 1 1
## Levels: 1 2
## 
## $nowe
## [1] 2 2 2 2 1 1
## Levels: 1 2
## 
## $rowne
## [1] TRUE
\end{verbatim}

\begin{quote}
Podział \(P1\) jest podziałem Woronoja
\end{quote}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{(P21 <-}\StringTok{ }\KeywordTok{proxWyn}\NormalTok{(X,P2))}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## $stare
## [1] 1 2 1 2 2 1
## Levels: 1 2
## 
## $nowe
## [1] 1 1 2 2 2 1
## Levels: 1 2
## 
## $rowne
## [1] "2 string mismatches"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{(P22 <-}\StringTok{ }\KeywordTok{proxWyn}\NormalTok{(X,P21}\OperatorTok{$}\NormalTok{nowe))}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## $stare
## [1] 1 1 2 2 2 1
## Levels: 1 2
## 
## $nowe
## [1] 1 1 2 2 2 2
## Levels: 1 2
## 
## $rowne
## [1] "1 string mismatch"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{(P23 <-}\StringTok{ }\KeywordTok{proxWyn}\NormalTok{(X,P22}\OperatorTok{$}\NormalTok{nowe))}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## $stare
## [1] 1 1 2 2 2 2
## Levels: 1 2
## 
## $nowe
## [1] 1 1 2 2 2 2
## Levels: 1 2
## 
## $rowne
## [1] TRUE
\end{verbatim}

Podział \(P22\$nowe=112222\) jest lepszy podziału \(P2=121221\) i jest
równy podziałowi \(P3\). Z tego wynika, że \(P3\) jest podziałem
Woronoja. Nie wiadomo, czy są inne podziały Woronoja dla tych danych

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{p1_plot <-}\StringTok{ }\KeywordTok{ggplot}\NormalTok{(XP,}\KeywordTok{aes}\NormalTok{(X1,X2)) }\OperatorTok{+}\StringTok{ }\KeywordTok{geom_point}\NormalTok{(}\DataTypeTok{size=}\DecValTok{3}\NormalTok{,}\KeywordTok{aes}\NormalTok{(}\DataTypeTok{color=}\NormalTok{P1)) }\OperatorTok{+}\StringTok{ }\KeywordTok{labs}\NormalTok{(}\DataTypeTok{caption=}\StringTok{"JM=1.125"}\NormalTok{)}
\NormalTok{p3_plot <-}\StringTok{ }\KeywordTok{ggplot}\NormalTok{(XP,}\KeywordTok{aes}\NormalTok{(X1,X2)) }\OperatorTok{+}\StringTok{ }\KeywordTok{geom_point}\NormalTok{(}\DataTypeTok{size=}\DecValTok{3}\NormalTok{,}\KeywordTok{aes}\NormalTok{(}\DataTypeTok{color=}\NormalTok{P3))}\OperatorTok{+}\StringTok{ }\KeywordTok{labs}\NormalTok{(}\DataTypeTok{caption=}\StringTok{"JM=1.625"}\NormalTok{)}
\KeywordTok{grid.arrange}\NormalTok{(p1_plot,p3_plot,}\DataTypeTok{nrow=}\DecValTok{2}\NormalTok{) }
\end{Highlighting}
\end{Shaded}

\begin{figure}
\centering
\includegraphics{EDA_bookdown_files/figure-latex/unnamed-chunk-66-1.pdf}
\caption{\label{fig:unnamed-chunk-66}Podziały Woronoja dla danych X}
\end{figure}

Z tych dwóch podziałów Woronoja podział \(P3\) jest lepszy.

\chapter{Dyskryminacja (klasyfikacja z
nauczycielem)}\label{dyskryminacja}

Zakładamy, że zadany jest podział \(\mathcal{P}\) macierzy danych \(X\)
rozmiaru \(n \times p\). Podział ten odzwierciedla stan naszej wiedzy o
zebranych (historycznych) danych i ich podziale na klasy. Przykładem
takiej sytuacji jest medycyna, gdzie \(X\) jest macierzą \(p\) objawów
zgromadzonych wśród \(n\) pacjentów, zaś podział odzwierciedla
klasyfikację na \(k\) jednostek chorobowych. Zadaniem dyskryminacji jest
opracowanie prostych reguł zakwalifikowania do jednej z klas obiektu
\(x \in \mathbf{R}^p\) nie odwołujących się do macierzy \(X\) \footnote{Może
  to być macierz gigantycznych rozmiarów}. W tym rozdziale zajmiemy się
\textbf{dyskryminacją liniową}, w której reguły dyskryminacji oparte są
na operatorach liniowych w \(\mathbf{R}^p\).

\BeginKnitrBlock{definition}
\protect\hypertarget{def:unnamed-chunk-67}{}{\label{def:unnamed-chunk-67}
}Niech podmacierzami podziału \(\mathcal{P}\) będą
\(X_{[1]},X_{[2]},\dots,X_{[k]}\), \(G_1,G_2,\dots,G_k\) - centroidami
podziału, \(G_{\mathcal{P}}\) - macierzą centroidów. \textbf{Macierzą
wariancji wewnątrzklasowej (odp. międzyklasowej)} nazywamy macierz \[
  V_W\stackrel{def}{=}V_W(X,\mathcal{P}) = \sum_{j=1}^k p_j V\left(X_{[j]} \right)\\
  V_M\stackrel{def}{=}V_M(X,\mathcal{P})=V\left(G_{\mathcal{P}} \right)
\]
\EndKnitrBlock{definition}

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:macvar}{}{\label{thm:macvar} }\textbf{Twierdzenie
Pitagorasa o macierzach wariancji podziału}

Dla każdego podziału \(\mathcal{P}\) zachodzi \[
  V(X)=V_W(X,\mathcal{P})+V_M(X,\mathcal{P})
\]
\EndKnitrBlock{theorem}

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:unnamed-chunk-68}{}{\label{prp:unnamed-chunk-68}
}\[
  V_M=\sum_{j=1}^k p_j (G_j-G)(G_j-G)^T\\
  rz\left( V_M \right) \leq k-1
\]
\EndKnitrBlock{proposition}

\section{Zmienne dyskryminacyjne}\label{zmienne-dyskryminacyjne}

Podobnie jak w przypadku wyboru najlepszego modelu liniowego, szukamy
macierzy przekształcenia liniowego wymiaru \(d \times p\)
(\(d \leq p\)): \[
  U=
  \begin{bmatrix}
    U_1^T\\U_2^T\\ \vdots\\ U_d^T
  \end{bmatrix}
\] której wiersze stanowią zmienne dyskryminacyjne.

Po przekształceniu \(U\) obrazem macierzy \(X\) będzie macierz
\(Y=XU^T\) o wymiarze \(n \times d\). Z twierdzenia \ref{thm:macvar}
wiemy, że \[
    V(Y)=V_W(Y,\mathcal{P})+V_M(Y,\mathcal{P})\\
\]

Należy wybrać takie przekształcenie \(U\), aby zdolność rozróżnienia
klas była jak największa czyli bezwładność międzyklasowa \[
J_M(Y,\mathcal{P})=Tr\left(V_M(Y,\mathcal{P})\right)
\] była jak największa.

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:unnamed-chunk-69}{}{\label{prp:unnamed-chunk-69}
}\[
    V_M(Y,\mathcal{P})=UV_M(X,\mathcal{P})U^T
\]
\EndKnitrBlock{proposition}

Ponieważ zarówno macierz \(X\) jak i podział \(\mathcal{P}\) są
ustalone, przyjmiemy oznaczenia: \[
  V\stackrel{def}{=}V(X), \, V_M\stackrel{def}{=}V_M(X,\mathcal{P})
\]

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:unnamed-chunk-70}{}{\label{thm:unnamed-chunk-70}
}\textbf{Optymalna macierz zmiennych dyskryminacyjnych} spełnia warunek
\[
    U^*=argmax(Tr(UV_MU^T))
  \] z warunkiem ubocznym \[
  ||Y_i||=1,\;i=1,2,\dots,d
\]
\EndKnitrBlock{theorem} Korzystając z z metody mnożników Lagrange'a
zadanie to mozna sprowadzić do maksymalizacji funkcji zmiennej
macierzowej \(U\): \[
  Tr\left(UV_MU^T\right)-Tr\left(\Lambda UVU^T\right)
\] Macierz \(\Lambda\) jest przekątniową macierzą rozmiaru
\(d \times d\) współczynników Lagrange'a tak dobranych by
\(||Y_i||=1,\;i=1,2,\dots,d\).

\BeginKnitrBlock{theorem}
\protect\hypertarget{thm:zmdyskr}{}{\label{thm:zmdyskr} }Wiersze optymalnej
macierzy zmiennych dyskryminacyjnych \(U^*\) są wektorami własnymi
macierzy \(V^{-1}V_M\) odpowiadającymi \(min(d,k-1)\) największym
wartościom własnym \footnote{a więc wektorów dyskryminacyjnych jest na
  ogół mało}. Wektory \(U_i\) mają długości spełniajace warunki
\(U_i^TVU_i=1\)
\EndKnitrBlock{theorem}

\section{Podział dychotomiczny}\label{podzia-dychotomiczny}

Często w praktyce występuje podział na dwie klasy. Jest on o tyle
interesujący, że jak wynika z twierdzenia \ref{thm:zmdyskr}, jest tylko
jedna zmienna dyskryminacyjna, a więc kryterium dyskryminacyjne jest
oparte na iloczynie skalarnym tej zmiennej z wektorem \(x\) mającym być
obiektem klasyfikacji

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:unnamed-chunk-71}{}{\label{prp:unnamed-chunk-71} }W
przypadku podziału dychotomicznego, w którym frakcja przypadków próby
uczacej, należących do klasy 1 jest równa \(p_1\) a należących do klasy
2 \(p_2=1-p_1\), \(G_j,\; j=1,2\) są centroidami klas \[
  V_M=p_1p_2(G_1-G_2)(G_1-G_2)^T\\
  u_0=V^{-1}(G_1-G_2)
\] \(u_0\) jest równoległy do wektora dyskryminacyjnego
\EndKnitrBlock{proposition}

\BeginKnitrBlock{proposition}
\protect\hypertarget{prp:unnamed-chunk-72}{}{\label{prp:unnamed-chunk-72}
}\textbf{Kryterium przynależności do klasy 1} \[
    u_0^Tx \geq c \stackrel{def}{=}\frac{u_0^T(G_1+G_2)}{2}
  \]
\EndKnitrBlock{proposition}

Jeżeli próg \(c\) jest różny od 0, to wygodnie jest przyjąć ustaloną z
góry (niezależnie od zadania dyskryminacji) wartość progu, równą \(c^*\)
\footnote{Ja (AD) przyjmuję wartość 100}. \BeginKnitrBlock{proposition}

\protect\hypertarget{prp:unnamed-chunk-73}{}{\label{prp:unnamed-chunk-73}
}\textbf{Kryterium przynależności do klasy 1 dla uniwersalnego progu}.

Niech \(\alpha=\frac{c^*}{c}\), \(u_*=\alpha u_0\) \[
    \begin{cases}
      u_*^Tx \geq c^* &\quad \text{gdy}\; \alpha>0\\
      u_*^Tx \leq c^* &\quad \text{gdy}\; \alpha<0
    \end{cases}
  \]
\EndKnitrBlock{proposition}

\subsection{Przykład}\label{przykad-2}

\begin{quote}
Badano zmiany zawartej w plazmie krwi stężenia glukozy {[}\%{]} (zmienna
1) i wolnego kwasu tłuszczowego {[}mEq/l{]} u 12 schizofreników (grupa
1) i 13 zdrowych ochotników (grupa 2) po domięśniowym wstrzyknięciu
insuliny.
\end{quote}

\textbf{Dane}

Środki ciężkości

\begin{verbatim}
##                     G1     G2
## glukoza [%]     -25.60 -31.10
## tluszcz [mEq/l]  -0.06  -0.15
\end{verbatim}

Macierze kowariancji

\begin{verbatim}
##          [,1]   [,2]
## [1,] 278.0830 0.8291
## [2,]   0.8291 0.0092
\end{verbatim}

\begin{verbatim}
##          [,1]    [,2]
## [1,] 269.9230 -0.2493
## [2,]  -0.2493  0.0067
\end{verbatim}

Obliczenia

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{p1 <-}\StringTok{ }\DecValTok{12}\OperatorTok{/}\DecValTok{25}
\NormalTok{p2 <-}\StringTok{ }\DecValTok{13}\OperatorTok{/}\DecValTok{25}
\NormalTok{g <-}\StringTok{ }\NormalTok{p1}\OperatorTok{*}\NormalTok{g1}\OperatorTok{+}\NormalTok{p2}\OperatorTok{*}\NormalTok{g2}
\NormalTok{g}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## [1] -28.4600  -0.1068
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{VW <-}\StringTok{ }\NormalTok{p1}\OperatorTok{*}\NormalTok{V1}\OperatorTok{+}\NormalTok{p2}\OperatorTok{*}\NormalTok{V2}
\NormalTok{VW}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##            [,1]     [,2]
## [1,] 273.839800 0.268332
## [2,]   0.268332 0.007900
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{VM <-}\StringTok{ }\NormalTok{p1}\OperatorTok{*}\NormalTok{p2}\OperatorTok{*}\NormalTok{(g1}\OperatorTok{-}\NormalTok{g2)}\OperatorTok{%*%}\KeywordTok{t}\NormalTok{(g1}\OperatorTok{-}\NormalTok{g2)}
\NormalTok{VM}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##          [,1]       [,2]
## [1,] 7.550400 0.12355200
## [2,] 0.123552 0.00202176
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{V <-}\StringTok{ }\NormalTok{VW}\OperatorTok{+}\NormalTok{VM}
\NormalTok{V}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##            [,1]       [,2]
## [1,] 281.390200 0.39188400
## [2,]   0.391884 0.00992176
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{Vinv <-}\StringTok{ }\KeywordTok{solve}\NormalTok{(V)}
\NormalTok{Vinv}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##              [,1]        [,2]
## [1,]  0.003760646  -0.1485358
## [2,] -0.148535828 106.6553529
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{u0 <-}\StringTok{ }\NormalTok{Vinv }\OperatorTok{%*%}\StringTok{ }\NormalTok{(g1}\OperatorTok{-}\NormalTok{g2)}
\NormalTok{u0}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##             [,1]
## [1,] 0.007315326
## [2,] 8.782034709
\end{verbatim}

Punkt podziału

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{c <-}\StringTok{ }\FloatTok{0.5} \OperatorTok{*}\StringTok{ }\KeywordTok{sum}\NormalTok{(}\KeywordTok{t}\NormalTok{(u0) }\OperatorTok{*}\StringTok{ }\NormalTok{(g1}\OperatorTok{+}\NormalTok{g2))}
\NormalTok{c}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## [1] -1.129503
\end{verbatim}

Reguła 100

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{ug <-}\StringTok{ }\DecValTok{100}\OperatorTok{*}\NormalTok{u0}\OperatorTok{/}\NormalTok{c}
\NormalTok{ug}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
##              [,1]
## [1,]   -0.6476588
## [2,] -777.5130830
\end{verbatim}

Dyskryminacja

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{x <-}\StringTok{ }\KeywordTok{c}\NormalTok{(}\OperatorTok{-}\DecValTok{30}\NormalTok{,}\OperatorTok{-}\FloatTok{0.1}\NormalTok{)}
\NormalTok{x}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## [1] -30.0  -0.1
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{sum}\NormalTok{(}\KeywordTok{t}\NormalTok{(ug) }\OperatorTok{*}\StringTok{ }\NormalTok{x)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## [1] 97.18107
\end{verbatim}

Chory

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{x <-}\StringTok{ }\KeywordTok{c}\NormalTok{(}\OperatorTok{-}\DecValTok{20}\NormalTok{,}\OperatorTok{-}\FloatTok{0.2}\NormalTok{)}
\NormalTok{x}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## [1] -20.0  -0.2
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{sum}\NormalTok{(}\KeywordTok{t}\NormalTok{(ug) }\OperatorTok{*}\StringTok{ }\NormalTok{x)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
## [1] 168.4558
\end{verbatim}

Zdrowy

\chapter{Literatura}\label{literatura}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
  Le Roux, B., Ruanet, H. , Geometric data analysis: from correspondence
  analysis to structured data analysis, Kluwer\\
\item
  Du Toit, S.H.C., Steyn, A.G.W., Stumpf, R.H., Graphical Exploratory
  Data Analysis, Springer 1986\\
\item
  Gnanadesikan, R., Statistical Data Analysis, Lecture Notes for AMS,
  1982, Proc. of Symposia in Applied Mathematics vol.~28, 1983\\
\item
  Hoaglin, D.C., Mosteller, F., Tukey J.W., Understanding Robust and
  Exploratory Data Analysis, Wiley 2000\\
\item
  Hoaglin, D.C., Mosteller, F., Tukey J.W., Exploring Data Tables Trends
  and Shapes, Wiley 2000\\
\item
  Krzanowski., W.J., Principles of Multivariate Analysis, A User's
  Perspective, Oxford University Press, 2000\\
\item
  Tukey, J.W., Exploratory Data Analysis, Reading 1977
\end{enumerate}

\bibliography{book.bib,packages.bib}


\end{document}
