I am trying to apply bootstrapping on several regression models to obtain SEs of parameters. My question is about preparing the bootstrapping samples in proper manner.
The data I am working on are about concentration of certain contaminant in fish body ($C$, continuous). The data are secondary sampling data and compiled from many different sampling program. Other important variables in this dataset include:
length of fish sample ($Length$, continuous);
fish species($Species$, categorical variable with ~30 levels);
sampling location($Lake$, categorical variable with ~ 100 levels);
sampling time($Year$, categorical variable with ~ 10 levels).
For instance, if the regression model I am using looks like:
$$ C = \beta_1Length\ + \beta_2Species\ + \beta_3Lake\ + \beta_4Year\ + \epsilon $$
As you can see, bootstrapping on this model to estimate the $SE$ of all $\beta s$ faces a common problem: certain variable(e.g., $Species$) only has few observations for certain level(e.g., $sunfish$), if I am using simple random sample on all observations, I may lose those specific observations in my bootstrapping sample and therefore no estimates generated in that run.
Actually, I am able to use stratified sampling on my data and make sure each bootstrapping sample include all levels of all categorical variables(i.e., $Species$, $Lake$ and $Year$).
So my question comes:
(1) Since this stratified sampling is just for satisfying the estimation requirements in terms of model specification rather than reproducing the real sampling process (there is no way to see how real sample is done since this dataset is complied), is it legitimate to use stratified sampling here?
(2) How much the bias would be if I only stratified sample on only one categorical variable, say $Species$?
(3) Since the dataset are highly unbalanced: lake A may have 2 different kinds of fish obs. covering 10 years while lake B has 5 kinds of fish obs. covering only 3 years, Is it possible to assume any clusters among those three categorical variables?
I have read some literature on bootstrap sampling, but I am not sure the correct way dealing with compiled dataset.