7. ura (plan): statistična analiza populacije na podlagi vzorca

forum v pomoč delavnici UR
Post Reply
alesB
Site Admin
Posts: 33
Joined: Tue Jul 12, 2022 8:43 am

7. ura (plan): statistična analiza populacije na podlagi vzorca

Post by alesB »

Pri kontroli kvalitete ali anketnih rezultatih nas zanima zanesljivost ocene,
ki jo dobimo na podlagi vzorčenja. Drugača povedano: če testiramo zgolj
en artikel/osebek izvemo premalo, da bi testirali vse, pa ne gre (lahko,
da nimamo časa ali da se pri testiranju uničijo).

Zato želimo testirati čimmanj primerkov, a kljub temu dovolj, da se lahko
zanesemo (stopnja zaupanja) na rezultat.

Delali bomo v diskretnem s hipergeometrično porazdelitvijo, začeli bomo
z majhnimi populacijami reda 10, nadaljevali s tistimi reda 1000 in na koncu
obdelali tiste velikosti 10 miljonov. Pri tem bomo prilagajali programe,
da bodo izračun zmogli - tako časovno kot glede na velikost vmesniih rezultatov.

V praksi so že za populacije reda nekaj deset tisoč v uporabi zvezne porazdelitve,
eksponentna, Poissonova ali normalna (Gaussova), pač v odvisnosti od
porazdelitve slučajne spremenljivke.

Osnovna funkcija za binomski koeficient, ki jo bomo rabili:

Code: Select all

function [bk]=binom1(n,m)
  bk=factorial(n)/(factorial(n-m)*factorial(m));
end
njena nadgradnja binom2.m

Code: Select all

function [bk]=binom2(n,m)
 if m>n/2
	 a=prod(linspace(m+1,n,n-m));
	 b=prod(linspace(1,n-m,n-m));
 else
	 a=prod(linspace(n-m+1,n,m));
	 b=prod(linspace(1,m,m));
 end
 bk=a/b;
end
in najbolj dodelana binom3:

Code: Select all

function [bk]=binom3(n,m)
 if m>n 
  bk=0;
 else
  if m>n/2
	 aa=linspace(m+1,n,n-m);
	 bb=linspace(1,n-m,n-m);
  else
	 aa=linspace(n-m+1,n,m);
	 bb=linspace(1,m,m);
  end
  ab=aa./bb;
  bk=prod(ab);
 end 
end
Poskusite, do katerih vrednosti vam vrnejo smiselne rezultate.
Meni po vrsti do okrog n=170, 260 in 1030, kjer je m=fix(n/2).

lpa
alesB
Site Admin
Posts: 33
Joined: Tue Jul 12, 2022 8:43 am

Re: 7. ura (plan): statistična analiza vzorca

Post by alesB »

Rabili bomo tudi naslednji datoteki:

Code: Select all

function [pM]=getpM(N,M,n,m)
 st=binom3(M,m)*binom3(N-M,n-m);
 im=0;
 for k=m:N-n+m
  im=im+binom3(k,m)*binom3(N-k,n-m);
 end
 pM=st/im;
end

Code: Select all

function [pp]=getpszara(N,n,m)
 for M=0:N
  pp(M+1)=getpM(N,M,n,m);
 end
end
Shranite ju kot funkciji, torej kot m-datoteki z ustreznimi imeni.

lpa
Post Reply