spreg.SURerrorML¶

class
spreg.
SURerrorML
(bigy, bigX, w, regimes=None, nonspat_diag=True, spat_diag=False, vm=False, epsilon=1e07, name_bigy=None, name_bigX=None, name_ds=None, name_w=None, name_regimes=None)[source]¶ User class for SUR Error estimation by Maximum Likelihood
 Parameters
 bigydictionary
with vectors of dependent variable, one for each equation
 bigXdictionary
with matrices of explanatory variables, one for each equation
 wspatial weights object
 regimeslist
default = None. List of n values with the mapping of each observation to a regime. Assumed to be aligned with ‘x’.
 epsilonfloat
convergence criterion for ML iterations. default 0.0000001
 nonspat_diagboolean
flag for nonspatial diagnostics, default = True
 spat_diagboolean
flag for spatial diagnostics, default = False
 vmboolean
flag for asymptotic variance for lambda and Sigma, default = False
 name_bigydictionary
with name of dependent variable for each equation. default = None, but should be specified is done when sur_stackxy is used
 name_bigXdictionary
with names of explanatory variables for each equation. default = None, but should be specified is done when sur_stackxy is used
 name_dsstring
name for the data set
 name_wstring
name for the weights file
 name_regimesstring
name of regime variable for use in the output
Examples
First import libpysal to load the spatial analysis tools.
>>> import libpysal >>> from libpysal.examples import load_example >>> from libpysal.weights import Queen >>> import spreg >>> np.set_printoptions(suppress=True) #prevent scientific format
Open data on NCOVR US County Homicides (3085 areas) using libpysal.io.open(). This is the DBF associated with the NAT shapefile. Note that libpysal.io.open() also reads data in CSV format.
>>> nat = load_example('Natregimes') >>> db = libpysal.io.open(nat.get_path('natregimes.dbf'), 'r')
The specification of the model to be estimated can be provided as lists. Each equation should be listed separately. 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']] >>> yend_var = [['RD80'],['RD90']] >>> q_var = [['FP79'],['FP89']]
The SUR method requires data to be provided as dictionaries. PySAL provides the tool sur_dictxy to create these dictionaries from the list of variables. The line below will create four dictionaries containing respectively the dependent variables (bigy), the regressors (bigX), the dependent variables’ names (bigyvars) and regressors’ names (bigXvars). All these will be created from th database (db) and lists of variables (y_var and x_var) created above.
>>> bigy,bigX,bigyvars,bigXvars = spreg.sur_dictxy(db,y_var,x_var)
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 rowstandardized.
>>> w = Queen.from_shapefile(nat.get_path("natregimes.shp")) >>> 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 pvalue of the parameters:
>>> reg = spreg.SURerrorML(bigy,bigX,w=w,name_bigy=bigyvars,name_bigX=bigXvars,name_ds="NAT",name_w="nat_queen") >>> reg.bSUR {0: array([[4.02228606], [0.88489637], [0.42402845]]), 1: array([[3.04923031], [1.10972632], [0.47075678]])}
>>> reg.sur_inf {0: array([[ 0.36692175, 10.96224484, 0. ], [ 0.14129077, 6.26294545, 0. ], [ 0.04267954, 9.93516909, 0. ]]), 1: array([[ 0.33139967, 9.20106629, 0. ], [ 0.13352591, 8.31094381, 0. ], [ 0.04004097, 11.75687747, 0. ]])}
 Attributes
 nint
number of observations in each crosssection
 n2int
n/2
 n_eqint
number of equations
 bigydictionary
with vectors of dependent variable, one for each equation
 bigXdictionary
with matrices of explanatory variables, one for each equation
 bigKarray
n_eq x 1 array with number of explanatory variables by equation
 bigylagdictionary
spatially lagged dependent variable
 bigXlagdictionary
spatially lagged explanatory variable
 lamolsarray
spatial autoregressive coefficients from equation by equation MLError estimation
 clikerrfloat
concentrated loglikelihood from equation by equation MLError estimation (no constant)
 bSUR0array
SUR estimation for betas without spatial autocorrelation
 llikfloat
loglikelihood for classic SUR estimation (includes constant)
 lamsurfloat
spatial autoregressive coefficient in ML SUR Error
 bSURarray
beta coefficients in ML SUR Error
 varbarray
variance of beta coefficients in ML SUR Error
 sigarray
error variancecovariance matrix in ML SUR Error
 bigEarray
n by n_eq matrix of vectors of residuals for each equation
 cliksurerrfloat
concentrated loglikelihood from ML SUR Error (no constant)
 sur_infarray
inference for regression coefficients, stand. error, t, p
 errllikfloat
loglikelihood for error model without SUR (with constant)
 surerrllikfloat
loglikelihood for SUR error model (with constant)
 lrtesttuple
likelihood ratio test for offdiagonal Sigma elements
 likrlambdatuple
likelihood ratio test on spatial autoregressive coefficients
 vmarray
asymptotic variance matrix for lambda and Sigma (only for vm=True)
 lamsetparray
inference for lambda, stand. error, t, p (only for vm=True)
 lamtesttuple
with test for constancy of lambda across equations (test value, degrees of freedom, pvalue)
 joinlamtuple
with test for joint significance of lambda across equations (test value, degrees of freedom, pvalue)
 surchowlist
with tuples for Chow test on regression coefficients. each tuple contains test value, degrees of freedom, pvalue
 name_bigydictionary
with name of dependent variable for each equation
 name_bigXdictionary
with names of explanatory variables for each equation
 name_dsstring
name for the data set
 name_wstring
name for the weights file
 name_regimesstring
name of regime variable for use in the output

__init__
(bigy, bigX, w, regimes=None, nonspat_diag=True, spat_diag=False, vm=False, epsilon=1e07, name_bigy=None, name_bigX=None, name_ds=None, name_w=None, name_regimes=None)[source]¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(bigy, bigX, w[, regimes, …])Initialize self.