% Utfør toutvalgs ensidig t-test på forskjell i forventningsverdiene
% til snødybde ved Rybekken og SYlsjødammen
% Nullhypotese: forventningsverdiene er like
% Alternativ hypotese: x1 /Sylsjødammen) har større forventningsverdi enn x2 (Rybekken)
clear all, close all, clc

% Sett signifikansnivå
alpha = 0.05;

% Last inn data
sylsjodammen = load('sylsjodammen.txt');
rybekken = load('rybekken.txt');

% Hent ut observasjonene av snødybde
x1 = sylsjodammen(:,2);
x2 = rybekken(:,2);

% Lagre lengden til vektorene
n1 = length(x1);
n2 = length(x2);

% Beregn gjennomsnitt
x1_bar = mean(x1);
x2_bar = mean(x2);

% Beregn estimatorene for variansen
s12 = sum((x1 - x1_bar).^2)/(n1 - 1);
s22 = sum((x2 - x2_bar).^2)/(n2 - 1);

% Bestem antall frihetsgrader
v = (s12/n1 + s22/n2)^2/((s12/n1)^2/(n1-1) + (s22/n2)^2/(n2-1));
v = floor(v); % Runder ned til nærmeste heltall

% Finn observert verdi av T under nullhypotesen
T = (x1_bar - x2_bar)/sqrt(s12/n1 + s22/n2);

% Finn kritisk verdi fra t-fordelingen med v frihetsgrader
t = icdf('t',1-alpha,v);

% Beregn P-verdien
P = 1 - cdf('t',T,v);

% Vis konklusjon
fprintf('Gjennomsnitt, Sylsjødammen: %.4f\nGjennomsnitt, Rybekken: %.4f\nAntall frihetsgrader: %i\nKritisk t-verdi (signifikansnivå %3.2f): %.4f\nObservert t-verdi: %.4f\n',x1_bar,x2_bar,v,alpha,t,T)
fprintf('\nKonlusjon:\n')
if T > t
    fprintf('Forkast nullhypotesen på signifikansnivå %3.2f (P-verdi: %.5g).\n',alpha, P)
else
    fprintf('Ikke grunnlag for å forkaste nullhypotesen på signifikansnivå %3.2f (P-verdi: %.5g).\n',alpha,P)
end

% Alternativt: Bruk Matlabfunksjonen ttest2 for å utføre samme test
% Må spesifisere at vi ser på den høyre halen, og at populasjonene ikke kan antas å ha samme varians
[h, p, ci, stats] = ttest2(x1,x2,alpha,'right','unequal')
