%% last inn 'spund1ed.csv' vha import data
%%
hogde=nhoyde;
kjonn = zeros(length(nhoyde),1);

for(i=1:length(nhoyde))
    if(strcmp(char(VarName2(i)),'Mann')==1)
        kjonn(i)=1;
    end
    if(strcmp(char(VarName2(i)),'Kvinne')==1)
        kjonn(i)=2;
    end
end

%% Make vectors with hight of men and women

indexMann=find(kjonn==1);
indexKvinne=find(kjonn==2);
hogdeMann=hogde(indexMann);
hogdeKvinne=hogde(indexKvinne);
antmenn = length(hogdeMann);
antkvinner = length(hogdeKvinne)

%% gjennomsnitt
gjsnittKvinner=mean(hogdeKvinne)


%% Finn konfidensintervall 

%Antar kjent varians/standaravvik:  sigma = 6.5

alfa=0.05;
n1=antkvinner;
n2=5;

sigma=6.5;
z_alfahalve=norminv(1-alfa/2, 0,1);

%% Case 1
nedre1=mean(hogdeKvinne)-z_alfahalve*sigma/sqrt(n1);
ovre1=mean(hogdeKvinne)+z_alfahalve*sigma/sqrt(n1);

KI1Z=[nedre1,ovre1]

%% Case 2
nedre2=mean(hogdeKvinne)-z_alfahalve*sigma/sqrt(n2);
ovre2=mean(hogdeKvinne)+z_alfahalve*sigma/sqrt(n2);

KI2Z=[nedre2,ovre2]



%% Illustrasjon konfidensintervall

figure
AntallUtval=200;
niutval=antkvinner;
mu=gjsnittKvinner;
sigma=6.5;
subplot(1,3,2);
plot([mu,mu],[1,AntallUtval],'r-', 'linewidt',3);
hold
title('KI og sann \mu', 'FontSize',18);
alfa=0.05;
z_alfahalve=norminv(1-alfa/2, 0,1);
subplot(1,3,3);
plot([1,AntallUtval],[alfa,alfa],'m-', 'linewidt',3);
hold
title('Andel KI utanfor sann \mu', 'FontSize',18)
AntallUtanfor=0;
KI=zeros(AntallUtval,2);
AndelUtanfor=zeros(AntallUtval,1);
pauseint=0.05;
for(i=1:AntallUtval)	
	utval=normrnd(mu,sigma, niutval,1);
	gjsnitt(i)=mean(utval);
	subplot(1,3,1);	
	hist(utval);
    set(gca,'FontSize',20);
	title('Eit tilfeldig utval', 'FontSize',18)	
	KI(i,1)=gjsnitt(i)-z_alfahalve*sigma/sqrt(niutval);
	KI(i,2)=gjsnitt(i)+z_alfahalve*sigma/sqrt(niutval);
	subplot(1,3,2);
	plot(KI(1:i,:)',1:1:i,'*')
    set(gca,'FontSize',20);
	if(KI(i,1)>mu || KI(i,2)<mu)
		AntallUtanfor=AntallUtanfor+1;
	end
	subplot(1,3,3);
	AndelUtanfor(i)=AntallUtanfor/i;
	plot(AndelUtanfor(1:i),'linewidt',3);
    set(gca,'FontSize',20);
	pause(pauseint)
	if(i==1)
		pause
	end
end


%% Rask illustrasjon konfidens intervall
AntallUtval=10000;
KI=zeros(AntallUtval,2);
AndelUtanfor=zeros(AntallUtval,1);
utvalM=normrnd(mu,sigma, niutval,AntallUtval);
gjsnitt=mean(utvalM);
KI(:,1)=gjsnitt-z_alfahalve*sigma/sqrt(niutval);
KI(:,2)=gjsnitt+z_alfahalve*sigma/sqrt(niutval);
Utanfor= KI(:,1)>mu | KI(:,2)<mu;
for(i=1:AntallUtval)
	AndelUtanfor(i)=sum(Utanfor(1:i))/i;
end
figure
plot([1,AntallUtval],[alfa,alfa],'m-', 'linewidt',3);
set(gca,'FontSize',16);
hold
plot(AndelUtanfor,'linewidt',3);
set(gca,'FontSize',16);
xlabel('Antall utval', 'FontSize',20)
ylabel('Andel KI utanfor sann \mu', 'FontSize',20)

%% Antar normalfordeling, med ukjent forvening og varians (estimerer varians)

%T-test: 'Estimerer varians', antar at estimatet blir 6.5^2, for aa 
%faa samanliknbare resultat
s=6.5;
%Case 1
nedre1=mean(hogdeKvinne)-tinv(1-alfa/2,n1-1)*s/sqrt(n1);
ovre1=mean(hogdeKvinne)+tinv(1-alfa/2,n1-1)*s/sqrt(n1);

KI1T=[nedre1, ovre1]

%% Case 2
nedre2=mean(hogdeKvinne)-tinv(1-alfa/2,n2-1)*sigma/sqrt(n2);
ovre2=mean(hogdeKvinne)+tinv(1-alfa/2,n2-1)*sigma/sqrt(n2);

KI2T=[nedre2, ovre2]

%% Prediksjonsintervall: antar kjent varians, CASE 1
sigma=6.5;
sigmadiff2=sigma^2 + sigma^2/n1;
sigmadiff=sqrt(sigmadiff2)

%prediksjonsintervall
nedre1=mean(hogdeKvinne)-z_alfahalve*sigmadiff;
ovre1=mean(hogdeKvinne)+z_alfahalve*sigmadiff;

PI1Z=[nedre1, ovre1]

%% Prediksjonsintervall: antar kjent varians, CASE 2
sigma=6.5;
sigmadiff2=sigma^2 + sigma^2/n2;
sigmadiff=sqrt(sigmadiff2)

%prediksjonsintervall
nedre2=mean(hogdeKvinne)-z_alfahalve*sigmadiff;
ovre2=mean(hogdeKvinne)+z_alfahalve*sigmadiff;

PI2Z=[nedre2, ovre2]

%% Konfidensintervall for varians

% antar at estimert varians er 6.5^2 for begge casa.
s2=6.5^2

%% CASE 1

nedre1 = (n1-1)*s2/chi2inv(1-0.025, n1-1);
ovre1 = (n1-1)*s2/chi2inv(0.025, n1-1);

CISigma21 = [nedre1, ovre1]
CISqrtSigma21 = [sqrt(nedre1), sqrt(ovre1)]


%% CASE 2

nedre2 = (n2-1)*s2/chi2inv(1-0.025, n2-1);
ovre2 = (n2-1)*s2/chi2inv(0.025, n2-1);

CISigma21 = [nedre2, ovre2]
CISqrtSigma22 = [sqrt(nedre2), sqrt(ovre2)]
