Pagina 1 van 1

Gemiddelde afwijking bij verdeling

Geplaatst: 23 sep 2011, 21:04
door VictorG
Stel, je hebt N bakjes en M ballen. Je verdeelt de ballen willekeurig over de bakjes, dat wil zeggen, elke bal heeft een 1/N kans om in bakje i te komen. Het gemiddelde aantal ballen in een bakje is dus M/N.

Mijn vraag is nu: wat is de te verwachten gemiddelde afwijking van dit gemiddelde?

Een voorbeeld, zodat het precies helder is wat ik bedoel. Stel, N = 10, M = 1000, en de bakjes bevatten 80, 86, 90, 95, 99, 101, 105, 110, 116 en 118 ballen. Dan is de gemiddelde afwijking van het gemiddelde (20 + 14 + 10 + 5 + 1 + 1 + 5 + 10 + 16 + 18) / 10 = 10. Mijn vraag is wat de te verwachten gemiddelde afwijking is.

Mijn eerste gedachte was dat je, in ieder geval voor M>>N, een enkel bakje kan zien als een binomiale verdeling met M trials die kans 1/N hebben om te lukken. Voor de binomiale verdeling kan je wel een formule voor de Mean Average Deviation vinden.

Nu zou ik ook voor gevallen dat niet M>>N graag het antwoord weten; maar bovendien kan je de bakjes waarschijnlijk niet als van elkaar onafhankelijke binomiale verdelingen zien. Immers, een grote afwijking van het gemiddelde in het ene bakje correleert met grote afwijkingen van het gemiddelde in andere bakjes.

Kan iemand mij hierbij helpen?

Re: Gemiddelde afwijking bij verdeling

Geplaatst: 27 sep 2011, 08:33
door arie
Zie http://mathworld.wolfram.com/MeanDeviation.html:
De M.D. voor de binomial distribution is:



Waarbij de floor-functie is op x (afkappen van getallen naar de grootste gehele waarde kleiner of gelijk aan x, bv: floor(3.82) = 3)

Voor je voorbeeld, met
- N=1000 ballen
- en 10 bakken, waardoor p = 1/10 = 0.1
kom je uit op:
MD =

Deze formule geldt ook als het aantal bakken en/of het aantal ballen klein is.
Het bewijs hiervoor zou je in de literatuur terug moeten kunnen vinden.

Als je kan programmeren en snel wat waarden wilt controleren kan dit met onderstaand Pari/GP programma:

Code: Selecteer alles

\\----------------------------------------
\\ bepaal de gemiddelde afwijking
\\ voor M ballen in N geindexeerde bakken
\\ M>=0, N>=1
\\----------------------------------------

gemafw(N,M)={

\\toon uitgangswaarden:
print("N = aantal bakken = ",N);
print("M = aantal ballen = ",M);
G=1.0*M/N;
print("gemiddelde = ",G);

\\definieer de 2 vectoren:
afwsom=vector(M);
aantal=vector(M);

\\initieer de 2 vectoren met waarden voor 1 bak:
for(i=1,M,
  afwsom[i]=abs(i-G);
  aantal[i]=1;
  );

\\bepaal de 2 vectoren voor 2..N bakken:
for(j=2,N,
  forstep(i=M,1,-1,
    \\niets in de laatste bak: update afwsom[i]:
    afwsom[i]+=aantal[i]*G;
    \\alle i in de laatste bak: update afwsom[i] en aantal[i]:
    afwsom[i]+=(j-1)*G+abs(i-G);
    aantal[i]+=1;
    \\(i-k) ballen in de laatste bak:
    for(k=1,i-1,
      b=binomial(i,k);
      afwsom[i]+=b*(afwsom[k]+aantal[k]*abs(i-k-G));
      aantal[i]+=b*aantal[k];
      );
    );
  );

\\toon resultaat:
print("--------------------------------------------");
print("gemiddelde afwijking van het gemiddelde:");
r=afwsom[M]/(aantal[M]*N);
print(r, " (calculated)");

\\bereken M.D. voor de binomial distribution:
p=1.0/N;
x=floor(M*p);
md=2*(1-p)^(M-x)*p^(x+1)*(x+1)*binomial(M,x+1);
print(md, " (binomial MD)");
}


\\MAIN:
{
gemafw(3,8);
}
Bijvoorbeeld:
Het resultaat voor 3 bakken en 8 ballen is:
1.092516384697454656302392928 (calculated)
1.092516384697454656302392928 (binomial MD)

Re: Gemiddelde afwijking bij verdeling

Geplaatst: 27 sep 2011, 23:01
door VictorG
Geweldig, dank je!