addpath c:\opetus\matlab\
%addpath /home/apiola/opetus/peruskurssi/v2-3/matlab/
% 18.11.01
format compact
luokat=74.5:5:99.5
x=[89 84 87 81 89 86 91 90 78 89 87 99 83 89]
[m,y]=hist(x,luokat)  % Ei tästä nyt ota tolkkua!
% Pakko tehdä oma funktio "luokittele", no tehtiin!
help luokittele
18.11.01
  arvot: lukuarvojen vektori
  luokat: Vektori, jossa luokkarajat
  Esim:
  x=[89 84 87 81 89 86 91 90 78 89 87 99 83 89]
  luokat=[74.5:5:99.5]
  [fr,kp]=luokittele(x,luokat)
  bar(kp,fr)
suhtfr=fr/length(x)
%suhtfr =
%    0.0714    0.2143    0.5000    0.1429    0.0714
sum(suhtfr)
%ans =
%     1
bar(kp,suhtfr)    % vrt. KRE Fig. 476 s. 1051
ylim([0,1])
grid

% Muodostetaan tasavälinen luokkajako:
xmin=min(x); xmax=max(x);
a=xmin-0.5;b=xmax+0.5;
luokat=linspace(a,b,6)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function z=tasaluokat(x,n)
xmin=min(x); xmax=max(x);
a=xmin-0.5;b=xmax+0.5;
z=linspace(a,b,n+1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[fr,lk]=luokittele(x,tasaluokat(x,10))
bar(lk,fr)

%%%%%%%%%
y=[89 84 87 81 89 86 91 90 78 89 87 99 83 89]
n=length(y)
y=sort(y)
luokat=[75:5:95;79:5:99]
[kaksi,m]=size(luokat)
lkm=m
painot=zeros(1,lkm)
for i=1:n
   for j=1:lkm
    if (y(i) >= luokat(1,j)) & (y(i) <= luokat(2,j))
       painot(j)=painot(j)+1;
    end
 end
end
relf=painot/n
papainot=[painot;painot]
plot(luokat(:),papainot(:));shg

clf;hold on;
for j=1:lkm
   plot(luokat(:,j),papainot(:,j))
end

ylim([0,8])

% Laita vielä pystyviivat.


cumsum(painot)

%%%%%%%%%%% 23.8.00 %%%%%%%%%%%%%%%%%%%%%%%
% Aloitetaan hist:sta. helwin hist ja www-helppiin:

%n = hist(Y,x) where x is a vector, returns the distribution of Y among 
%length(x) bins with centers specified by x. 
%For example, if x is a 5-element vector, hist distributes the elements of Y 
%into five bins centered on the x-axis at the elements in x. 
%Note: use histc if it is more natural to specify bin edges instead of centers. 

%Tehtiin funktio luokittele.m, mutta ei liene tarpeen, kenties sittenkin,
%  koska histc on hieman omituinen.

y=[89 84 87 81 89 86 91 90 78 89 87 99 83 89]
xk=[77 82 87 92 97]
hist(y,xk)  % piirtää histon.
fr=hist(y,xk) % palauttaa frekvenssit.    
   
[fr,xout]=hist(y,xk);
bar(xout,fr);shg

%%% Älä käytä !
%edges=[75 80 85 90 95 100]
%histc(y,edges)

% Tässä on hallittu luokittelu ja histo mielivaltaisille luokille::

clf
luokat=[75:5:95;79:5:99]
fr=luokittele(y,luokat)
xk=sum(luokat)/2
bar(xk,fr)

stairs

% Jos halutaan laskea kunkin arvon frekvenssi, niin näin:
y=sort(y)
fr=luokittele(y,[y;y])

bar(y,fr)  % piirtää asianmukaiset viivat, mutta antaa virheilmon.

Removing outliers: User's Guide s. 6-14

suhtfr=fr/length(y)
suhtfr =
    0.0714    0.2143    0.5000    0.1429    0.0714
sum(suhtfr)
ans =
     1
bar(xk,suhtfr)    % vrt. KRE Fig. 476 s. 1051
ylim([0,1])
grid
%Basic data anal. fns:
%%%%%%%%%%%%%%%%%%%%%

Usgui 6-7:
max,min,mean,median,std,sort,sortrows,sum,prod,diff,trapz,cumsum,
cumprod,cumtrapz

function luku=mediaani(v)
n=length(v);
i=(n+1)/2;i1=floor(i);i2=ceil(i);
luku=(v(i1)+v(i2))/2;

function [qu,qm,ql]=kvartiilit(v)
n=length(v);
i=(n+1)/4;i1=floor(i);i2=ceil(i);
ql=(v(i1)+v(i2))/2;
i=(n+1)/2;i1=floor(i);i2=ceil(i);
qm=(v(i1)+v(i2))/2;
i=3*(n+1)/4;i1=floor(i);i2=ceil(i);
qu=(v(i1)+v(i2))/2;

function z=keskiarvo(x)
z=sum(x(:))/length(x(:));

function z=varianssi(x)
n=length(x);
a=sum(x)/n;
z=sum((x-a).^2)/(n-1);

% Covariance and corr coeff
%%%%%%%%%%%%%%%%%%%%%%%%%%%

cov, corrcoeff

% Removing outliers
mu=mean(y)
sigma=std(y)

n=length(y)

outliers=abs(y-mu*ones(1,n))>3*sigma(ones(1,n))
nout=sum(outliers)

y(any(outliers))=[];

% Tällä kriteerillä ei löydy outliereita. Jos lievennetään vaikka muotoon:

outliers=abs(y-mu*ones(1,n))>2*sigma(ones(1,n))

% saadaan 99 outlieriksi.

% Tehtiin vielä viivat.m
                %%%%%%%%
%%%%%%%%%%%%%%%%%
y=[89 84 87 81 89 86 91 90 78 89 87 99 83 89]
y=sort(y);
fr=luokittele(y,[y;y])
viivat(fr,y); %Harkitse arg. järj.
stem(y,fr)
pie(fr,fr>2)
pareto(y,fr)   % mieti, kummassa enemmän järkeä
pareto(fr,y)   %

% Nopanheittoarvot:

viivat(ones(1,6)/6,1:6)

y=cumsum(ones(1,6)/6);
x=1:6;
stairs(x,y)
xlim([0,7])
ylim([-.1,1.1])
grid

% Esimerkkejä Eva-And: ss. 122- 127




