pysal.model.spreg.GM_Lag_Regimes

class pysal.model.spreg.GM_Lag_Regimes(y, x, regimes, yend=None, q=None, w=None, w_lags=1, lag_q=True, robust=None, gwk=None, sig2n_k=False, spat_diag=False, constant_regi='many', cols2regi='all', regime_lag_sep=False, regime_err_sep=True, cores=False, vm=False, name_y=None, name_x=None, name_yend=None, name_q=None, name_regimes=None, name_w=None, name_gwk=None, name_ds=None)[源代码]

空间两阶段最小二乘法(s2sls)与制度;Anselin(1988年)【Anselin1988年】_

参数:
y : 数组

因变量nx1数组

x : 数组

二维数组,n行,每个独立(外生)变量一列,不包括常量

regimes : 列表

n值列表,并将每个观测值映射到一个区域。假定与“x”对齐。

yend : 数组

二维数组,n行,每个内生变量一列

q : 数组

二维数组,n行,每个外部外部变量一列,用作仪器(注意:这不应包含x中的任何变量);不能与h组合使用

常量_regi:[一','多']

切换器控制恒量项设置。它可以采用以下值:

  • “one”:1的向量附加到x并保持
    各政权间的常数
  • “many”:将一个向量附加到x并考虑
    每个制度不同(默认)
cols2regi : 列出“全部”

表明x的每一列是否应视为不同的制度或保持不变的论点(错误)。如果一个列表,k布尔值表示每个变量的选项(如果每个区域一个,则为真,如果保持不变,则为假)。如果“全部”(默认),则所有变量都会随状态而变化。

w : Pysal W对象

空间权重对象

w_lags : 整数

w的阶数作为空间滞后相关变量的工具。例如,w_lags=1,则仪器为wx;如果w_lags=2,则为wx、w wx;依此类推。

lag_q : 布尔

如果为真,则包括附加仪器的空间滞后(q)。

状态_lag_sep:boolean

如果为真(默认),空间滞后的空间参数也会根据不同的状态进行计算。如果为false,则空间参数为固定交叉区域。只有当状态为“真”时,选项才有效

状态u err_sep:Boolean

如果为真,则为每个政权运行单独的回归。

robust : 一串

如果“白色”,则给出方差协方差矩阵的白色一致估计。如果“hac”,则给出方差协方差矩阵的hac一致估计。如果是“ogmm”,则使用最优gmm估计betas和方差协方差矩阵。默认设置为无。

gwk : Pysal W对象

HAC估计所需的内核空间权重。注:矩阵必须沿着主对角线。

sig2n_k : 布尔

如果为真,则使用n-k估计Sigma^2。如果为假,则使用n。

spat_diag : 布尔

如果为真,则计算Anselin-Kelejian检验

vm : 布尔

如果为真,则在汇总结果中包含方差-协方差矩阵

cores : 布尔

指定是否使用多处理默认值:无多处理,cores=false注意:多处理可能无法在所有平台上工作。

name_y : 一串

输出中使用的从属变量的名称

name_x : 字符串表

输出中使用的自变量的名称

name_yend : 字符串表

输出中使用的内生变量的名称

name_q : 字符串表

输出用仪器名称

name_w : 一串

输出中使用的权重矩阵的名称

name_gwk : 一串

用于输出的内核权重矩阵的名称

name_ds : 一串

用于输出的数据集名称

name_regimes : 一串

输出中使用的状态变量的名称

实例

我们首先需要导入所需的模块,即numpy来将我们读取的数据转换为 spreg 理解和 pysal 执行所有分析。

>>> import numpy as np
>>> import pysal.lib
>>> from pysal.lib import examples

使用pysal.lib.io.open()打开有关NCOVR美国县凶杀案(3085个地区)的数据。这是与nat形状文件关联的dbf。注意pysal.lib.io.open()也以csv格式读取数据;由于实际类需要以numpy数组的形式传入数据,因此用户可以使用任何方法读取其数据。

>>> db = pysal.lib.io.open(examples.get_path("NAT.dbf"),'r')

从dbf文件中提取hr90列(1990年的凶杀率),并使其成为回归的因变量。请注意,pysal要求这是一个形状(n,1)的numpy数组,而不是其他包接受的(n,1)的常见形状。

>>> y_var = 'HR90'
>>> y = np.array([db.by_col(y_var)]).reshape(3085,1)

从DBF中提取UE90(失业率)和PS90(人口结构)向量,作为回归中的独立变量。其他变量可以通过将其名称添加到x_var来插入,例如x_var=['var1','var2','..]请注意,pysal要求它是nxj numpy数组,其中j是独立变量的数量(不包括常量)。默认情况下,该模型向传入的自变量添加一个1的向量。

>>> x_var = ['PS90','UE90']
>>> x = np.array([db.by_col(name) for name in x_var]).T

根据南部和北部假人(南部),给出了该数据中的不同状态。

>>> r_var = 'SOUTH'
>>> regimes = db.by_col(r_var)

由于我们想要运行一个空间滞后模型,我们需要指定包含观测空间配置的空间权重矩阵。为此,我们可以打开一个已经存在的gal文件或创建一个新的gal文件。在这种情况下,我们将从 NAT.shp .

>>> from pysal.lib import weights
>>> w = weights.Rook.from_shapefile(examples.get_path("NAT.shp"))

除非有充分的理由不这样做,否则必须对权重行进行标准化,以便矩阵的每一行合计为一。除此之外,这允许将变量的空间滞后解释为相邻观测值的平均值。在Pysal中,可以通过以下方式轻松执行:

>>> w.transform = 'r'

这个类运行一个滞后模型,这意味着在方程的右侧包含因变量的空间滞后。如果我们希望在输出摘要中打印变量的名称,那么我们也必须将它们传入,尽管这是可选的。

>>> model=GM_Lag_Regimes(y, x, regimes, w=w, regime_lag_sep=False, regime_err_sep=False, name_y=y_var, name_x=x_var, name_regimes=r_var, name_ds='NAT', name_w='NAT.shp')
>>> model.betas
array([[ 1.28897623],
       [ 0.79777722],
       [ 0.56366891],
       [ 8.73327838],
       [ 1.30433406],
       [ 0.62418643],
       [-0.39993716]])

运行模型之后,我们可以通过键入model.summary来获得输出的摘要。或者,我们也可以通过调用以下函数获得系数估计的标准误差:

>>> model.std_err
array([ 0.44682888,  0.14358192,  0.05655124,  1.06044865,  0.20184548,
        0.06118262,  0.12387232])

在上面的例子中,除了空间滞后之外,所有的系数都会根据情况而变化。空间滞后也可能随系统的不同而变化,有效的方法是建立一个独立的空间滞后模型。要运行这些模型,必须将“论证制度”设置为“真:

>>> model=GM_Lag_Regimes(y, x, regimes, w=w, regime_lag_sep=True, name_y=y_var, name_x=x_var, name_regimes=r_var, name_ds='NAT', name_w='NAT.shp')
>>> print np.hstack((np.array(model.name_z).reshape(8,1),model.betas,np.sqrt(model.vm.diagonal().reshape(8,1))))
[['0_CONSTANT' '1.36584769' '0.39854720']
 ['0_PS90' '0.80875730' '0.11324884']
 ['0_UE90' '0.56946813' '0.04625087']
 ['0_W_HR90' '-0.4342438' '0.13350159']
 ['1_CONSTANT' '7.90731073' '1.63601874']
 ['1_PS90' '1.27465703' '0.24709870']
 ['1_UE90' '0.60167693' '0.07993322']
 ['1_W_HR90' '-0.2960338' '0.19934459']]

或者,我们可以键入“model.summary”来查看有组织的结果输出。该类具有足够的灵活性,能够适应空间滞后模型,该模型除因变量的空间滞后外,还包括其他非空间内生回归量。作为一个例子,我们将添加内生变量RD90(资源剥夺),并决定用FP89(贫困以下家庭)作为工具:

>>> yd_var = ['RD90']
>>> yd = np.array([db.by_col(name) for name in yd_var]).T
>>> q_var = ['FP89']
>>> q = np.array([db.by_col(name) for name in q_var]).T

我们可以再次运行模型:

>>> model = GM_Lag_Regimes(y, x, regimes, yend=yd, q=q, w=w, regime_lag_sep=False, regime_err_sep=False, name_y=y_var, name_x=x_var, name_yend=yd_var, name_q=q_var, name_regimes=r_var, name_ds='NAT', name_w='NAT.shp')
>>> model.betas
array([[ 3.42195202],
       [ 1.03311878],
       [ 0.14308741],
       [ 8.99740066],
       [ 1.91877758],
       [-0.32084816],
       [ 2.38918212],
       [ 3.67243761],
       [ 0.06959139]])

一旦模型运行,就可以得到系数估计的标准误差。或者,我们可以通过键入:model.summary来获得输出的摘要。

>>> model.std_err
array([ 0.49163311,  0.12237382,  0.05633464,  0.72555909,  0.17250521,
        0.06749131,  0.27370369,  0.25106224,  0.05804213])
属性:
summary : 一串

回归结果和诊断摘要(注:与print命令一起使用)

betas : 数组

Kx1估计系数数组

u : 数组

nx1残差数组

e_pred : 数组

nx1残差数组(使用简化形式)

predy : 数组

nx1预测Y值数组

predy_e : 数组

nx1预测Y值数组(使用缩减形式)

n : 整数

观测次数

k : 整数

当进行多次回归时,仅在字典“multi”中提供估算系数(包括常数)的变量数(有关详细信息,请参阅下面的“multi”)。

kstar : 整数

内生变量的数目。只有在多重回归时字典“multi”才可用(有关详细信息,请参阅下面的“multi”)。

y : 数组

因变量nx1数组

x : 数组

二维数组,有n行,每个独立(外生)变量有一列,其中常量仅在多重回归时字典“multi”中可用(有关详细信息,请参见下面的“multi”)。

yend : 数组

二维数组,n行,每个内生变量一列,只有在多重回归时字典“multi”中才可用(详情请参见下面的“multi”)。

q : 数组

二维数组,n行,每个外部外部变量一列,用作工具,只有在多重回归时字典“multi”中才可用(详细信息请参见下面的“multi”)。

z : 数组

nxx变量数组(x和yend的组合)仅在多重回归时字典“multi”中可用(有关详细信息,请参见下面的“multi”)。

h : 数组

nxl仪器阵列(x和q的组合)仅在多重回归时在字典“multi”中可用(有关详细信息,请参见下面的“multi”)。

robust : 一串

当进行多次回归时,仅在字典“multi”中提供对稳健标准错误的调整(有关详细信息,请参阅下面的“multi”)。

mean_y : 浮动

因变量均值

std_y : 浮动

因变量标准差

vm : 数组

方差协方差矩阵(kxk)

pr2 : 浮动

伪r平方(y和ypred之间的平方相关性)仅在多重回归时字典“multi”中可用(有关详细信息,请参阅下面的“multi”)。

pr2_e : 浮动

伪r平方(y和ypred_e之间的平方相关性(使用约简形式))仅在多重回归时字典“multi”中可用(有关详细信息,请参阅下面的“multi”)。

utu : 浮动

残差平方和

sig2 : 浮动

sigma平方在计算中使用,只有在多重回归时字典“multi”中才可用(有关详细信息,请参阅下面的“multi”)。

std_err : 数组

1XK的betas标准错误数组,仅在多重回归时字典'multi'中可用(有关详细信息,请参阅下面的'multi')

z_stat : 元组列表

z statistic;每个元组都包含一对(statistic,p-value),其中每个元组都是一个浮点,只有在进行多次回归时才能在字典“multi”中使用(有关详细信息,请参见下面的“multi”)。

ak_test : 元组

anselin kelejian test;tuple包含一对(statistic,p-value),只有在多重回归时字典'multi'才可用(有关详细信息,请参见下面的'multi')

name_y : 一串

输出中使用的从属变量的名称

name_x : 字符串表

输出中使用的自变量的名称

name_yend : 字符串表

输出中使用的内生变量的名称

name_z : 字符串表

用于输出的外生变量和内生变量的名称

name_q : 字符串表

外部仪表名称

name_h : 字符串表

输出中使用的所有仪器的名称

name_w : 一串

输出中使用的权重矩阵的名称

name_gwk : 一串

用于输出的内核权重矩阵的名称

name_ds : 一串

用于输出的数据集名称

name_regimes : 一串

输出中使用的状态变量的名称

title : 一串

当进行多次回归时,仅在字典“multi”中可用的回归方法的名称(有关详细信息,请参阅下面的“multi”)。

sig2n : 浮动

sigma平方(用分母中的n计算)

sig2n_k : 浮动

sigma平方(用分母中的n-k计算)

hth : 浮动

H'H仅在多重回归时在字典'multi'中可用(有关详细信息,请参阅下面的'multi')

hthi : 浮动

(h'h)^-1只有在多重回归时字典'multi'才可用(有关详细信息,请参阅下面的'multi')

varb : 数组

(z'h(h'h)^-1 h'z)^-1仅在多重回归时字典'multi'中可用(有关详细信息,请参阅下面的'multi')

zthhthi : 数组

z'h(h'h)^-1仅在多重回归时字典'multi'中可用(有关详细信息,请参阅下面的'multi')

pfora1a2 : 数组

n(zthhthi)'varb仅在多重回归时字典'multi'中可用(有关详细信息,请参阅下面的'multi')

regimes : 列表

n值列表,并将每个观测值映射到一个区域。假定与“x”对齐。

常量_regi:[一','多']

如果状态为假,则忽略。制度不变的选择。切换器控制恒量项设置。它可以采用以下值:

  • “one”:1的向量附加到x并保持
    各政权间的常数
  • “many”:将一个向量附加到x并考虑
    不同体制
cols2regi : 列出“全部”

如果状态为假,则忽略。表明x的每一列是否应视为不同的制度或保持不变的论点(错误)。如果一个列表,k布尔值表示每个变量的选项(如果每个区域一个,则为真,如果保持不变,则为假)。如果“全部”,则所有变量都随状态而变化。

regime_lag_sep : 布尔

如果为真,空间滞后的空间参数也会根据不同的状态进行计算。如果为“假”(默认),则空间参数为固定交叉区域。

regime_err_sep : 布尔

如果为真,则为每个政权运行单独的回归。

kr : 利息

变量/列的数量将被“区域化”或按制度变化。这将导致对每个变量(即每个变量的nr参数)按状态进行一次参数估计。

kf : 利息

变量/列的数量被认为是固定的或全局的,因此只能得到一个参数估计。

nr : 利息

“制度”列表中不同制度的数量

multi : 词典

只有在估计多个回归时才可用,即当状态“err_sep=真”且没有变量跨状态固定时。包含每个回归的所有属性

方法

GM_Lag_Regimes_Multi  
sp_att_reg  
__init__(y, x, regimes, yend=None, q=None, w=None, w_lags=1, lag_q=True, robust=None, gwk=None, sig2n_k=False, spat_diag=False, constant_regi='many', cols2regi='all', regime_lag_sep=False, regime_err_sep=True, cores=False, vm=False, name_y=None, name_x=None, name_yend=None, name_q=None, name_regimes=None, name_w=None, name_gwk=None, name_ds=None)[源代码]

初始化自身。请参阅帮助(键入(self))以获得准确的签名。

方法

GM_Lag_Regimes_Multi \(Y、X、W、I、W、REGI、ID)
__init__ \(Y,X,状态[,是,Q,W,…]) 初始化自身。
sp_att_reg \(wu i,regiu id,wy)

属性

mean_y 
pfora1a2 
sig2n 
sig2n_k 
std_y 
utu 
vm