How to improve sampling in case of n_eff rather low?

Ok,
So with default numpyro version I get

scipy.linalg.eigvalsh(cov_mtx @ cov_mtx.T)
array([3.83983388e-05, 4.65340486e-05, 6.91931066e-05, 8.96049148e-05,
       1.40020191e-04, 2.04647600e-04, 2.21610850e-04, 3.13116108e-04,
       4.24430683e-04, 4.34722115e-04, 6.63581353e-04, 8.59684905e-04,
       1.24136592e-03, 1.94184297e-03, 2.19267430e-03, 2.73803374e-03,
       8.53066369e-03, 1.06220697e-02, 1.66424332e-02, 1.76046482e-02,
       5.60047983e-02])

while with ‘tiny’ add

array([0.00110434, 0.00118957, 0.00125707, 0.00192099, 0.00276472,
       0.00318466, 0.00367067, 0.00396311, 0.004351  , 0.00457785,
       0.00492745, 0.00531568, 0.00599618, 0.00659526, 0.00686332,
       0.00895719, 0.00987089, 0.01077368, 0.01156738, 0.01361659,
       0.03144244])

One can argue that the second matrix is better conditionned as the ratio lambda_max/lambda_min is 28 against 1458.

1 Like