I would like to know how R chooses its starting coefficient vector for a GLM when its start argument is left blank and defaults to NULL. For my personal implementation of a GLM, I have simply initialized $ \boldsymbol \beta_0 $ to be all $1$s. However, while this generally is fine, it can cause the iterative algorithm to diverge.
Basically, I am just looking for a simple algorithm/formula that takes into consideration the data points and family of the GLM to choose the original coefficient vector, $ \boldsymbol \beta_0 $.