pysal.model.spreg.ML_Lag

class pysal.model.spreg.ML_Lag(y, x, w, method='full', epsilon=1e-07, spat_diag=False, vm=False, name_y=None, name_x=None, name_w=None, name_ds=None)[source]

ML estimation of the spatial lag model with all results and diagnostics; Anselin (1988) [Anselin1988]

Parameters:
y : array

nx1 array for dependent variable

x : array

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

w : pysal W object

Spatial weights object

method : string

if ‘full’, brute force calculation (full matrix expressions) if ‘ord’, Ord eigenvalue method

epsilon : float

tolerance criterion in mimimize_scalar function and inverse_product

spat_diag : boolean

if True, include spatial diagnostics

vm : boolean

if True, include variance-covariance matrix in summary results

name_y : string

Name of dependent variable for use in output

name_x : list of strings

Names of independent variables for use in output

name_w : string

Name of weights matrix for use in output

name_ds : string

Name of dataset for use in output

Attributes:
betas : array

(k+1)x1 array of estimated coefficients (rho first)

rho : float

estimate of spatial autoregressive coefficient

u : array

nx1 array of residuals

predy : array

nx1 array of predicted y values

n : integer

Number of observations

k : integer

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

y : array

nx1 array for dependent variable

x : array

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

method : string

log Jacobian method if ‘full’: brute force (full matrix computations)

epsilon : float

tolerance criterion used in minimize_scalar function and inverse_product

mean_y : float

Mean of dependent variable

std_y : float

Standard deviation of dependent variable

vm : array

Variance covariance matrix (k+1 x k+1), all coefficients

vm1 : array

Variance covariance matrix (k+2 x k+2), includes sig2

sig2 : float

Sigma squared used in computations

logll : float

maximized log-likelihood (including constant terms)

aic : float

Akaike information criterion

schwarz : float

Schwarz criterion

predy_e : array

predicted values from reduced form

e_pred : array

prediction errors using reduced form predicted values

pr2 : float

Pseudo R squared (squared correlation between y and ypred)

pr2_e : float

Pseudo R squared (squared correlation between y and ypred_e (using reduced form))

utu : float

Sum of squared residuals

std_err : array

1xk array of standard errors of the betas

z_stat : list of tuples

z statistic; each tuple contains the pair (statistic, p-value), where each is a float

name_y : string

Name of dependent variable for use in output

name_x : list of strings

Names of independent variables for use in output

name_w : string

Name of weights matrix for use in output

name_ds : string

Name of dataset for use in output

title : string

Name of the regression method used

Examples
________
>>> import numpy as np
>>> import pysal.lib
>>> db = pysal.lib.io.open(pysal.lib.examples.get_path(“baltim.dbf”),’r’)
>>> ds_name = “baltim.dbf”
>>> y_name = “PRICE”
>>> y = np.array(db.by_col(y_name)).T
>>> y.shape = (len(y),1)
>>> x_names = [“NROOM”,”NBATH”,”PATIO”,”FIREPL”,”AC”,”GAR”,”AGE”,”LOTSZ”,”SQFT”]
>>> x = np.array([db.by_col(var) for var in x_names]).T
>>> ww = ps.open(ps.examples.get_path(“baltim_q.gal”))
>>> w = ww.read()
>>> ww.close()
>>> w_name = “baltim_q.gal”
>>> w.transform = ‘r’
>>> mllag = ML_Lag(y,x,w,name_y=y_name,name_x=x_names, name_w=w_name,name_ds=ds_name) #doctest: +SKIP
>>> np.around(mllag.betas, decimals=4) #doctest: +SKIP
array([[ 4.3675],

[ 0.7502], [ 5.6116], [ 7.0497], [ 7.7246], [ 6.1231], [ 4.6375], [-0.1107], [ 0.0679], [ 0.0794], [ 0.4259]])

>>> “{0:.6f}”.format(mllag.rho) #doctest: +SKIP
‘0.425885’
>>> “{0:.6f}”.format(mllag.mean_y) #doctest: +SKIP
‘44.307180’
>>> “{0:.6f}”.format(mllag.std_y) #doctest: +SKIP
‘23.606077’
>>> np.around(np.diag(mllag.vm1), decimals=4) #doctest: +SKIP
array([ 23.8716, 1.1222, 3.0593, 7.3416, 5.6695, 5.4698,

2.8684, 0.0026, 0.0002, 0.0266, 0.0032, 220.1292])

>>> np.around(np.diag(mllag.vm), decimals=4) #doctest: +SKIP
array([ 23.8716, 1.1222, 3.0593, 7.3416, 5.6695, 5.4698,

2.8684, 0.0026, 0.0002, 0.0266, 0.0032])

>>> “{0:.6f}”.format(mllag.sig2) #doctest: +SKIP
‘151.458698’
>>> “{0:.6f}”.format(mllag.logll) #doctest: +SKIP
‘-832.937174’
>>> “{0:.6f}”.format(mllag.aic) #doctest: +SKIP
‘1687.874348’
>>> “{0:.6f}”.format(mllag.schwarz) #doctest: +SKIP
‘1724.744787’
>>> “{0:.6f}”.format(mllag.pr2) #doctest: +SKIP
‘0.727081’
>>> “{0:.4f}”.format(mllag.pr2_e) #doctest: +SKIP
‘0.7062’
>>> “{0:.4f}”.format(mllag.utu) #doctest: +SKIP
‘31957.7853’
>>> np.around(mllag.std_err, decimals=4) #doctest: +SKIP
array([ 4.8859, 1.0593, 1.7491, 2.7095, 2.3811, 2.3388, 1.6936,

0.0508, 0.0146, 0.1631, 0.057 ])

