spreg.GM_ErrorPooled

class spreg.GM_ErrorPooled(y, x, w, slx_lags=0, slx_vars='all', time_effects=False, nonspat_diag=True, max_iter=1, step1c=False, vm=False, name_y=None, name_x=None, name_w=None, name_ds=None, latex=False)[source]

Pooled Spatial Error Model (SEM) for Panel Data via GMM.

Parameters:
yarray or pandas DataFrame

n*tx1 or nxt array for dependent variable

xarray or pandas DataFrame

Two dimensional array or DF with n*t rows and k columns for independent (exogenous) variable or n rows and k*t columns (note, must not include a constant term)

wspatial weights object

Spatial weights matrix, nxn

slx_lagsinteger

Number of spatial lags of X to include in the model specification. If slx_lags>0, the specification becomes of the SLX type.

slx_varseither “All” (default) or list of booleans to select x variables

to be lagged

time_effectsbool

If True, then include time dummies in the model specification (first omitted). Default: False

nonspat_diagbool

If True (default), then compute the ‘LMC_RE’ BSK test.

max_iterint

Maximum number of iterations of steps 2a and 2b from [ADKP10].

step1cbool

If True, then include Step 1c from [ADKP10].

vmbool

If True, include variance-covariance matrix in summary results

name_ystr or list of strings

Name of dependent variable for use in output

name_xlist of strings

Names of independent variables for use in output

name_wstr

Name of weights matrix for use in output

name_dsstr

Name of dataset for use in output

latexbool

Specifies if summary is to be printed in latex format

Attributes:
outputdataframe

regression results pandas dataframe

summarystr

Summary of regression results and diagnostics (note: use in conjunction with the print command)

betasarray

kx1 array of estimated coefficients

uarray

nx1 array of residuals

predyarray

nx1 array of predicted y values

ninteger

Number of observations

tinteger

Number of time periods

kinteger

Number of variables for which coefficients are estimated (including the constant)

yarray

nx1 array for dependent variable

xarray

Two dimensional array with n rows and one column for each independent (exogenous) variable, including the constant

vmarray

Variance covariance matrix (kxk)

name_ystr

Name of dependent variable for use in output

name_xlist of strings

Names of independent variables for use in output

name_wstr

Name of weights matrix for use in output

name_dsstr

Name of dataset for use in output

Examples

>>> import libpysal
>>> import geopandas as gpd
>>> from spreg import GM_ErrorPooled

In this example, we will use data on NCOVR US County Homicides (3085 areas) included in libpysal.

>>> libpysal.examples.load_example('NCOVR')
>>> db = gpd.read_file(libpysal.examples.get_path("NAT.shp"))
>>> name_ds = "NCOVR.shp"

Extract the HR (homicide rates) data in the 70’s, 80’s and 90’s from the dataframe and make it the dependent variable for the regression. Note that the data can also be passed in the long format instead of wide format (i.e. a vector with n*t rows and a single column for the dependent variable and a matrix of dimension n*txk for the independent variables).

>>> y_name = ['HR70','HR80','HR90']
>>> y = db[y_name]

Extract RD and PS in the same time periods from the dataframe to be used as independent variables in the regression. IMPORTANT: The data must be organized in a way that all time periods of a given variable are side-by-side and in the correct time order. That is: x[:, 0:T] refers to T periods of k1, x[:, T+1:2T] refers to k2, etc. By default a vector of ones will be added to the independent variables passed in.

>>> x_names = ['RD70','RD80','RD90','PS70','PS80','PS90']
>>> x = db[x_names]

Since we are running a spatial model, we need to specify the spatial weights matrix that includes the spatial configuration of the observations. To do that, we can open an already existing gal file or create a new one. In this case, we will create one from NAT.shp.

>>> w = libpysal.weights.Queen.from_dataframe(db, use_index=True)
>>> w.transform = 'r'
>>> name_w = "NCOVR.gal"

We are all set with the preliminaries, we are good to run the model.

>>> reg = GM_ErrorPooled(y, x, w)

Once we have run the model, we can explore a little bit the output with the command print(reg.summary).

__init__(y, x, w, slx_lags=0, slx_vars='all', time_effects=False, nonspat_diag=True, max_iter=1, step1c=False, vm=False, name_y=None, name_x=None, name_w=None, name_ds=None, latex=False)[source]

Methods

__init__(y, x, w[, slx_lags, slx_vars, ...])

Attributes

mean_y

std_y

property mean_y
property std_y