
%Miroslava Dobrotková, 318111, 4.ročník, II.stupeň, 3ZIH1A.

format long;

subor=importdata("data01.txt");

k = 7; %7 tried
u = 1.96; %normálne normálové rozdelenie pravdepodobnosti pre 0,975

Xkvad_v = single(chi2inv(0.025,1999999)); %Xi-kvadrat rozdelenie pre 0,975 (1 999 999)
Xkvad_m = single(chi2inv(0.975,1999999)); %Xi-kvadrat rozdelenie pre 0,025 (1 999 999)

najv=max(subor); %najväčšia hodnota v súbore
najm=min(subor); %najmenšia hodnota v súbore
N=size(subor,2); %veľkosť súboru
R=najv-najm; %variačné rozpätie
sirka_int = ceil(R/k*10)/10; %šírka intervalu

intervalarray=[]; %intervaly
xj = []; %reprezentant triedy
nj = []; %absolútna početnosť
Pj = []; %relatívna početnosť

for i = 1:k

    intervalarray = [intervalarray fixed.Interval(najm+sirka_int*(i-1),najm+sirka_int*i,'[)')];
    xj = [xj (intervalarray(i).LeftEnd+intervalarray(i).RightEnd)/2];
    nj = [nj size(find(subor>=intervalarray(i).LeftEnd & subor<intervalarray(i).RightEnd),2)];
    Pj = [Pj nj(i)/N];

end
   
Nj = [nj(1)]; %kumulatívna početnosť
for i = 2:k

    Nj = [Nj nj(i)+Nj(i-1)];

end

Mj = []; %kumulatívna relatívna početnosť
for i = 1:k
    Mj = [Mj Nj(i)/N];
end

s = [];
%prevedenie intervalov na reťazce (kvôli výpisu do tabuľky)
for i = 1:k
    s = [s ("[" + num2str(intervalarray(i).LeftEnd) + "; " + num2str(intervalarray(i).RightEnd) + ")")];
end

Tabulka = table(s', xj', nj', Pj', Nj', Mj', 'VariableNames', {'interval', 'xj', 'nj', 'Pj', 'Nj', 'Mj'});

Ei = 0;
for i = 1:k
    Ei = Ei + xj(i)*nj(i);
end
E = 1/N *Ei; %bodovo odhadnutá stredná hodnota

Di = 0;
for i = 1:k
    Di = Di + ((xj(i)-E)^2)*nj(i);
end
D = 1/(N-1)*Di; %bodovo odhadnutý rozptyl

Sx=sqrt(D); %bodovo odhadnutá smerodajná odchýlka

%intervalový odhad pre strednú hodnotu
mi = fixed.Interval(E-(Sx/sqrt(N))*u,E+(Sx/sqrt(N))*u,'[]');

%intervalový odhad pre rozptyl
sigma_r = fixed.Interval(((N-1)*D)/Xkvad_m,((N-1)*D)/Xkvad_v,'[]');

%intervalový odhad pre smerodajnú odchýlku
sigma = fixed.Interval(sqrt(((N-1)*D)/Xkvad_m),sqrt(((N-1)*D)/Xkvad_v),'[]');


Tabulka

disp("Bodovo odhadnutá stredná hodnota E: " + num2str(E) + ".")
disp("Bodovo odhadnutý rozptyl D: " + num2str(D) + ".")
disp("Bodovo odhadnutá smerodajná odchýlka Sx: " + num2str(Sx) + ".")
disp("Intervalový odhad pre strednú hodnotu [" + num2str(mi.LeftEnd) + "; " + num2str(mi.RightEnd) + "].")
disp("Intervalový odhad pre rozptyl [" + num2str(sigma_r.LeftEnd) + "; " + num2str(sigma_r.RightEnd) + "].")
disp("Intervalový odhad pre smerodajnú odchýlku [" + num2str(sigma.LeftEnd) + "; " + num2str(sigma.RightEnd) + "].")
