you can follow the pattern of `GLM.__init__` 
add groups and time as keyword arguments to the super `__init__` call, and it will automatically check all arrays that have the same length as endog and exog for missing values at the same time, and drop the missing values in all of them, endog, exog, group and time.
In the GLM case, offset and exposure are extra (nobs, ) arrays.

GLM uses `self._check_inputs(family, offset, exposure, endog)` to verify the extra inputs. 
Because the generic missing handling uses the length of the arrays to identify extra data variables, it cannot and doesn't verify that users used the right shape for those variables.