  Resampling is a standard step in particle filters and more generally
sequential Monte Carlo methods. We present an algorithm, called chopthin, for
resampling weighted particles. In contrast to standard resampling methods the
algorithm does not produce a set of equally weighted particles; instead it
merely enforces an upper bound on the ratio between the weights. Simulation
studies show that the chopthin algorithm consistently outperforms standard
resampling methods. The algorithms chops up particles with large weight and
thins out particles with low weight, hence its name. It implicitly guarantees a
lower bound on the effective sample size. The algorithm can be implemented
efficiently, making it practically useful. We show that the expected
computational effort is linear in the number of particles. Implementations for
C++, R (on CRAN), Python and Matlab are available.
