# estimation.feglm_.Feglm

    estimation.feglm_.Feglm(
        self,
        FixestFormula,
        data,
        ssc_dict,
        drop_singletons,
        drop_intercept,
        weights,
        weights_type,
        collin_tol,
        fixef_tol,
        lookup_demeaned_data,
        tol,
        maxiter,
        solver,
        store_data=True,
        copy_data=True,
        lean=False,
        sample_split_var=None,
        sample_split_value=None,
        separation_check=None,
        context=0,
    )

Abstract base class for the estimation of a fixed-effects GLM model.

## Methods

Name | Description
--- | ---
get_fit | Fit the GLM model via iterated weighted least squares.
predict | Return predicted values from regression model.
prepare_model_matrix | Prepare model inputs for estimation.
residualize | Residualize v and X by flist using weights.
to_array | Turn estimation DataFrames to np arrays.

### get_fit

    estimation.feglm_.Feglm.get_fit()

Fit the GLM model via iterated weighted least squares.

All equations in the code refer to Stammann ‘Fast and Feasible Estimation of Generalized Linear Models with High-Dimensional k-way fixed effects’: https://arxiv.org/pdf/1707.01815

### predict

    estimation.feglm_.Feglm.predict(
        newdata=None,
        atol=1e-06,
        btol=1e-06,
        type='link',
    )

Return predicted values from regression model.

Return a flat np.array with predicted values of the regression model. If new fixed effect levels are introduced in `newdata`, predicted values for such observations will be set to NaN.

#### Parameters

Name | Type | Description | Default
--- | --- | --- | ---
newdata | Union[None, pd.DataFrame] | A pd.DataFrame with the new data, to be used for prediction. If None (default), uses the data used for fitting the model. | `None`
atol | Float | Stopping tolerance for scipy.sparse.linalg.lsqr(). See https://docs.scipy.org/doc/ scipy/reference/generated/scipy.sparse.linalg.lsqr.html | `1e-6`
btol | Float | Another stopping tolerance for scipy.sparse.linalg.lsqr(). See https://docs.scipy.org/doc/ scipy/reference/generated/scipy.sparse.linalg.lsqr.html | `1e-6`
type | str | The type of prediction to be computed. Can be either “response” (default) or “link”. If type=“response”, the output is at the level of the response variable, i.e., it is the expected predictor E(Y|X). If “link”, the output is at the level of the explanatory variables, i.e., the linear predictor X @ beta. | `'link'`
atol | Float | Stopping tolerance for scipy.sparse.linalg.lsqr(). See https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.lsqr.html | `1e-6`
btol | Float | Another stopping tolerance for scipy.sparse.linalg.lsqr(). See https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.lsqr.html | `1e-6`

#### Returns

Name | Type | Description
--- | --- | ---
| np.ndarray | A flat array with the predicted values of the regression model.

### prepare_model_matrix

    estimation.feglm_.Feglm.prepare_model_matrix()

Prepare model inputs for estimation.

### residualize

    estimation.feglm_.Feglm.residualize(v, X, flist, weights, tol)

Residualize v and X by flist using weights.

### to_array

    estimation.feglm_.Feglm.to_array()

Turn estimation DataFrames to np arrays.