clear, close all

%% Cvičení 2 - Popisná statistika
% Table of Contents
% Data
%     Uspořádaná data
% Charakteristiky polohy
%         Průměr
%         Modus
%         Kvantily
% Charakteristiky variability
%         Rozptyl
%         Směrodatná odchylka
%         Rozpětí
%         Mezikvartilové rozpětí
% Krabicový diagram
% Tříděná data
% Samostatná práce - Grader
%% Data
% výběr, soubor, raw data (.csv nebo .xlsx)
% Načtěme si následující fiktivní data, kde nám různí řidiči řekli, kolik ujeli km za určité časové období, ve kterém městě vyplňovali dotazník a jakého roku je jejich vozidlo.

%  readtable("název souboru.xlsx","sheet","název listu","VariableNamingRule","preserve")
%  readtable("název souboru.xlsx","sheet",1,"VariableNamingRule","preserve")
T=readtable("data2023_cv2.xlsx","Sheet","List1","VariableNamingRule","preserve")

% Zjistěte velikost tabulky T:



% Pojmenujeme jednotlivé sloupce tabulky T:

km=T.("Počet ujetých km") 

% Pojmenujte druhý a třetí sloupce tabulky T:



% Pokud v tabule máme pouze číselné sloupce se stejným počtem dat, lze uložít tabulku do matice:

% matice=T.Variables;

% V našem případě tento případ není možné použít, protože prostřední sloupec neobsahuje čísla, ale text.  Vynechejme tedy druhý sloupec a zkusme to znovu:

T2=T(:,[1 3]);
matice=T2.Variables % s touto proměnnou můžeme pracovat jako s maticí v případe potřeby

% Vyberte druhý sloupec z matice matice:



%
%% Uspořádaná data
% Zkusme uspořádat data podle velikosti

usp=sort(T.("Počet ujetých km"))

% Můžeme určit pořadí dat (díváme se na uspořádaná data a hledáme pořadí v původních datech):

[usp,poradi]=sort(T.("Počet ujetých km"))

% Tímto jsme utřídili pouze počet kilometrů, ale ztratili jsme informaci, o stáří vozidla a města, ze kterého daný člověk pochází. Pokud chceme utřídit data podle předem definovaného sloupce, použijeme funkci:

sortrows(T,1) % tady podle prvního sloupce

%%
%
%% Charakteristiky polohy
%% Průměr
% ${\bar x}= \frac{1}{N}\sum^{N}_{i=1}x_i$

prumer=mean(T.("Počet ujetých km"))% nebo mean(km)

% Teď budeme pracovat s dvěma tabulkami. Na Listě 2 ve stejném souboru .xlsx máte jiná data - počty projíždějících vozidel v 15minutových intervalech na úseku silnice v Letňanech a ve Strašnicích. Vypočtěte průměrný počet vozidel v Letňanech (pozor na název nové tabulky!):



%% Modus
% nejčastěji naměřená hodnota

modus_km=mode(T.("Počet ujetých km"))

% Vypočtěte modus počtu vozidel ve Strašnicích:



%% Kvantily
% Medián - dělí data na dvě poloviny

Q2_km=median(T.("Počet ujetých km")) % používá se označení Q2 nebo x_0.5

% Vypočtěte medián počtu vozidel v Letňanech:



% Dolní kvartil Q1 -dělí data na 25% a 75%

Q1_km=quantile(T.("Počet ujetých km"),0.25) % Q1

% Vypočtěte dolní kvartil  počtu vozidel ve Strašnicích:



% Holní kvartil Q3 - dělí data na 75% a 25%

Q3_km=quantile(T.("Počet ujetých km"),0.75) % Q3

% Vypočtěte horní kvartil  počtu vozidel ve Strašnicích:



% Kritická hodnota - kvantil vpravo

quantile(T.("Počet ujetých km"),1-0.05) %  5%  kritická hodnota (později)

% Hodnoty  charakteristik polohy:

km'
poloha=[mean(km) mode(km) median(km) quantile(km,0.25) quantile(km,0.75)]

%% Charakteristiky variability
%% Rozptyl
%  $\sigma^2= \frac{1}{N}\sum^{N}_{i=1}(x_i-\bar x)^2$ , pozor  - v praxi $s^2= \frac{1}{N-1}\sum^{N}_{i=1}(x_i-\bar x)^2$

rozptyl_lm=var(T.("Počet ujetých km"))

% Vypočtěte rozptyl  počtu vozidel v Letňanech:



%% Směrodatná odchylka
%  $\sigma=\sqrt{\sigma^2}$

sm_km=std(T.("Počet ujetých km"))

% Vypočtěte směrodatnou odchylku počtu vozidel v Letňanech:



%% Rozpětí
% R=max-min

r_km=range(T.("Počet ujetých km"))

% Vypočtěte rozpětí počtu vozidel ve Strašnicích:



%% Mezikvartilové rozpětí
% MR=Q3-Q1

MR=iqr(T.("Počet ujetých km")) % používá se také označení IQR

%
% Vypočtěte mezikvartilové rozpětí počtu vozidel ve Strašnicích:



% Hodnoty  charakteristik variability:

km'
variabilita=[var(km) std(km) range(km) iqr(km)]

% Pro porovnání: čemu se rovnají charakteristiky polohy a variability pro vektor a?

a=[45 45 45 45 45 45 45 45 45];

%% Krabicový diagram
% pro jeden sloupec:

figure
boxplot(T.("Počet ujetých km"))

% Krabicový diagram pro porovnání dvou sloupců - zkusme se podívat, jak bude vypadat pro ujeté km pro každé město:

boxplot(T.("Počet ujetých km"),T.("Bydliště")) % první parametry jsou hodnoty a v druhém do které skupiny patří

% Krabicový diagram pro porovnání dvou sloupců, pokud nemáme skupiny, ale pouze sloupce:

T3=readtable("data2023_cv2.xlsx","Sheet","List2","VariableNamingRule","preserve");
figure
boxplot([T3.("Letňany") T3.("Strašnice")]) % sloupce do matice
xticklabels({'Letňany','Strašnice'})

%
%% Tříděná data
% Pokud se hodnoty opakují (v našem případě bydliště), můžeme data setřídit  a získat četnosti pro každé místo bydliště. Četnosti jsou ve druhém sloupci. Třetí sloupec jsou procenta, to zatím nepotřebujeme.

bydliste_trideno=tabulate(T.("Bydliště"))

%
%%
%% Samostatná práce - Grader