Hi!
Before stumbling upon your package, I had implemented mean-centered task PLS on my own.
This gave me the opportunity to actually check that my implementation was coherent with yours, and this really reassured me. Thank you a lot!
The only major difference I have noticed is that in gen_bootsamp you added a couple of checks:
- it makes sure the samples have at least 50% unique subjects
|
if np.unique(boot[curr_grp]).size >= min_subj: |
- it tries to enforce the bootstrap to contain no duplicated samples. This constrain is dropped if it could not find a unique sample after 500 attempts
|
# make sure bootstrap is not a duplicated sequence |
I would like to have your perspective on a few points! I'd be grateful if you took the time to explain me your choice 🙏 .
Namely:
- why did you make these 2 implementation choices? I think I understand the reasoning behind it (i.e. prevent "degenerate" samples & force the maximum exploration of the sample space), however I did not find any theoretical justification in the McIntosh papers I have read so far (McIntosh & Lobaugh 2004, Krishnan et al. 2011 and Kovacevic et. al 2013)
- Have you considered allowing to disable these two constraints?
- Alternatively, do you think we can make preventive checks? (e.g. choosing N subjects from group of size N, means that there cannot be than
math.comb(2*N-1,N))
Can we guide the sampling mechanism towards a more efficient sampling, without bruteforcing & scrapping?
Hi!
Before stumbling upon your package, I had implemented mean-centered task PLS on my own.
This gave me the opportunity to actually check that my implementation was coherent with yours, and this really reassured me. Thank you a lot!
The only major difference I have noticed is that in
gen_bootsampyou added a couple of checks:pypyls/pyls/base.py
Line 139 in e0ff056
pypyls/pyls/base.py
Line 144 in e0ff056
I would like to have your perspective on a few points! I'd be grateful if you took the time to explain me your choice 🙏 .
Namely:
math.comb(2*N-1,N))Can we guide the sampling mechanism towards a more efficient sampling, without bruteforcing & scrapping?