Bei zwei (mehr -) dimensionalen Tabellen, bei denen der Laufindex der "inneren" Schleife eine Funktion des äußeren Index ist, muß der innere Index immer kleiner sein als der äußere. Hier geht es so wie beabsichtigt:

n=4;M=6;
Table[{i,j},{i,0,n},{j,0,M-i}];
%//MatrixForm

Wenn aber n > M wird, werden die entsprechenden Element unterdrückt :

n=6;M=4;
Table[{i,j},{i,0,n},{j,0,M-i}];
%//MatrixForm

Bei Summen ist es genauso. Hier die Doppelsumme über die Häufigkeiten h1 und h2:

n=4;M=6;
s1=Sum[h1[i]h2[j],{i,0,n},{j,0,M-i}]

Anders geschrieben

Collect[s1,h1[_]]

Wenn aber n > M ist  fehlen die Terme mit negativen Indices, äquivalent zu dem Resultat bei der Table oben, was aber im Falle der Häufigkeiten bzw. des statistischen Problems erwünscht ist.

n=6;M=4;
s2=Sum[h1[i]h2[j],{i,0,n},{j,0,M-i}]

Für den Fall, dass man auch die Terme mit negativen Indices haben will, muss man anders vorgehen. Eine Lösung des Problems ist, dass man in den Iteratoren für eine entsprechende Reihenfolge von imin und imax sorgt:

n=6;M=4;
T1=Table[{i,j},{i,0,n},{j,Min[0,M-i],Max[0,M-i]}];
%//MatrixForm

bzw. für die  Summe

n=6;M=4;
s2a=Sum[h1[i]h2[j],{i,0,n},{j,Min[0,M-i],Max[0,M-i]}]

oder aber, wie  Udo und Susanne Krause unter Berücksichtigung der vollständigen Form des Iterators, nämlich { i, imin, imax, incr } , vorschlagen, das Inkrement geschickt anzupassen. Leider funktioniert das in (meiner) Version 7 aber nicht:

n=6;M=4;
Table[{i,j},{i,0,n},{j,0,M-i,Sign[M-i]}];
%//MatrixForm

Definiere ich aber meine eigene - zugegeben etwas merkwürdige  was den Fall 0 angeht - Signum-Funktion, geht auch das. Wobei die interessante Frage ist, warum (man kann für Null auch 1000 oder ein (noch nicht definiertes) Symbol wie a einsetzen):

Clear[sgn];sgn[x_]:=Which[x>0,1,x==0,Null,x<0,-1]
n=6;M=4;
T2=Table[{i,j},{i,0,n},{j,0,M-i,sgn[M-i]}];
%//MatrixForm

T1 von oben und T2 sind gleich :

Sort[Flatten[T1,1]] -Sort[Flatten[T2,1]]

Hier die anderen Varianten von sgn

Clear[sgn];
sgn[x_]:=Which[x>0,1,x==0,1000,x<0,-1]
n=6;M=4;
Table[{i,j},{i,0,n},{j,0,M-i,sgn[M-i]}];
%//MatrixForm

Clear[sgn];
sgn[x_]:=Which[x>0,1,x==0,a,x<0,-1]
n=6;M=4;
Table[{i,j},{i,0,n},{j,0,M-i,sgn[M-i]}];
%//MatrixForm

Schreibe ich aber die "richtige" Form für sgn, geht es schief

Clear[sgn];
sgn[x_]:=Which[x>0,1,x==0,0,x<0,-1]
n=6;M=4;
Table[{i,j},{i,0,n},{j,0,M-i,sgn[M-i]}];
%//MatrixForm

Hat jemand eine Idee, was hier passiert?

P.S.  Die Summen werden auch richtig berechnet. Zum Beispiel (siehe s2a von oben) :

Clear[sgn];
sgn[x_]:=Which[x>0,1,x==0,a,x<0,-1]
n=6;M=4;
s3=Sum[h1[i]h2[j],{i,0,n},{j,0,M-i,sgn[M-i]}]
s3-s2a