pysal.model.spreg.
OLS
(y, x, w=None, robust=None, gwk=None, sig2n_k=True, nonspat_diag=True, spat_diag=False, moran=False, white_test=False, vm=False, name_y=None, name_x=None, name_w=None, name_gwk=None, name_ds=None)[源代码]¶带结果和诊断的普通最小二乘法。
参数: |
|
---|
实例
>>> import numpy as np
>>> import pysal.lib
使用pysal.lib.io.open()打开关于哥伦布社区犯罪(49个地区)的数据。这是与Columbus形状文件关联的DBF。注意pysal.lib.io.open()也以csv格式读取数据;另外,实际的ols类要求以numpy数组的形式传入数据,以便用户可以使用任何方法读取其数据。
>>> db = pysal.lib.io.open(pysal.lib.examples.get_path('columbus.dbf'),'r')
从dbf文件中提取hoval列(主值),并使其成为回归的因变量。注意,pysal要求它是一个nx1 numpy数组。
>>> hoval = db.by_col("HOVAL")
>>> y = np.array(hoval)
>>> y.shape = (len(hoval), 1)
从dbf中提取犯罪(crime)和inc(inc)向量,作为回归中的独立变量。注意,pysal要求这是一个nxj numpy数组,其中j是独立变量的数量(不包括常量)。pysal.model.spreg.ols将一个向量添加到传入的自变量中。
>>> X = []
>>> X.append(db.by_col("INC"))
>>> X.append(db.by_col("CRIME"))
>>> X = np.array(X).T
运行普通最小二乘回归所需的最小参数是分别包含自变量和因变量的两个numpy数组。为了使打印的结果更有意义,用户可以为使用的变量输入显式名称;这是可选的。
>>> ols = OLS(y, X, name_y='home value', name_x=['income','crime'], name_ds='columbus', white_test=True)
pysal.model.spreg.ols计算回归系数及其标准误差、t-stats和p值。它还计算了大量的回归诊断。在本例中,我们计算白色测试,默认情况下,它不是(“white_test=true”)。所有这些结果都可以作为运行pysal.model.spreg.ols创建的回归对象的属性单独访问。还可以通过打印回归对象的摘要属性一次访问它们。在下例中,犯罪参数为-0.4849,t统计量为-2.6544,p值为0.01087。
>>> ols.betas
array([[ 46.42818268],
[ 0.62898397],
[ -0.48488854]])
>>> print round(ols.t_stat[2][0],3)
-2.654
>>> print round(ols.t_stat[2][1],3)
0.011
>>> print round(ols.r2,3)
0.35
或者,我们可以轻松获得所有结果的完整摘要,这些结果格式良好,可以打印:
>>> print ols.summary
REGRESSION
----------
SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES
-----------------------------------------
Data set : columbus
Dependent Variable : home value Number of Observations: 49
Mean dependent var : 38.4362 Number of Variables : 3
S.D. dependent var : 18.4661 Degrees of Freedom : 46
R-squared : 0.3495
Adjusted R-squared : 0.3212
Sum squared residual: 10647.015 F-statistic : 12.3582
Sigma-square : 231.457 Prob(F-statistic) : 5.064e-05
S.E. of regression : 15.214 Log likelihood : -201.368
Sigma-square ML : 217.286 Akaike info criterion : 408.735
S.E of regression ML: 14.7406 Schwarz criterion : 414.411
<BLANKLINE>
------------------------------------------------------------------------------------
Variable Coefficient Std.Error t-Statistic Probability
------------------------------------------------------------------------------------
CONSTANT 46.4281827 13.1917570 3.5194844 0.0009867
crime -0.4848885 0.1826729 -2.6544086 0.0108745
income 0.6289840 0.5359104 1.1736736 0.2465669
------------------------------------------------------------------------------------
<BLANKLINE>
REGRESSION DIAGNOSTICS
MULTICOLLINEARITY CONDITION NUMBER 12.538
<BLANKLINE>
TEST ON NORMALITY OF ERRORS
TEST DF VALUE PROB
Jarque-Bera 2 39.706 0.0000
<BLANKLINE>
DIAGNOSTICS FOR HETEROSKEDASTICITY
RANDOM COEFFICIENTS
TEST DF VALUE PROB
Breusch-Pagan test 2 5.767 0.0559
Koenker-Bassett test 2 2.270 0.3214
<BLANKLINE>
SPECIFICATION ROBUST TEST
TEST DF VALUE PROB
White 5 2.906 0.7145
================================ END OF REPORT =====================================
如果将可选参数w和spat_diag传递给pysal.model.spreg.ols,还将计算回归的空间诊断。这些包括拉格朗日乘数测试和莫兰剩余量I。W参数是Pysal空间权重矩阵。在本例中,w直接从shapefile columbus.shp生成,但w也可以从gal或gwt文件中读取。在这种情况下,建立了一个Rook邻接权矩阵,但是Pysal还提供了皇后邻接权、距离权和K最近邻接权等。在示例中,残差的Moran's i为0.204,标准值为2.592,p值为0.0095。
>>> w = pysal.lib.weights.Rook.from_shapefile(pysal.lib.examples.get_path("columbus.shp"))
>>> ols = OLS(y, X, w, spat_diag=True, moran=True, name_y='home value', name_x=['income','crime'], name_ds='columbus')
>>> ols.betas
array([[ 46.42818268],
[ 0.62898397],
[ -0.48488854]])
>>> print round(ols.moran_res[0],3)
0.204
>>> print round(ols.moran_res[1],3)
2.592
>>> print round(ols.moran_res[2],4)
0.0095
属性: |
|
---|
__init__
(y, x, w=None, robust=None, gwk=None, sig2n_k=True, nonspat_diag=True, spat_diag=False, moran=False, white_test=False, vm=False, name_y=None, name_x=None, name_w=None, name_gwk=None, name_ds=None)[源代码]¶初始化自身。请参阅帮助(键入(self))以获得准确的签名。
方法
__init__ \(Y、X[、W、Robust、GWK、Sig2N、U K、…]) |
初始化自身。 |
属性
mean_y |
|
sig2n |
|
sig2n_k |
|
std_y |
|
utu |
|
vm |