Repository: statsmodels/statsmodels

Issue:
DOCstrings linear models don't have missing params
```
    """ % {'params' : base._model_params_doc,
           'extra_params' : base._extra_param_doc}
```

this does not include the `base._missing_param_doc`
They are included in RLM and discrete

mailing list March 15: `sm.OLS with missing values (NaN)`



Discussion:

Resolving patch:
diff --git a/statsmodels/base/model.py b/statsmodels/base/model.py
--- a/statsmodels/base/model.py
+++ b/statsmodels/base/model.py
@@ -23,9 +23,9 @@
 _missing_param_doc = """missing : str
         Available options are 'none', 'drop', and 'raise'. If 'none', no nan
         checking is done. If 'drop', any observations with nans are dropped.
-        If 'raise', an error is raised. Default is 'none.'"""
-_extra_param_doc = """
-    hasconst : None or bool
+        If 'raise', an error is raised. Default is 'none.'
+        """
+_extra_param_doc = """hasconst : None or bool
         Indicates whether the RHS includes a user-supplied constant. If True,
         a constant is not checked for and k_constant is set to 1 and all
         result statistics are calculated as if a constant is present. If
diff --git a/statsmodels/regression/linear_model.py b/statsmodels/regression/linear_model.py
--- a/statsmodels/regression/linear_model.py
+++ b/statsmodels/regression/linear_model.py
@@ -249,7 +249,7 @@ class GLS(RegressionModel):
     >>> print gls_results.summary()
 
     """ % {'params' : base._model_params_doc,
-           'extra_params' : base._extra_param_doc}
+           'extra_params' : base._missing_param_doc + base._extra_param_doc}
 
     def __init__(self, endog, exog, sigma=None, missing='none', hasconst=None):
     #TODO: add options igls, for iterative fgls if sigma is None
@@ -370,7 +370,7 @@ class WLS(RegressionModel):
     statistics such as fvalue and mse_model might not be correct, as the
     package does not yet support no-constant regression.
     """ % {'params' : base._model_params_doc,
-           'extra_params' : base._extra_param_doc}
+           'extra_params' : base._missing_param_doc + base._extra_param_doc}
 
     def __init__(self, endog, exog, weights=1., missing='none', hasconst=None):
         weights = np.array(weights)
@@ -472,7 +472,7 @@ class OLS(WLS):
     -----
     No constant is added by the model unless you are using formulas.
     """ % {'params' : base._model_params_doc,
-           'extra_params' : base._extra_param_doc}
+           'extra_params' : base._missing_param_doc + base._extra_param_doc}
     #TODO: change example to use datasets.  This was the point of datasets!
     def __init__(self, endog, exog=None, missing='none', hasconst=None):
         super(OLS, self).__init__(endog, exog, missing=missing,
diff --git a/statsmodels/tsa/base/tsa_model.py b/statsmodels/tsa/base/tsa_model.py
--- a/statsmodels/tsa/base/tsa_model.py
+++ b/statsmodels/tsa/base/tsa_model.py
@@ -32,7 +32,7 @@
 class TimeSeriesModel(base.LikelihoodModel):
 
     __doc__ = _tsa_doc % {"model" : _model_doc, "params" : _generic_params,
-                          "extra_params" : base._missing_param_doc}
+                          "extra_params" : _missing_param_doc}
 
     def __init__(self, endog, exog=None, dates=None, freq=None, missing='none'):
         super(TimeSeriesModel, self).__init__(endog, exog, missing=missing)


Test patch: