Z transform - Inverse System function - Why number of poles and zeros myst be equal?
Regardless of causality and stability, if you count poles and zeros at the origin and at infinity, the total number of poles always equals the total number of zeros. I'll show a few examples to make this obvious.

First, take a polynomial

$$P(z)=(z-z_0)(z-z_1)\ldots (z-z_M)\tag{1}$$

It has $M+1$ zeros and no (finite) poles. However, it must have $M+1$ poles at $z=\infty$ (because of the term $z^{M+1}$).

Next consider an "all-pole" function

$$A(z)=\frac{1}{(z-z_0)(z-z_1)\ldots (z-z_N)}\tag{2}$$

with $N+1$ poles and no (finite) zeros. Clearly, due to the $N+1$ poles, the function $A(z)$ in $(2)$ has $N+1$ zeros at infinity, because of the term $z^{N+1}$ in the denominator.

In general, if you have

$$H(z)=\frac{(z-z_{0,0})(z-z_{0,1})\ldots (z-z_{0,M})}{(z-z_{\infty,0})(z-z_{\infty,1})\ldots (z-z_{\infty,N})}\tag{3}$$

and if $M&gt;N$, you get $M-N$ poles at infinity. For $M&lt;N$, you have $N-M$ zeros at infinity. Consequently, in all cases the number of poles equals the number of zeros if poles and zeros at infinity are included.