Sorry for late reply.

It seems there is nothing with how big the data sets are. I found that it produces complex number if n includes the number 29 or 30. It's wired and how to avoid?

there is another problem, e.g.

n = Table[{140, 80, 57, 41, 31, 24, 20, 16, 13, 11, 10, 8, 7, 6, 5, 4, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1}];

f[j_,r_,x_,a_] := ((r x)^(n[[j]])Gamma[a + 1]Gamma[n[[j]]] Hypergeometric2F1[n[[j]],n[[j]], n[[j]] + a, x - r x])/(x n[[j]] Gamma[n[[j]] + a](HypergeometricPFQ[{1, 1, 1}, {2, 1 + a},x] - (1 - r)HypergeometricPFQ[{1, 1, 1}, {2, 1 + a}, x - r x]))

L[r_, x_, a_] := Sum[Log[f[j, r, x, a]], {j, 1, Length[n]}];

NMaximize[{L[x, r, a], 0 < x, x < 1, 0 < r, r < 1, a > 0}, {x, r, a}]

I could get

[{-104.58775961606352, {x -> 0.999994961009502, r -> 0.9875898138152072, a -> 0.0519802559956126}}]

But if I change the range of r, e.g. r<0.5 or other values. I always get: SystemException["MemoryAllocationFailure"

Do you know why?

Cheers,

xdu