opgaver:Uge5
Pia Jensen (Talk | contribs) |
Pia Jensen (Talk | contribs) |
||
Line 168: | Line 168: | ||
{{hidden end}} | {{hidden end}} | ||
+ | |||
+ | |||
+ | |||
+ | == Samlede løsninger == | ||
+ | * Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: [[Media:opgaver_uge5_kovarians.m|opgaver_uge5_kovarians.m]] |
Revision as of 12:25, 7 March 2012
I denne uge skal I arbejde med lidt mere avanceret statisk, som en forsmag på hvad I kan lære i mere avancerede statistik-kurser, som f.eks. Anvendt Statistik, der afholdes i blok 1.
Som en forberedelse på at kunne lave disse opgaver, skal I læse et lille dokument skrevet af Morten Dam Jørgensen, der desuden også lavede nedenstående opgaver.
- Dokument om multivariat statistik: multivariatstatistik.pdf
Det kan også hjælpe at læse nogle Wikipedia-sider om emnerne, som f.eks.
- Multivariate analysis
- Covariance Matrix
- Correlations
- Autocorrelations (valgfri)
- Principal Component Analysis
- Linear models
- Non-linear models (kernel methods)
- Fast fourier transforms - cool blog om FFT (valgfri)
Contents |
Opgave 1 - Lineær korrelation
Disse øvelser viser hvordan lineære korrelationer kan beregnes og visualiseres, metoder som er anvendelige på det meste data med flere parametre.
Spørgsmål 1
Start med at indlæse datafilen, og plot så populationen i forhold til landenes størrelse.
Spørgsmål 2
Beregn den linære korrelation manuelt. Er de to variable korrelerede?
Beregn først kovarians matricen (ligning 1 i multivariatstatistik.pdf dokumentet).
Spørgsmål 3
Beregn kovariansmatricen og korrelationsmatricen med MATLAB's indbyggede funktioner, og sammenlign resultatet med dine egne beregninger.
Spørgsmål 4
Tag logaritmen af begge værdier, og plot resultatet igen. Diskutér forskellen - er korrelationen tydeligere nu? Beregn korrelationen for de logaritmiske værdier. Hvorfor er korrelationen anderledes end i spørgsmål 2?
Spørgsmål 5
Lav et lineært fit af resultatet i spørgsmål 4. Hvad er $\chi^2$ for fittet? Beskriver en lineær relation forholdet?
Opgave 2 - Flere korrelationer
Disse øvelser viser mere med korrelationer.
- Du skal starte med at hente datasættet opg2data.txt.
Spørgsmål 1
Indlæs datasættet og beregn korrelationerne mellem de to variable. Er variablene korrelerede?
Spørgsmål 2
Lav et scatter plot af de to variable. Ved visuel inspektion, forklar hvorfor der ikke var en korrelation mellem de to akser i beregningen.
Spørgsmål 3
Datasættet er genereret med følgende udtryk:
n = 2000;
x = linspace(-1, 1, n);
y = - 5 * (x.^2 - 1/2).^2 + unifrnd(-1, 1, [1 n])/3;
Der er tydeligvis en afhængighed mellem $x$- og $y$-aksen. I hvilke tilfælde vil en lineær korrelation være et acceptabelt mål for korrelationen mellem to værdier?
Opgave 3 -
Disse øvelser handler om radial acceleration (med Principal Component Analysis).
- Du skal starte med at hente datasættet ipod_4.txt, der er et datasæt taget med app'en iSeismometer på en Ipod Touch som del af et eksperiment på kurset i 2011.
Spørgsmål 1
Indlæs datasættet. De fire variable er hhv. acceleration langs $x$-, $y$- og $z$-akserne samt tid i sekunder. Plot de tre accelerationskomponenter som funktion af tiden.
Spørgsmål 2
I dette spørgsmål skal du finde de dominerende komponenter, ved at benytte PCA metoden beskrevet afsnit 2 i multivariatstatistik.pdf dokumentet. For at hjælpe dig lidt på vej er spørgsmålet delt op i mindre dele:
Del 1
Transponér input matricen sådan at den er $M \times N$, hvor $M$ svarer til antallet af parametre og $N$ antallet af målinger. Centrér derefter dataen ved først at beregne middelværdien for de fire parametre, og fratræk denne de enkelte komponenter.
data_center = data - repmat(middelværdierne, 1, antallet_af_målinger)
Del 2
Beregn kovariansmatricen af den centrerede data, og beregn så egenværdierne og egenvektorerne af den, med den indbyggede funktion i MATLAB. Gem diagonalen af egenværdimatricen i en vektor ($M \times 1$).
Del 3
Sorter egenværdierne efter faldende orden, og gem de indekser som sorteringsmetoden retunerer i en vektor.
[smidvæk indices] = sort(egenværdier, 'descend')
Del 4
Sorter egenvektorerne og egenværdierne med indeks-vektoren.
egenvec = egenvec(:,indices); egenværdier = egenværdier(indices)
Del 5
Projektér den oprindelige data langs den nye basis (egenvektor matricen).
data_pca = egenvec' * data
Spørgsmål 3
Plot hvert komponent af det transformerede datasæt som funktion af tiden. Ved at sammenligne værdierne fra egenvektorne med de fire plots, forklar hvad de enkelte komponenter beskriver.
Spørgsmål 4
(Frivillig) Benyt MATLABs indbyggede PCA rutiner i stedet:
[C, latent, explained] = pcacov(cov(data'))
biplot(egenvec(:,1:2), 'scores', signals(1:2,:)', 'varlabels',datalabels)
Spørgsmål 5
(Frivillig) PCA teknikken afhænger af lineære relationer mellem de forskellige variable. Der findes en anden metode til ikke-lineære data, der benytter det såkaldte "kernel-kneb". I zip-filen medfølger en funktion kaldet "kernelpca_tutorial.m", gentag spørgsmål 4 for resultatet fra funktionen.
Mere info: http://en.wikipedia.org/wiki/Kernel_principal_component_analysis
Samlede løsninger
- Et samlet dokument med MATLAB kode til at løse alle opgaverne ovenfor kan hentes her: opgaver_uge5_kovarians.m