For simplicity, let $(R,m)$ be a Noetherian local ring and $I$ an $m$-primary ideal. The Hilbert function of $I$ is defined as $$ H_I(n): \mathbb{Z}_{\ge 0} \to \operatorname{length}_{R/m} I^n / I^{n+1}.$$
If the dimension of $R$ is $d$, then for large $n$, $H_I(n)$ behaves as a polynomial of degree $d-1$. We call this the Hilbert polynomial and write $P_I(n)$.
I would like to know how to obtain $P_I(n)$ from some known values of $H_I(n)$. If we know $H_I(n)$ for $d$ different (or consecutive) values of $n$, then we may use the polynomial interpolation to obtain a candidate $P'_I(n)$ for the Hilbert Polynomial. What is an effective way to check that $P'_I(n) = P_I(n)$ given that we can compute $H_I(n)$ for some "small" $n$?
Theoretically there exists a number $s$ such that $H_I(n) = P_I(n)$ for all $n > s$ (the Hilbert series can be used to obtain this). Therefore, one can work with large enough values for the interpolation. However, in practice computing large values of $H_I(n)$ is usually an expensive task.
Question: Maybe the question I am interested in is, under what assumptions do those $d$ different values of $H_I(n)$ provides $P_I(n)$ "most of the time"?
If this is too easy, then I would like to know if one can do the same for other filtrations such as ${I_n}$ where $I_n = \overline{I^n}$ the integral closure of $I^n$.