Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Table of Contents

\[ \def\_#1{\mathbf{#1}} \def\bb#1{\mathbb{#1}} \]

PCA: Volby

(vytvořil Jan Čech 2017)

Občanské sdružení KohoVolit.eu připravilo pro poslední volby do Poslanecké sněmovny parlamentu ČR tzv. Volební kalkulačku. Základní myšlenka volební kalkulačky je pomoci voliči, aby se rychle zorientoval v programu politických stran, a to tak, že se měří shoda vlastních voličových názorů s programovými otázkami kandidátních stran prostřednictvím sady otázek z mnoha oblastí.

Byla vytvořena sada 100 otázek, na které lze odpovědět Ano/Ne/Nevím. Kandidující politické strany byly obeslány, 25 z nich dodalo odpovědi. Volič na webu následně odpoví na stejné otázky a volební kalkulačka vyhodnotí shodu jeho odpovědí a seřadí a doporučí politické strany. Existuje i kratší verze kalkulačky, kde je jen podmnožina 35 otázek. My se ale nadále budeme zabývat úplnou sadou 100 otázek.

Data jsme stáhli a převedli do formátu vhodného pro zpracování v Matlabu: volby_2017.mat (používáte-li octave, bude se Vám spíš hodit volby_2017_ascii.mat, lišící se jen absencí diakritiky v textových řetězcích [octave si neporadí s UTF-8]). Soubor obsahuje následující datové struktury:

  • T.data matice 100×25, kde řádky znamenají otázky, sloupce politické strany. Prvky této matice jsou: 1 odpověď ANO, -1 odpověď NE, 0 (všechny ostatní případy, tj. odpověď nepovažují za jednoznačnou, neví, nechtějí se vyjádřit).
  • T.comments 100×25 cell array komentářů politických stran k odpovědím.
  • T.questions 100×1 cell array otázek.
  • T.strana_zkratka 1×25 cell array zkratky politických stran.
  • T.strana 1×25 cell array plné názvy politických stran.
  • T.color 1×25 RGB vektor politické strany
  • T.pref_last 1×25 odhadované preference podle posledního průzkumu agentury Median před volbami (říjen 2017)

Úkol 1

Jednotlivé politické strany $\{a_1, \dots, a_{25}\}$, kde $a_i \in \bb R^{100} $ je možné chápat jako body v prostoru odpovědí na referenční programové otázky. Chtěli bychom tento prostor vhodně vizualizovat. To uděláme tak, že body $a_i$ proložíme afinním podprostorem dimenze 2, tak aby součet kvadrátů vzdáleností původních $a_i$ a promítnutých bodů $a_i'$ byl minimální. Následně promítnuté body zobrazíme v souřadnicích báze nalezeného afinního podprostoru.

  1. Formulujte optimalizační problém. [výstup: rovnice, slovní vysvětlení symbolů]
  2. Vyřeště optimalizační problém. [výstup: symbolický zápis optimálního řešení, hodnota kriteria]
  3. Najděte ortonormální bázi nalezeného afinního podprostoru $\mbox{span}\{a_1',\dots,a_{25}'\} + a_0$ a jednotlivé politické strany zobrazte v souřadnicích této báze (jejíž vektory ztotožníte s osami 2D grafu). Zakreslené body obarvěte barvou strany (podle T.color). [výstup: graf]
  4. Interpretujte výsledek. [výstup: stručné slovní hodnocení]

Úkol 2

Vizualizovat tato data je možné i z opačného pohledu. Jednotlivé otázky $\{b_1, \dots, b_{100}\}$, kde $b_i \in \bb R^{25}$ jsou body v prostoru politických stran. Otázky zobrazíme opět v prostoru dimenze 2.

  1. Postupujte obdobně jako v minulém příkladu a zakreselete jednotlivé otázky v souřadnicích ortonormální báze dimenze 2 prostoru proložení ve smyslu nejmenších čtverců. Výsledné body obarvěte podle toho, zda většina politických stran odpovídá ano. [výstup: graf]
  2. Interpretujte výsledek. [výstup: stručné slovní hodnocení]
  3. Je možné nalézt ortonormální bázi hledaného podprostoru a souřadnice promítnutých bodů v této bázi využitím výpočtu z předchozího úkolu? Pokud ano, vysvětlete. [výstup: slovní vysvětlení případně vzorce].

Prosíme také o odevzdání kódu (což je povinné u každé domácí úlohy, viz stránka cvičení).

courses/b0b33opt/cviceni/hw/volby_2017/start.txt · Last modified: 2019/11/20 15:52 by wernetom