pysal.model.spreg.TSLS

class pysal.model.spreg.TSLS(y, x, yend, q, w=None, robust=None, gwk=None, sig2n_k=False, spat_diag=False, vm=False, name_y=None, name_x=None, name_yend=None, name_q=None, name_w=None, name_gwk=None, name_ds=None)[源代码]

两阶段最小二乘与结果和诊断。

参数:
y : 数组

因变量nx1数组

x : 数组

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

yend : 数组

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

q : 数组

二维数组,n行,每个外部外部变量一列,用作工具(注意:这不应包含x中的任何变量)

w : Pysal W对象

空间权重对象(运行空间诊断时需要)

robust : 一串

如果“白色”,则给出方差协方差矩阵的白色一致估计。如果“hac”,则给出方差协方差矩阵的hac一致估计。默认设置为无。

gwk : Pysal W对象

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

sig2n_k : 布尔

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

spat_diag : 布尔

如果为真,则计算Anselin-Kelejian测试(需要w)

vm : 布尔

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

name_y : 一串

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

name_x : 字符串表

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

name_yend : 字符串表

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

name_q : 字符串表

输出用仪器名称

name_w : 一串

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

name_gwk : 一串

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

name_ds : 一串

用于输出的数据集名称

实例

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

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

使用pysal.lib.io.open()打开关于哥伦布社区犯罪(49个地区)的数据。这是与Columbus形状文件关联的DBF。注意pysal.lib.io.open()也以csv格式读取数据;由于实际类需要以numpy数组的形式传入数据,因此用户可以使用任何方法读取其数据。

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

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

>>> y = np.array(db.by_col("CRIME"))
>>> y = np.reshape(y, (49,1))

从dbf中提取inc(收入)向量,作为回归中的独立变量。注意,pysal要求这是一个nxj numpy数组,其中j是独立变量的数量(不包括常量)。默认情况下,该模型向传入的独立变量添加一个1的向量,但可以通过传递常量=false来覆盖该向量。

>>> X = []
>>> X.append(db.by_col("INC"))
>>> X = np.array(X).T

在这种情况下,我们认为hoval(home value)是一个内生回归量。我们告诉模型,这是通过传递一个不同于外生变量(x)的参数来实现的。

>>> yd = []
>>> yd.append(db.by_col("HOVAL"))
>>> yd = np.array(yd).T

因为我们有内生变量,为了获得模型的正确估计,我们需要对hoval进行检测。为此,我们使用discbd(到cbd的距离),并将其放入仪器参数“q”。

>>> q = []
>>> q.append(db.by_col("DISCBD"))
>>> q = np.array(q).T

我们都准备好了初步设计,我们很好地运行模型。在这种情况下,我们需要变量(外生的和内生的)和工具。如果我们希望在输出摘要中打印变量的名称,那么我们也必须将它们传入,尽管这是可选的。

>>> reg = TSLS(y, X, yd, q, name_x=['inc'], name_y='crime', name_yend=['hoval'], name_q=['discbd'], name_ds='columbus')
>>> print reg.betas
[[ 88.46579584]
 [  0.5200379 ]
 [ -1.58216593]]
属性:
summary : 一串

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

betas : 数组

Kx1估计系数数组

u : 数组

nx1残差数组

predy : 数组

nx1预测Y值数组

n : 整数

观测次数

k : 整数

估计系数的变量数(包括常数)

kstar : 整数

内生变量的数目。

y : 数组

因变量nx1数组

x : 数组

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

yend : 数组

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

q : 数组

二维数组,n行,每个外部变量一列,用作仪器

z : 数组

nxx变量数组(x和yend的组合)

h : 数组

NXL仪器阵列(X和Q组合)

robust : 一串

稳健标准误差调整

mean_y : 浮动

因变量均值

std_y : 浮动

因变量标准差

vm : 数组

方差协方差矩阵(kxk)

pr2 : 浮动

伪r平方(y和ypred之间的平方相关)

utu : 浮动

残差平方和

sig2 : 浮动

计算中使用的sigma平方

std_err : 数组

1×k阵列的betas标准误差

z_stat : 元组列表

z statistic;每个元组包含一对(statistic,p-value),其中每个都是一个浮点

ak_test : 元组

Anselin-Kelejian检验;元组包含对(统计,p值)

name_y : 一串

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

name_x : 字符串表

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

name_yend : 字符串表

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

name_z : 字符串表

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

name_q : 字符串表

外部仪表名称

name_h : 字符串表

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

name_w : 一串

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

name_gwk : 一串

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

name_ds : 一串

用于输出的数据集名称

title : 一串

所用回归方法的名称

sig2n : 浮动

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

sig2n_k : 浮动

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

hth : 浮动

HH

hthi : 浮动

(H'H)^-1

varb : 数组

(Z'H (H'H)^-1 H'Z)^-1

zthhthi : 数组

Z'H(H'H)^-1

pfora1a2 : 数组

n(ZthHthi)'VARB

__init__(y, x, yend, q, w=None, robust=None, gwk=None, sig2n_k=False, spat_diag=False, vm=False, name_y=None, name_x=None, name_yend=None, name_q=None, name_w=None, name_gwk=None, name_ds=None)[源代码]

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

方法

__init__ \(Y、X、Yend、Q[、W、Robust、GWK、…]) 初始化自身。

属性

mean_y 
pfora1a2 
sig2n 
sig2n_k 
std_y 
utu 
vm