spreg.SURerrorGM¶
- class spreg.SURerrorGM(bigy, bigX, w, df=None, regimes=None, nonspat_diag=True, spat_diag=False, vm=False, name_bigy=None, name_bigX=None, name_ds=None, name_w=None, name_regimes=None)[source]¶
User class for SUR Error estimation by Generalized Moments
- Parameters:
- bigy
list
ordictionary
list with the name of the dependent variable for each equation or dictionary with vectors for dependent variable by equation
- bigX
list
ordictionary
list of lists the name of the explanatory variables for each equation or dictionary with matrix of explanatory variables by equation (note, already includes constant term)
- w
spatial
weights
object
- db
Pandas
DataFrame
Optional. Required in case bigy and bigX are lists with names of variables
- regimes
list
List of n values with the mapping of each observation to a regime. Assumed to be aligned with ‘x’.
- nonspat_diagbool
flag for non-spatial diagnostics, default = False
- spat_diagbool
flag for spatial diagnostics, default = False (to be implemented)
- vmbool
flag for asymptotic variance for lambda and Sigma, default = False (to be implemented)
- name_bigy
dictionary
with name of dependent variable for each equation. default = None, but should be specified is done when sur_stackxy is used
- name_bigX
dictionary
with names of explanatory variables for each equation. default = None, but should be specified is done when sur_stackxy is used
- name_ds
str
name for the data set
- name_w
str
name for the weights file
- name_regimes
str
name of regime variable for use in the output
- bigy
- Attributes:
- n
int
number of observations in each cross-section
- n_eq
int
number of equations
- bigy
dictionary
with vectors of dependent variable, one for each equation
- bigX
dictionary
with matrices of explanatory variables, one for each equation
- bigK
array
n_eq x 1 array with number of explanatory variables by equation
- bigylag
dictionary
spatially lagged dependent variable
- bigXlag
dictionary
spatially lagged explanatory variable
- lamsur
float
spatial autoregressive coefficient in ML SUR Error
- bSUR
array
beta coefficients in ML SUR Error
- varb
array
variance of beta coefficients in ML SUR Error
- sig
array
error variance-covariance matrix in ML SUR Error
- bigE
array
n by n_eq matrix of vectors of residuals for each equation
- sur_inf
array
inference for regression coefficients, stand. error, t, p
- surchow
array
list with tuples for Chow test on regression coefficients. each tuple contains test value, degrees of freedom, p-value
- name_bigy
dictionary
with name of dependent variable for each equation
- name_bigX
dictionary
with names of explanatory variables for each equation
- name_ds
str
name for the data set
- name_w
str
name for the weights file
- name_regimes
str
name of regime variable for use in the output
- n
Examples
>>> import libpysal >>> import geopandas as gpd >>> from spreg import SURerrorGM
Open data on NCOVR US County Homicides (3085 areas) from libpysal examples using geopandas.
>>> nat = libpysal.examples.load_example('Natregimes') >>> df = gpd.read_file(nat.get_path("natregimes.shp"))
The specification of the model to be estimated can be provided as lists. Each equation should be listed separately. In this example, equation 1 has HR80 as dependent variable and PS80 and UE80 as exogenous regressors. For equation 2, HR90 is the dependent variable, and PS90 and UE90 the exogenous regressors.
>>> y_var = ['HR80','HR90'] >>> x_var = [['PS80','UE80'],['PS90','UE90']]
To run a spatial error model, we need to specify the spatial weights matrix. To do that, we can open an already existing gal file or create a new one. In this example, we will create a new one from NAT.shp and transform it to row-standardized.
>>> w = libpysal.weights.Queen.from_dataframe(df) >>> w.transform='r'
We can now run the regression and then have a summary of the output by typing: print(reg.summary)
Alternatively, we can just check the betas and standard errors, asymptotic t and p-value of the parameters:
>>> reg = SURerrorGM(y_var,x_var,w=w,df=df,name_ds="NAT",name_w="nat_queen") >>> reg.bSUR {0: array([[3.97746866], [0.89021219], [0.43050363]]), 1: array([[2.93679119], [1.11002826], [0.48761542]])} >>> reg.sur_inf {0: array([[ 0.37251476, 10.67734504, 0. ], [ 0.14224297, 6.25839153, 0. ], [ 0.04322388, 9.95985608, 0. ]]), 1: array([[ 0.33694902, 8.71583245, 0. ], [ 0.13413626, 8.27537783, 0. ], [ 0.04033105, 12.09032288, 0. ]])}
- __init__(bigy, bigX, w, df=None, regimes=None, nonspat_diag=True, spat_diag=False, vm=False, name_bigy=None, name_bigX=None, name_ds=None, name_w=None, name_regimes=None)[source]¶
Methods
__init__
(bigy, bigX, w[, df, regimes, ...])