% Finner 100(1-alpha)% konfidensintervaller for forskjellen mellom
% forventningsverdiene av snødybde for Sylsjødammen og Rybekken
% INPUT: .txt-filer med observasjoner fra Rybekken og SYlsjødammen med
% snødybde i andre kolonne
clc, clear all, close all

% Sett signifikansnivå
alpha = 0.05;

% Last inn data
sylsjodammen = load('sylsjodammen_kort.txt');
rybekken = load('rybekken_kort.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 ved hjelp av Satterthwaites approksimasjon
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 grensene for konfidensintervallet
lower = x1_bar - x2_bar - icdf('t',1-alpha/2,v).*sqrt(s12/n1 + s22/n2);
upper = x1_bar - x2_bar + icdf('t',1-alpha/2,v).*sqrt(s12/n1 + s22/n2);

%%%%%%%%%%%%%%%%%%%%%%%%%% Par av observasjoner %%%%%%%%%%%%%%%%%%%%%%%%%%

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

% hent ut overlappende observasjoner av snødybde
x1 = sylsjodammen(:,2);
x2 = rybekken(:,2);
d = x1 - x2;

% Lagre lengden til de nye vektorene
n = length(d);

% Estimer middelverdi og varians
d_bar = mean(d);
s2 = sum((d-d_bar).^2)/(n-1);

% Beregn grensene til det alternative konfidensintervallet
lower2 = d_bar - icdf('t',1-alpha/2,n-1).*sqrt(s2/n);
upper2 = d_bar + icdf('t',1-alpha/2,n-1).*sqrt(s2/n);

% Vis resultat
fprintf('Metode\t\t\t%i prosent konfidensintervall\tAntall frihetsgrader\n',100*(1-alpha))
fprintf('Separate populasjoner\t(%.4f, %.4f)\t\t%i\nObservasjoner i par\t(%.4f, %.4f)\t\t%i\n',lower,upper,v,lower2,upper2,n-1)