>>> np.around(mllag.z_stat, decimals=4) #doctest: +SKIP
array([[ 0.8939, 0.3714],

[ 0.7082, 0.4788], [ 3.2083, 0.0013], [ 2.6018, 0.0093], [ 3.2442, 0.0012], [ 2.6181, 0.0088], [ 2.7382, 0.0062], [-2.178 , 0.0294], [ 4.6487, 0. ], [ 0.4866, 0.6266], [ 7.4775, 0. ]])

>>> mllag.name_y #doctest: +SKIP
‘PRICE’
>>> mllag.name_x #doctest: +SKIP
[‘CONSTANT’, ‘NROOM’, ‘NBATH’, ‘PATIO’, ‘FIREPL’, ‘AC’, ‘GAR’, ‘AGE’, ‘LOTSZ’, ‘SQFT’, ‘W_PRICE’]
>>> mllag.name_w #doctest: +SKIP
‘baltim_q.gal’
>>> mllag.name_ds #doctest: +SKIP
‘baltim.dbf’
>>> mllag.title #doctest: +SKIP
‘MAXIMUM LIKELIHOOD SPATIAL LAG (METHOD = FULL)’
>>> mllag = ML_Lag(y,x,w,method=’ord’,name_y=y_name,name_x=x_names, name_w=w_name,name_ds=ds_name) #doctest: +SKIP
>>> np.around(mllag.betas, decimals=4) #doctest: +SKIP
array([[ 4.3675],

[ 0.7502], [ 5.6116], [ 7.0497], [ 7.7246], [ 6.1231], [ 4.6375], [-0.1107], [ 0.0679], [ 0.0794], [ 0.4259]])

>>> “{0:.6f}”.format(mllag.rho) #doctest: +SKIP
‘0.425885’
>>> “{0:.6f}”.format(mllag.mean_y) #doctest: +SKIP
‘44.307180’
>>> “{0:.6f}”.format(mllag.std_y) #doctest: +SKIP
‘23.606077’
>>> np.around(np.diag(mllag.vm1), decimals=4) #doctest: +SKIP
array([ 23.8716, 1.1222, 3.0593, 7.3416, 5.6695, 5.4698,

2.8684, 0.0026, 0.0002, 0.0266, 0.0032, 220.1292])

>>> np.around(np.diag(mllag.vm), decimals=4) #doctest: +SKIP
array([ 23.8716, 1.1222, 3.0593, 7.3416, 5.6695, 5.4698,

2.8684, 0.0026, 0.0002, 0.0266, 0.0032])

>>> “{0:.6f}”.format(mllag.sig2) #doctest: +SKIP
‘151.458698’
>>> “{0:.6f}”.format(mllag.logll) #doctest: +SKIP
‘-832.937174’
>>> “{0:.6f}”.format(mllag.aic) #doctest: +SKIP
‘1687.874348’
>>> “{0:.6f}”.format(mllag.schwarz) #doctest: +SKIP
‘1724.744787’
>>> “{0:.6f}”.format(mllag.pr2) #doctest: +SKIP
‘0.727081’
>>> “{0:.6f}”.format(mllag.pr2_e) #doctest: +SKIP
‘0.706198’
>>> “{0:.4f}”.format(mllag.utu) #doctest: +SKIP
‘31957.7853’
>>> np.around(mllag.std_err, decimals=4) #doctest: +SKIP
array([ 4.8859, 1.0593, 1.7491, 2.7095, 2.3811, 2.3388, 1.6936,

0.0508, 0.0146, 0.1631, 0.057 ])

>>> np.around(mllag.z_stat, decimals=4) #doctest: +SKIP
array([[ 0.8939, 0.3714],

[ 0.7082, 0.4788], [ 3.2083, 0.0013], [ 2.6018, 0.0093], [ 3.2442, 0.0012], [ 2.6181, 0.0088], [ 2.7382, 0.0062], [-2.178 , 0.0294], [ 4.6487, 0. ], [ 0.4866, 0.6266], [ 7.4775, 0. ]])

>>> mllag.name_y #doctest: +SKIP
‘PRICE’
>>> mllag.name_x #doctest: +SKIP
[‘CONSTANT’, ‘NROOM’, ‘NBATH’, ‘PATIO’, ‘FIREPL’, ‘AC’, ‘GAR’, ‘AGE’, ‘LOTSZ’, ‘SQFT’, ‘W_PRICE’]
>>> mllag.name_w #doctest: +SKIP
‘baltim_q.gal’
>>> mllag.name_ds #doctest: +SKIP
‘baltim.dbf’
>>> mllag.title #doctest: +SKIP
‘MAXIMUM LIKELIHOOD SPATIAL LAG (METHOD = ORD)’
__init__(y, x, w, method='full', epsilon=1e-07, spat_diag=False, vm=False, name_y=None, name_x=None, name_w=None, name_ds=None)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(y, x, w[, method, epsilon, …]) Initialize self.

Attributes

mean_y
sig2n
sig2n_k
std_y
utu
vm