《空间分析》笔记
地理信息系统与空间分析的基本概念
空间分析思想
- 地理信息系统原理主要内容
- 坐标系统
- 投影转换
- 地理数据模型:矢量数据模型与栅格数据
- 空间数据存储与管理
- 空间数据可视化
- 地图编辑与绘制
- 空间拓扑分析
- 空间叠加分析
- 地理信息科学与地理学的关系
- 地理信息系统是地理学数字化和定量分析的工具,是地理学中的“数学”。
- 空间分析的基本概念
- 地理对象的特征可采用不同的空间数据类型表达
- 地理对象之间以及内在的模式、规律反映为空间关系
- 空间分析模型是针对特定空间数据揭示某种空间关系
- 空间数据的类型
- 空间要素数据模型:土地类型、道路、行政边界、河流、时空轨迹等等
- 空间栅格数据模型:遥感数据、各种图像、可由其它数据转换得来
- 空间网络数据模型:交通网络、签到表、QQ好友、电网、论文引用
- 空间连续场数据模型:高程数据、地球化学元素含量、气象数据(气温、污染物浓度)、人口密度、社会经济数据(人均收入和产值等)
- 空间复合数据模型:台风、海洋涡旋
- 空间数据之间的转换
- 空间场模型→
- 格网模型
- 空间要素模型→
- 空间场模型
- 格网模型
- 格网模型→
- 空间场模型
- 空间要素模型
- 空间网络模型
- 空间复合数据模型
- 空间网络模型→
- 空间要素模型
- 格网模型
- 空间复合数据模型→
- 空间要素模型
- 格网模型
- 空间场模型→
- 地理信息系统原理主要内容
空间关系的类型
- 空间方位与距离关系
- 空间拓扑关系
- 空间(自)相关
- 空间配置关系
- 空间互作用关系
- 空间网络关系
- 空间传播
- 空间复杂关系
空间分析统计基础
- 简介
- 空间分析的描述
- 概念
- 空间分析(Spatial analysis/Spatial statistics)是用来分析空间/地理对象的几何、拓扑和属性数据的方法。
- 空间分析为发现地理现象和过程的规律性-Pattern提供定量的数值描述、操作方法和统计证据支持(Pattern包括时空趋势、分布、相关性、异质性、邻近性、可达性等)。
- 基于统计的空间分析方法
- 通常是一般统计方法在分析地理(空间)问题上的扩展
- 地理(空间)现象通常具有位置(显式/隐式)和相对位置关系(拓扑)
- 地理(空间)问题的研究通常是位置和位置关系依赖的
- 需要在一般统计方法上发展针对数据位置信息进行处理
- 分析的结果通常也是位置和位置关系相关的-(时)空间模式
- 总体来看,空间分析的处理过程与一般统计方法是一致的
- 概念
- 基于经典统计方法的(空间)分析步骤
- 研究问题的提出
- 数据的收集与处理
- 探索性分析
- 确定假设(猜测)
- 建模和检验
- 统计结果分析
- 结果呈现与问题结论描述
- 空间分析的描述
基础统计知识
概率与概率分布
- 概率(Probability):是对一个(随机)事件发生的可能性的度量,一般用
之间的实数表示, 表示绝对不会发生, 表示一定会发生。 - 概率密度函数PDF(Probability Density Function):刻画连续型随机变量取不同值的相对可能性大小(relative likelihood)。
- 概率质量函数PMF(Probability Mass Function):刻画离散型随机变量取值的相对可能性。
- 概率(Probability):是对一个(随机)事件发生的可能性的度量,一般用
随机变量的数字特征
- 实际问题的概率分布通常很难知道
- 利用数字特征来刻画随机变量的分布状况
- 通过样本(Sample)对总体(Population)进行估计
- 样本均值:观测值的中心趋势、总体期望
的估计 - 样本方差:变量观测值偏离均值的程度、总体方差
的无偏点估计
点估计与区间估计
- 统计估计是由样本来推测总体的特征。
- 点估计是由样本对总体特征参数给出单值的最佳估计。
- 区间估计是给出总体参数的可能值的区间,称之置信区间和可信区间。
- 期望与方差的点估计
:样本对总体的无偏估计
- 期望的区间估计
满足标准正态分布, 未知时,采用 分布。
- 方差的区间估计
满足 分布, 置信区间下,记 和 分别为给定自由度 分布 和 对应的临界值。
- Bootstrapping
- 基本思想:对一个观测样本经多次重复(有放回)随机抽样而产生的系列新样本,然后分别进行计算,由计算结果的分布给出对应的置信区间的估计。
统计假设检验
- 统计假设检验/显著性检验
- 事先对总体的分布、特征参数、变量关系等作出一个假设,利用样本来判断假设的合理性,即判断样本信息与假设差异的显著性来决定是否拒绝该假设。
- 假设检验的核心思想为某种带有概率性质的反证法— 即先认为某种假设是成立的,如果导出一个不合理的现象,则拒绝假设,称为不相容的(incompatible),可以接受替代假设;否则不能拒绝假设,称为相容的。
- 不合理的现象是指“发生了小概率事件”,即在给定假设条件下由样本计算的检验统计量位于对应概率密度分布的两端。
- 此检验以拒绝原假设为主。
- 参数检验和非参数检验。
- 非参数检验不意味着不使用参数(不使用总体分布的特征参数)。
- 参数检验适用于正态总体,非参数适用于非正态总体。
- 参数检验考虑总体分布,通过估算总体特征参数构建检验统计量。
- 非参数检验不考虑总体分布,直接构建统计检验量。
- 参数检验利用总体信息,非参数检验利用样本信息。
- 参数检验参数固定,非参数检验参数不固定。
- (空间)统计假设检验一般步骤
- 确定原假设和备择假设。
- 选择统计量与分布形式。
- 在原假设成立下计算统计量。
- 选择显著水平
(通常选 )。 - 比较计算量和选定显著水平下的理论临界值大小以得出检验结果
- 统计假设检验/显著性检验
- 通用符号说明
:样本量 :样本中的第 的值(若涉及两个样本则第二个样本用 表示) :样本均值 :样本标准差 :总体均值 :总体标准差 :显著性水平(默认取 ) :自由度
学生氏t检验
- 作用
- 通过单个样本,检验其总体的均值
与给定值 之间的大小关系。 - 通过两个成对样本或两个独立样本,检验两者各自总体的均值
与 之差 与给定值 之间的大小关系。一般来说取 ,以检验两总体均值之间的大小关系。
- 通过单个样本,检验其总体的均值
- 不同大小关系应用的假设与拒绝域
- 不相等
- 原假设:
- 备择假设:
- 拒绝域:
值:
- 原假设:
- 大于
- 原假设:
- 备择假设:
- 拒绝域:
值:
- 原假设:
- 小于
- 原假设:
- 备择假设:
- 拒绝域:
值:
- 原假设:
- 不相等
- 单个样本
- 自由度:
- 统计量:
- 例子
- 问题:某区域分布9个气象站,2016年测得年均温异常数据如下,从区域平均水平看该地区2016年温度是否存在显著的正异常(历史背景下的变暖)?
- 原假设:
- 备择假设:
- 临界值:
- 统计量:
- 结论:从区域平均水平看该地区2016年温度存在显著的正异常
- Python
1
2
3
4# needed 3rd party packages: scipy
from scipy import stats
x = [0.1, -0.2, 0.3, 0.28, 0.6, -0.1, 0.4, 0.5, 0.3]
print(stats.ttest_1samp(x, 0, alternative="greater"))1
Ttest_1sampResult(statistic=2.745670334136337, pvalue=0.012613576750457104)
- R
1
2x <- c(0.1, -0.2, 0.3, 0.28, 0.6, -0.1, 0.4, 0.5, 0.3)
t.test(x, mu = 0, alternative = "greater")1
2
3
4
5
6
7
8
9
10
11
12
One Sample t-test
data: x
t = 2.7457, df = 8, p-value = 0.01261
alternative hypothesis: true mean is greater than 0
95 percent confidence interval:
0.07817345 Inf
sample estimates:
mean of x
0.2422222
- 问题:某区域分布9个气象站,2016年测得年均温异常数据如下,从区域平均水平看该地区2016年温度是否存在显著的正异常(历史背景下的变暖)?
- 自由度:
- 成对样本
- 方法:将两组样本数据之差作为一组新的数据,然后对这组新的数据应用上文“单个样本”的检验方法。
- Python
1
2
3# needed 3rd party packages: scipy
from scipy import stats
print(stats.ttest_rel(x, y, alternative="greater")) - R
1
t.test(x, y, alternative = "greater", paired = TRUE)
- 两个独立样本
- 两个样本的总体方差已知
- 统计量:
- 统计量:
- 两个样本的总体方差未知且相等
- 自由度:
的合并估计量: 估计量的抽样标准差: - 统计量:
- 自由度:
- 两个样本的总体方差未知且不相等
- 自由度:
- 统计量:
- 自由度:
- 两个样本的总体方差已知
- 相关数值的计算方法
- 符号与变量名的对应关系
: alpha
: df
: t
- 伽马函数:
- 解析解:
- Python:
scipy.stats.t.cdf(t, df)
- R:
pt(t, df)
- 伽马函数:
- Python:
scipy.stats.t.ppf(1 - alpha, df)
- R:
qt(1 - alpha, df)
- Python:
- 符号与变量名的对应关系
- 作用
正态性检验
- 作用
- 检验观测数据是否符合正态分布。
- Shapiro‐Wilk检验
- 原假设:样本来自正态总体
- 备择假设:样本不来自正态总体
- Python
1
2
3# needed 3rd party packages: scipy
from scipy import stats
print(stats.shapiro(x)) - R
1
shapiro.test(x)
- 作用
Mann-Whitney U检验(Wilcoxon rank-sum检验)
- 作用
- 此方法是一种非参数的检验方法,不要求满足任何分布,基于样本构造检验统计量,用来检验两个独立样本是否来自同一个总体。
- 例子
- 问题:随机检测两组不同人群(NA和CA)的某个生理指标,数据如下表。NA和CA是否来自同一样本?
- 原假设:NA和CA来自同一样本
- 备择假设:NA和CA来自不同样本
- Python
1
2
3
4
5# needed 3rd party packages: scipy
from scipy import stats
x = [8.50, 9.48, 8.65, 8.16, 8.83, 7.76, 8.63]
y = [8.27, 8.20, 8.25, 8.14, 9.00, 8.10, 7.20, 8.32, 7.70]
print(stats.mannwhitneyu(x, y, alternative="two-sided", method="exact"))1
MannwhitneyuResult(statistic=47.0, pvalue=0.11416083916083916)
- R
1
2
3x <- c(8.50, 9.48, 8.65, 8.16, 8.83, 7.76, 8.63)
y <- c(8.27, 8.20, 8.25, 8.14, 9.00, 8.10, 7.20, 8.32, 7.70)
wilcox.test(x, y, alternative = "two.sided", exact = TRUE)1
2
3
4
5
6
7
Wilcoxon rank sum exact test
data: x and y
W = 47, p-value = 0.1142
alternative hypothesis: true location shift is not equal to 0
- 问题:随机检测两组不同人群(NA和CA)的某个生理指标,数据如下表。NA和CA是否来自同一样本?
- 作用
标准得分(Z-Scores)
- 对于一个样本值,在总体均值和标准差已知的情况下,其对应标准得分为
。 满足标准正态分布 (也叫 分布),用于原假设下检验分布可以由正态分布来近似的统计检验,称为 检验,具有唯一的临界值。 - 中心极限定理表明,对于大样本(
)来说,许多检验统计都可以由正态分布来近似,而小样本 检验更合适。
- 对于一个样本值,在总体均值和标准差已知的情况下,其对应标准得分为
效应量(Effect size)
- 作用
- 用于测量两个变量关系/差异强度的数值量。
- 作用
方差分析(ANOVA)
- 作用
- 用于分析两个以上样本所代表的总体均值差异的方法
- 分类
- 单因素方差分析(One-way ANOVA):使用一个类别型解释变量
- 双因素方差分析(Two-way/factorial ANOVA):使用两/多个解释变量
- 符号重定义
:总组数 :样本总数 :第 组样本数 :第 组样本的第 个值 :第 组样本的平均值 :所有样本的平均值
- 基本原理
- 总误差平方和
可以分解为组间平方和 与组内平方和 之和 - 总误差平方和(
): - 组间平方和(
): - 组内平方和(
): - 组间方差(组间平方和的均方):
- 组内方差(组内平方和的均方):
- 总误差平方和
- 单因素方差分析
- 原假设:每组样本对应的总体的均值之间没有显著差异
- 备择假设:至少有两组样本对应的总体的均值存在显著差异
- 统计量:
- 拒绝域:
值: - 例子
- 问题:下表为
个不同地块( block
字段)是否施氮肥(N
字段)、磷肥(P
字段)、钾肥(K
字段)(为不施、 为施),以及该方案下的豌豆产量( yield
字段)。数据来源为R语言自带的npk
数据集。不同地块上的豌豆产量之间是否有显著差异? - 原假设:不同地块上的豌豆产量之间没有显著差异
- 备择假设:不同地块上的豌豆产量之间有显著差异
- 组间方差:
- 组内方差:
- 统计量:
- 临界值:
- 结论:不同地块上的豌豆产量之间没有显著差异
- Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# needed 3rd party packages: pandas, statsmodels
import pandas as pd
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
df = pd.DataFrame.from_dict({
"block": [i // 4 + 1 for i in range(24)],
"N": [0] + [int(x) for x in bin(6057132)[2:]],
"P": [int(x) for x in bin(12961174)[2:]],
"K": [int(x) for x in bin(9852474)[2:]],
"yield": [49.5, 62.8, 46.8, 57.0, 59.8, 58.5, 55.5, 56.0,
62.8, 55.8, 69.5, 55.0, 62.0, 48.8, 45.5, 44.2,
52.0, 51.5, 49.8, 48.8, 57.2, 59.0, 53.2, 56.0]
})
# Rename the column "yield" to "yield_" to avoid conflicting with Python's
# reserved word "yield" when passed to `statsmodels.formula.api.ols`.
df.rename(columns={"yield": "yield_"}, inplace=True)
print(anova_lm(ols("yield_ ~ C(block)", df).fit()))1
2
3df sum_sq mean_sq F PR(>F)
C(block) 5.0 343.295 68.659 2.318386 0.086072
Residual 18.0 533.070 29.615 NaN NaN - R
1
2
3
4
5
6
7
8
9
10
11
12
13df <- data.frame(
block = factor(rep(1:6, each = 4), levels = 1:6),
N = factor(c(0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0,
1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0), levels = 0:1),
P = factor(c(1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0), levels = 0:1),
K = factor(c(1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1,
0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0), levels = 0:1),
yield = c(49.5, 62.8, 46.8, 57.0, 59.8, 58.5, 55.5, 56.0,
62.8, 55.8, 69.5, 55.0, 62.0, 48.8, 45.5, 44.2,
52.0, 51.5, 49.8, 48.8, 57.2, 59.0, 53.2, 56.0)
)
summary(aov(yield ~ block, df))1
2
3
4
5Df Sum Sq Mean Sq F value Pr(>F)
block 5 343.3 68.66 2.318 0.0861 .
Residuals 18 533.1 29.61
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
- 问题:下表为
- Kruskal-Wallis H检验(one-way ANOVA on ranks)
- 作用
- 一种基于排序的非参数检验,用来检验两个或以上的样本是否来自同一总体(是否有显著差异)。
- 符号补充定义
:第 个样本的秩的和
- 一般计算过程
- 所有样本混合排序
- 计算每个样本秩的和
- 计算统计量
近似满足 分布
- Python
1
2
3# needed 3rd party packages: scipy
from scipy import stats
print(stats.kruskal(x, y)) - R
1
kruskal.test(y ~ x)
- 作用
- 双/多因素方差分析
- 例子
- 数据
- 见上文“单因素方差分析”部分的例子
- Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# needed 3rd party packages: pandas, statsmodels
import pandas as pd
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
df = pd.DataFrame.from_dict({
"block": [i // 4 + 1 for i in range(24)],
"N": [0] + [int(x) for x in bin(6057132)[2:]],
"P": [int(x) for x in bin(12961174)[2:]],
"K": [int(x) for x in bin(9852474)[2:]],
"yield": [49.5, 62.8, 46.8, 57.0, 59.8, 58.5, 55.5, 56.0,
62.8, 55.8, 69.5, 55.0, 62.0, 48.8, 45.5, 44.2,
52.0, 51.5, 49.8, 48.8, 57.2, 59.0, 53.2, 56.0]
})
# Rename the column "yield" to "yield_" to avoid conflicting with Python's
# reserved word "yield" when passed to `statsmodels.formula.api.ols`.
df.rename(columns={"yield": "yield_"}, inplace=True)
print(anova_lm(ols("yield_ ~ C(block) + C(N) * C(P) * C(K)", df).fit()))1
2
3
4
5
6
7
8
9
10df sum_sq mean_sq F PR(>F)
C(block) 5.0 343.295000 68.659000 4.446666 0.015939
C(N) 1.0 189.281667 189.281667 12.258734 0.004372
C(P) 1.0 8.401667 8.401667 0.544130 0.474904
C(K) 1.0 95.201667 95.201667 6.165689 0.028795
C(N):C(P) 1.0 21.281667 21.281667 1.378297 0.263165
C(N):C(K) 1.0 33.135000 33.135000 2.145972 0.168648
C(P):C(K) 1.0 0.481667 0.481667 0.031195 0.862752
C(N):C(P):C(K) 1.0 23.965461 23.965461 1.552111 0.236600
Residual 12.0 185.286667 15.440556 NaN NaN - R
1
2
3
4
5
6
7
8
9
10
11
12
13df <- data.frame(
block = factor(rep(1:6, each = 4), levels = 1:6),
N = factor(c(0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0,
1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0), levels = 0:1),
P = factor(c(1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0), levels = 0:1),
K = factor(c(1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1,
0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0), levels = 0:1),
yield = c(49.5, 62.8, 46.8, 57.0, 59.8, 58.5, 55.5, 56.0,
62.8, 55.8, 69.5, 55.0, 62.0, 48.8, 45.5, 44.2,
52.0, 51.5, 49.8, 48.8, 57.2, 59.0, 53.2, 56.0)
)
summary(aov(yield ~ block + N * P * K, df))1
2
3
4
5
6
7
8
9
10
11Df Sum Sq Mean Sq F value Pr(>F)
block 5 343.3 68.66 4.447 0.01594 *
N 1 189.3 189.28 12.259 0.00437 **
P 1 8.4 8.40 0.544 0.47490
K 1 95.2 95.20 6.166 0.02880 *
N:P 1 21.3 21.28 1.378 0.26317
N:K 1 33.1 33.13 2.146 0.16865
P:K 1 0.5 0.48 0.031 0.86275
Residuals 12 185.3 15.44
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 - 结果分析
- 不同地块之间平均产量有显著差异(
)。 - 施与不施氮(N)肥之间平均产量有显著差异(
)。 - 施与不施磷(P)肥之间平均产量没有显著差异(
)。 - 施与不施钾(K)肥之间平均产量有显著差异(
)。 - 氮—磷—钾之间的交互作用不显著,意味着施某种肥料对产量的影响不受其它施肥措施的影响。
- 不同地块之间平均产量有显著差异(
- 数据
- 例子
- 相关数值的计算方法
- 符号与变量名的对应关系
: alpha
: df1
: df2
: F
- 不完全贝塔函数:
- 解析解:
- Python:
scipy.stats.f.cdf(F, df1, df2)
- R:
pf(F, df1, df2)
- 不完全贝塔函数:
- Python:
scipy.stats.f.ppf(1 - alpha, df1, df2)
- R:
qt(1 - alpha, df1, df2)
- Python:
- 符号与变量名的对应关系
- 作用
卡方检验
- 作用
- 用于类别变量(分类型变量),测试观察频数与期望频数没有显著差异。
- 类别变量分类
- 无次序(Nominal):学生、工程师、教师……
- 有次序(Ordinal):不喜欢、喜欢、很喜欢……
- 数据表现
- 计数型的频率表
- 类别之间的排他性
- 两个类别变量的
独立性检验 - 符号重定义
:第一个类别变量的第 种取值 :第一个类别变量总共可取的值数 :第二个类别变量的第 种取值 :第二个类别变量总共可取的值数 :第一个类别变量取第 个取值、第二个类别变量取第 个取值时的观察频数 :第一个类别变量取第 个取值时的总观察频数 :第二个类别变量取第 个取值时的总观察频数 :观察总数 :第一个类别变量取第 个取值、第二个类别变量取第 个取值时的期望频数
- 观察频数表图示
- 原假设:不成对的观测对象中的两个变量是相互独立的(观测数据是不同组独立随机选择的)
- 备择假设:不成对的观测对象中的两个变量不是相互独立的(观测数据不是不同组独立随机选择的)
- 自由度:
- 统计量:
- 拒绝域:
值: - Cramer’s V
- 作用:评估两个变量之间的关联强度
统计量: - 计算公式:
- 例子
- 问题:
份关于性别与对猫和狗偏好(二选一)的调查问卷的结果如下表。性别与对猫和狗偏好是否独立? - 原假设:性别与对猫和狗偏好之间独立
- 备择假设:性别与对猫和狗偏好之间不独立
- 期望频数表
- 统计量:
- 临界值:
- 结论:性别与对猫和狗偏好之间不独立
- Python
1
2
3
4
5
6
7
8# needed 3rd party packages: scipy
from scipy import stats
x = [[207, 282], [231, 242]]
chi2, p, df, expected = stats.chi2_contingency(x, correction=False)
print("chi2 =", chi2)
print("p-value =", p)
print("df =", df)
print("expected values:", repr(expected), sep="\n")1
2
3
4
5
6chi2 = 4.103526475356585
p-value = 0.04279386669738378
df = 1
expected values:
array([[222.64241164, 266.35758836],
[215.35758836, 257.64241164]]) - R
1
2x <- rbind(c(207, 282), c(231, 242))
chisq.test(x, correct = FALSE)1
2
3
4
5
6
Pearson's Chi-squared test
data: x
X-squared = 4.1035, df = 1, p-value = 0.04279
- 问题:
- 相关数值的计算方法
- 符号与变量名的对应关系
: alpha
: df
: chi2
- 解析解:
- Python:
scipy.stats.chi2.cdf(chi2, df)
- R:
pchisq(chi2, df)
- 解析解:
- Python:
scipy.stats.chi2.ppf(1 - alpha, df)
- R:
qchisq(1 - alpha, df)
- Python:
- 符号与变量名的对应关系
- 符号重定义
- 作用
方差比较
- Fisher’s
检验 - 作用
- 检验两个正态总体的方差
与 之比 与给定值 之间的大小关系。一般取 ,以比较两总体方差之间的大小关系。
- 检验两个正态总体的方差
- 自由度
- 统计量
- 计算公式:
- 注意事项:一般约定取较大的样本方差作为分子,较小的样本方差作为分母,以保证
。(参考链接:https://zhuanlan.zhihu.com/p/139151375)
- 计算公式:
- 不同大小关系应用的假设与拒绝域
- 不相等
- 原假设:
- 备择假设:
- 拒绝域:
值:
- 原假设:
- 大于
- 原假设:
- 备择假设:
- 拒绝域:
值:
- 原假设:
- 小于
- 原假设:
- 备择假设:
- 拒绝域:
值:
- 原假设:
- 不相等
- R
1
var.test(x, y, alternative = "two.sided")
- 作用
- Bartlett检验
- 作用
- 检验多个正态总体的方差是否相同(方差齐次性)。
- 符号重定义
:样本组数 :第 组样本的样本量 :样本总数 :第 组样本的标准差 :第 组样本对应总体的标准差
- 原假设:所有样本对应总体的方差均相等
- 备择假设:至少有两个样本对应总体的方差不相等
- 合并方差:
- 统计量:
- 拒绝域:
- 例子
- 问题:下表为
种不同杀虫剂(编号 A
至F
)有效杀死害虫的数量,一行表示一种杀虫剂的样本。数据来源为R语言自带的InsectSprays
数据集。所有样本对应总体的方差是否相等? - 原假设:所有样本对应总体的方差相等
- 备择假设:至少有两组样本对应总体的方差不相等
- 统计量:
- 临界值:
- 结论:至少有两组样本对应总体的方差不相等
- Python
1
2
3
4
5
6
7
8
9# needed 3rd party packages: scipy
from scipy import stats
x = [[10, 7, 20, 14, 14, 12, 10, 23, 17, 20, 14, 13],
[11, 17, 21, 11, 16, 14, 17, 17, 19, 21, 7, 13],
[0, 1, 7, 2, 3, 1, 2, 1, 3, 0, 1, 4],
[3, 5, 12, 6, 4, 3, 5, 5, 5, 5, 2, 4],
[3, 5, 3, 5, 3, 6, 1, 1, 3, 2, 6, 4],
[11, 9, 15, 22, 15, 16, 13, 10, 26, 26, 24, 13]]
print(stats.bartlett(*x))1
BartlettResult(statistic=25.959825320368683, pvalue=9.08512233294532e-05)
- R
1
2
3
4
5
6
7
8x <- c(10, 7, 20, 14, 14, 12, 10, 23, 17, 20, 14, 13,
11, 17, 21, 11, 16, 14, 17, 17, 19, 21, 7, 13,
0, 1, 7, 2, 3, 1, 2, 1, 3, 0, 1, 4,
3, 5, 12, 6, 4, 3, 5, 5, 5, 5, 2, 4,
3, 5, 3, 5, 3, 6, 1, 1, 3, 2, 6, 4,
11, 9, 15, 22, 15, 16, 13, 10, 26, 26, 24, 13)
g <- rep(1:6, each = 12)
bartlett.test(x, g)1
2
3
4
5
6
Bartlett test of homogeneity of variances
data: x and g
Bartlett's K-squared = 25.96, df = 5, p-value = 9.085e-05
- 问题:下表为
- 作用
- Fligner-Killeen检验
- 作用
- 基于秩的多组方差齐次性的非参数检验。
- 例子
- 数据与问题:如前文“Bartlett检验”部分
- Python
1
2
3
4
5
6
7
8
9# needed 3rd party packages: scipy
from scipy import stats
x = [[10, 7, 20, 14, 14, 12, 10, 23, 17, 20, 14, 13],
[11, 17, 21, 11, 16, 14, 17, 17, 19, 21, 7, 13],
[0, 1, 7, 2, 3, 1, 2, 1, 3, 0, 1, 4],
[3, 5, 12, 6, 4, 3, 5, 5, 5, 5, 2, 4],
[3, 5, 3, 5, 3, 6, 1, 1, 3, 2, 6, 4],
[11, 9, 15, 22, 15, 16, 13, 10, 26, 26, 24, 13]]
print(stats.fligner(*x))1
FlignerResult(statistic=14.482781038458608, pvalue=0.012816779189709195)
- R
1
2
3
4
5
6
7
8x <- c(10, 7, 20, 14, 14, 12, 10, 23, 17, 20, 14, 13,
11, 17, 21, 11, 16, 14, 17, 17, 19, 21, 7, 13,
0, 1, 7, 2, 3, 1, 2, 1, 3, 0, 1, 4,
3, 5, 12, 6, 4, 3, 5, 5, 5, 5, 2, 4,
3, 5, 3, 5, 3, 6, 1, 1, 3, 2, 6, 4,
11, 9, 15, 22, 15, 16, 13, 10, 26, 26, 24, 13)
g <- rep(1:6, each = 12)
fligner.test(x, g)1
2
3
4
5
6
Fligner-Killeen test of homogeneity of variances
data: x and g
Fligner-Killeen:med chi-squared = 14.483, df = 5, p-value = 0.01282
- 作用
- Fisher’s
相关分析
简单线性相关
- 作用
- 相关分析测试随机变量之间的统计依赖性。
- 相关系数定量给出相关性的大小。
- 相关性不能用于推断变量之间的因果关系。
- Pearson相关系数
- 概念
- 一种参数方法,衡量变量之间的线性相关性,反映整个样本的平均响应。
- 计算
- 总体:
- 样本:
- 总体:
- 显著性检验
- 原假设:两变量之间存在线性相关关系
- 备择假设:两变量之间不存在线性相关关系
- 自由度:
- 统计量:
- 概念
- 作用
Spearman秩相关
- 概念
- 一种测试统计依赖性的非参数方法,适用于连续与离散型变量,刻画的是随机变量之间的单调关系,测量的是样本对应排序的响应。
- 与绝对值大小无关,对异常值不敏感。
- 计算
- 观测值的排序差:
- 观测值的排序差:
- 概念
典型相关
- 概念
- 将一组变量和另一组变量之间的相关性转化为两个新的综合变量(原变量的线性组合—主成分)之间的相关,并使得新的综合变量之间存在最大可能的相关性。
- 概念
空间自相关
- “自”是指同一地理现象、过程或变量在空间上的分布。
- 空间自相关用来刻画一个对象与其临近对象的相似程度。
全局莫兰指数(Global Moran’s I)
- 作用
- 衡量区域(全局)尺度上某空间随机变量整体自相关的程度。
- 符号定义
:空间对象(单元)个数 :变量 在第 个单元的取值 :所有单元取值的均值 :第 个单元与第 个单元之间的权重(通常两单元相邻取 、不相邻取 ) :所有权重之和
- 计算
- 显著性检验
- 原假设:变量
在空间 个单元上随机分布(期望 ) - 备择假设:变量
在空间 个单元上不是随机分布的 - 期望:
- 方差
- 统计量:
- 拒绝域
:变量空间分布比期望的随机分布更加聚集(正相关), 值为 。 :变量空间分布比期望的随机分布更加分散(负相关), 值为 。
- 原假设:变量
- 例子
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
eire.dbf
、eire.shp
和eire.shx
。 - 问题:计算爱尔兰
个县A型血采样人口比例( A
字段)数据的全局莫兰指数,空间权重采用二值化边连接情况,问县域空间分布有何特点(采用随机化假设)? - 统计量:
- 临界值:
- 结论:变量空间分布比期望的随机分布更加聚集。
- Python
1
2
3
4
5
6
7
8
9
10
11
12
13# needed 3rd party packages: esda, geopandas, libpysal
# needed but unused 3rd party packages: matplotlib
import geopandas as gpd
from esda.moran import Moran
from libpysal.weights import Rook
gdf = gpd.read_file("eire.shp")
wgt = Rook.from_dataframe(gdf)
moran = Moran(gdf["A"], wgt, "B", two_tailed=False)
print("Moran's I =", moran.I)
print("z-score =", moran.z_rand)
print("p-value =", moran.p_rand)
print("E(I) =", moran.EI)
print("Var(I) =", moran.VI_rand)1
2
3
4
5Moran's I = 0.4794475720463515
z-score = 4.468431593032059
p-value = 3.93976011314745e-06
E(I) = -0.04
Var(I) = 0.013513667028641053 - R
1
2
3
4
5
6
7# needed 3rd party packages: sf, spdep
library("sf")
library("spdep")
shp <- sf::st_read("eire.shp")
nbs <- spdep::poly2nb(shp, queen = FALSE)
wgt <- spdep::nb2listw(nbs, style = "B")
spdep::moran.test(shp$A, wgt)1
2
3
4
5
6
7
8
9
10
11
12
Moran I test under randomisation
data: shp$A
weights: spdep::nb2listw(nbs, style = "B")
Moran I statistic standard deviate = 4.4684, p-value = 3.94e-06
alternative hypothesis: greater
sample estimates:
Moran I statistic Expectation Variance
0.47944757 -0.04000000 0.01351367
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
- 相关数值的计算方法
- 符号与变量名的对应关系
: alpha
: z
- 解析解:
- Python:
scipy.stats.norm.cdf(z)
- R:
pnorm(F)
- 解析解:
- Python:
scipy.stats.norm.ppf(1 - alpha)
- R:
qnorm(1 - alpha)
- Python:
- 符号与变量名的对应关系
- 作用
高/低聚类(Getis-Ord General G)
- 作用
- 衡量区域(全局)尺度上某空间随机变量高值/低值的聚集程度的统计量。
- 符号定义
:空间对象(单元)个数 :变量 在第 个单元的取值 :第 个单元与第 个单元之间的权重(通常两单元相邻取 、不相邻取 )
- 计算
- 当
时有
- 显著性检验
- 原假设:变量
在空间 个单元上随机分布 - 备择假设:变量
在空间 个单元上不是随机分布的 - 期望:
- 方差
- 统计量:
- 拒绝域
:高值变量空间分布比期望的随机分布更加聚集 :低值变量空间分布比期望的随机分布更加聚集
- 原假设:变量
- 例子
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
sids.dbf
、sids.shp
和sids.shx
。 - 问题:计算美国北卡罗来纳州
个县在1979年6月1日至1978年6月30日婴儿猝死综合症(SIDS)数量( SID74
字段)数据的Getis-Ord General G,空间权重采用二值化边点连接情况,问在县级尺度空间分布上的特征(采用随机化假设)? - 统计量:
- 临界值:
- 结论:高值变量空间分布比期望的随机分布更加聚集。
- Python
1
2
3
4
5
6
7
8
9
10
11
12
13# needed 3rd party packages: esda, geopandas, libpysal
# needed but unused 3rd party packages: matplotlib
import geopandas as gpd
from esda.getisord import G
from libpysal.weights import Queen
gdf = gpd.read_file("sids.shp")
wgt = Queen.from_dataframe(gdf)
gogg = G(gdf["SID79"], wgt)
print("G =", gogg.G)
print("z-score =", gogg.z_norm)
print("p-value =", gogg.p_norm)
print("E(G) =", gogg.EG)
print("Var(G) =", gogg.VG)1
2
3
4
5G = 0.06879519836041575
z-score = 3.64815435158266
p-value = 0.00013206547330713025
E(G) = 0.049494949494949494
Var(G) = 2.7988486120154605e-05 - R
1
2
3
4
5
6
7# needed 3rd party packages: sf, spdep
library("sf")
library("spdep")
shp <- sf::st_read("sids.shp")
nbs <- spdep::poly2nb(shp)
wgt <- spdep::nb2listw(nbs, style = "B")
spdep::globalG.test(shp$SID79, wgt)1
2
3
4
5
6
7
8
9
10
11
12
Getis-Ord global G statistic
data: shp$SID79
weights: wgt
standard deviate = 3.6482, p-value = 0.0001321
alternative hypothesis: greater
sample estimates:
Global G statistic Expectation Variance
6.879520e-02 4.949495e-02 2.798849e-05
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
- 作用
局部莫兰指数(Local Moran’s I)
- 说明
- 全局莫兰指数在假定均质的情况下给出变量总体自相关程度的统计量。
- 如果区域是非均质的,全局莫兰指数无实际意义(H0下方差变化)。
- 即使不存在显著的全局自相关/聚集,局部尺度也可能存在。
- 全局莫兰指数可以分解为Local indicators of spatial association(LISA)。
- 作用
- 可以用来识别高—高和低—低聚集,以及高—低和低—高异常。
- 符号定义
:空间对象(单元)个数 :变量 在第 个单元的取值 :第 个单元与第 个单元之间的权重 :所有权重之和
- 计算
- 与全局莫兰指数的关系
- 显著性检验
- 原假设:第
个单元与相邻的单元不具有相似的值(随机分布) - 备择假设:第
个单元与相邻的单元具有相似的值(不为随机分布) - 期望:
- 方差
- 统计量:
- 拒绝域
:第 个单元与相邻单元有相似的值(高—高/低—低),即聚集。 :第 个单元与相邻单元有相似的值(高—低/低—高),即异常。
- 原假设:第
- 说明
格局分析
Join-count统计
- 说明
- 当空间随机变量是二值/类型的时候,Join-count用来评价空间离散/聚集程度。
- Join-count统计是全局统计,也称为黑-白统计
- 二值化情况下,变量临近区域的排列方式(Join)有三种:BB(1-1),BW(1-0),WW(0-0)。
- 二值型空间变量的Join-count统计
- 符号定义
:空间单元数量 :第 个空间单元的值( 为黑色、 为白色) :黑色单元的数量 :白色单元的数量 :第 个空间单元与第 个空间单元之间的权重(两者相邻取 、不相邻或 取 )
- 假设
- 原假设:空间变量不存在空间自相关,为随机分布。
- 备择假设:空间变量存在空间自相关。
- 概率
- 某个单元为黑色的概率:
- 某个单元为白色的概率:
- 相邻单元均为黑色的概率:
- 相邻单元均为白色的概率:
- 相邻单元为一黑一白的概率:
- 某个单元为黑色的概率:
- 期望
- 相邻单元均为黑色的期望:
- 相邻单元均为白色的期望:
- 相邻单元为一黑一白的期望:
- 相邻单元均为黑色的期望:
- 观察值
- 相邻单元均为黑色的观察值:
- 相邻单元均为白色的观察值:
- 相邻单元为一黑一白的观察值:
- 相邻单元均为黑色的观察值:
- 统计量
- 例子
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
columbus.dbf
、columbus.shp
和columbus.shx
。 - 问题:数据为美国俄亥俄州哥伦布市1980年
个街区入室盗窃和偷车每千户发案率( CRIME
字段、单位:),空间权重采用二值化边点连接情况。先按 划分为“low”、“high”两个等级,后按 划分为三个等级,分别判断在两种划分方式下的空间格局,即犯罪发生是空间集中的(固定作案)还是离散的(随机作案)。 - R
1
2
3
4
5
6
7
8
9
10
11
12
13# needed 3rd party packages: sf, spdep
library("sf")
library("spdep")
shp <- sf::st_read("columbus.shp")
nbs <- spdep::poly2nb(shp)
wgt <- spdep::nb2listw(nbs, style = "B")
crime <- cut(shp$CRIME, c(0, 35, 100), c("low", "high"))
cat("\nJoincount segments: [0,35], (35,100]\n")
spdep::joincount.multi(crime, wgt)
cat("\n\nJoincount segments: [0,20], (20,40], (40,100]\n")
crime <- cut(shp$CRIME, c(0, 20, 40, 100), c("low", "medium", "high"))
spdep::joincount.multi(crime, wgt)
cat("\nJtot: all pairs of x:y where x != y\n")1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Joincount segments: [0,35], (35,100]
Joincount Expected Variance z-value
low:low 35.000 30.102 19.247 1.1164
high:high 54.000 27.694 18.219 6.1630
high:low 29.000 60.204 26.630 -6.0468
Jtot 29.000 60.204 26.630 -6.0468
Joincount segments: [0,20], (20,40], (40,100]
Joincount Expected Variance z-value
low:low 12.0000 6.6224 5.4893 2.2952
medium:medium 18.0000 15.3520 11.5927 0.7777
high:high 37.0000 17.1582 12.7065 5.5663
medium:low 17.0000 21.6735 15.5988 -1.1833
high:low 5.0000 22.8776 16.2539 -4.4343
high:medium 29.0000 34.3163 21.5374 -1.1456
Jtot 51.0000 78.8673 23.5658 -5.7406
*Jtot: all pairs of x:y where x != y
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
- 符号定义
- 说明
回归分析
简单线性回归
- 说明
- 回归分析用以估算自变量和因变量之间的定量关系(二者的函数关系),评估给定自变量的情况下因变量的条件期望值(预测)。
- 前提是所设定的自变量和因变量存在理论上的因果关系/相关性。
- 简单线性回归拟合两个变量间的线性作用(函数)关系。
- 符号定义
:样本量 :第 个自变量观测值 :与 对应的第 个因变量观测值 :自变量观测值的均值 :因变量观测值的均值 :与 对应的第 个因变量拟合值
- 基本方程
:因变量 :截距 :斜率 :自变量 :服从 的随机误差
- 最小二乘法
- 参数估计
- 斜率:
- 截距:
- 斜率:
- 平方和分解
- 总偏差平方和:
- 回归平方和:
- 残差平方和:
- 三者关系:
- 决定系数:
- 总偏差平方和:
- 显著性检验
- 线性关系检验
- 目的:检验自变量与因变量之间的线性关系是否显著
- 原假设:
- 备择假设:
- 统计量:
- 拒绝域:
- 回归系数的检验
- 目的:检验自变量对因变量的影响是否显著
- 原假设:
- 备择假设:
的标准差: - 统计量:
- 拒绝域:
- 线性关系检验
- 例子
- 数据:https://github.com/Nowosad/spData/tree/master/data中的
elect80.rda
。 - 问题:数据为1980年美国
个县级区域的总统选举数据,用最小二乘法对自变量 (19岁以上合法选民大学毕业的比例、pc_college
字段)与因变量 (19岁以上合法选民参加投票的比例、pc_turnout
字段)进行简单线性回归。 - Python
1
2
3
4
5
6
7
8# needed 3rd party packages: rdata, statsmodels
import rdata
from statsmodels.formula.api import ols
parsed = rdata.parser.parse_file("elect80.rda")
converted = rdata.conversion.convert(parsed)
df = converted["elect80"].data
lm = ols("pc_turnout ~ pc_college", df).fit()
print(lm.summary())1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25OLS Regression Results
==============================================================================
Dep. Variable: pc_turnout R-squared: 0.232
Model: OLS Adj. R-squared: 0.232
Method: Least Squares F-statistic: 938.4
Date: Sun, 10 Aug 1919 Prob (F-statistic): 2.63e-180
Time: 11:45:14 Log-Likelihood: 2916.7
No. Observations: 3107 AIC: -5829.
Df Residuals: 3105 BIC: -5817.
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
Intercept 0.3218 0.008 38.483 0.000 0.305 0.338
pc_college 0.5115 0.017 30.634 0.000 0.479 0.544
==============================================================================
Omnibus: 58.803 Durbin-Watson: 1.236
Prob(Omnibus): 0.000 Jarque-Bera (JB): 71.317
Skew: 0.267 Prob(JB): 3.26e-16
Kurtosis: 3.515 Cond. No. 12.2
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified. - R
1
2
3
4
5
6# needed 3rd party packages: sp
load("elect80.rda")
fit <- lm(pc_turnout ~ pc_college, elect80)
summary(fit)
cat("\n95% Confidence Interval:\n")
confint(fit, level = 0.95)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Call:
lm(formula = pc_turnout ~ pc_college, data = elect80)
Residuals:
Min 1Q Median 3Q Max
-0.46158 -0.06276 -0.00775 0.06005 0.39146
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.321783 0.008362 38.48 <2e-16 ***
pc_college 0.511482 0.016697 30.63 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.09467 on 3105 degrees of freedom
Multiple R-squared: 0.2321, Adjusted R-squared: 0.2318
F-statistic: 938.4 on 1 and 3105 DF, p-value: < 2.2e-16
95% Confidence Interval:
2.5 % 97.5 %
(Intercept) 0.3053883 0.3381782
pc_college 0.4787443 0.5442196 - 结论:拟合方程为
- 数据:https://github.com/Nowosad/spData/tree/master/data中的
- 参数估计
- 泰尔—森估算(Theil-Sen Estimator)
- 说明
- 基于最小二乘的普通线性回归对于异常值敏感。
- 该方法将斜率的估计计算为成对点斜率的中位数
、截距为成对点截距的中位数 ,进而有效地排除异常值的影响。 的置信区间的计算为百分位数 之间的成对点斜率和截距。- 该方法是对简单线性回归斜率的无偏估计,比最小二乘方法更加稳健。
- 该方法对于异常值的敏感性存在断点
,意味着对在此比例之下的异常值均不敏感。
- 说明
- 说明
- 多元线性回归
- 符号定义
:样本量 :自变量数 :第 个自变量的第 个观测值 :第 个因变量观测值 :第 个自变量观测值的均值 :因变量观测值的均值 :第 个因变量的拟合值
- 基本方程
:因变量 :自变量 :随机误差
- 最小二乘法
- 参数估计
- 决定系数
- 决定系数
- 解释:决定系数描述回归模型中因变量变化可由所有自变量解释的程度,会随着自变量个数的增加而递增(即使增加的自变量与因变量间无关)。
- 计算:
- 校正决定系数
- 解释:校正决定系数使用自由度为权重因子,剔除了自变量个数的影响,仅在增加的自变量能够增加对因变量变化的解释程度时,才会增加。
- 计算:
- 决定系数
- 显著性检验
- 回归方程的检验
- 目的:检验因变量与所有自变量之间的线性关系是否显著
- 原假设:所有
( )都为 - 备择假设:存在
( )为 - 统计量:
- 拒绝域:
- 回归系数的检验
- 目的:检验因变量与第
个( )自变量之间的线性关系是否显著(该自变量对因变量的影响是否显著) - 原假设:
- 备择假设:
的标准差:- 统计量:
- 拒绝域:
- 目的:检验因变量与第
- 回归方程的检验
- 例子
- 数据:https://github.com/Nowosad/spData/tree/master/data中的
elect80.rda
。 - 问题:数据为1980年美国
个县级区域的总统选举数据,用最小二乘法对自变量 (19岁以上合法选民大学毕业的比例、pc_college
字段)、自变量 (19岁以上合法选民中房主的比例、pc_homeownership
字段)、自变量 (19岁以上合法选民人均收入、pc_income
字段)与因变量 (19岁以上合法选民参加投票的比例、pc_turnout
字段)进行简单线性回归。 - Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14# needed 3rd party packages: rdata, statsmodels
import rdata
from statsmodels.formula.api import ols
parsed = rdata.parser.parse_file("elect80.rda")
converted = rdata.conversion.convert(parsed)
df = converted["elect80"].data
data = {
"x1": df["pc_college"],
"x2": df["pc_homeownership"],
"x3": df["pc_income"],
"y": df["pc_turnout"]
}
lm = ols("y ~ x1 + x2 + x3", data).fit()
print(lm.summary())1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.462
Model: OLS Adj. R-squared: 0.462
Method: Least Squares F-statistic: 889.7
Date: Sun, 10 Aug 1919 Prob (F-statistic): 0.00
Time: 11:45:14 Log-Likelihood: 3470.7
No. Observations: 3107 AIC: -6933.
Df Residuals: 3103 BIC: -6909.
Df Model: 3
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
Intercept 0.0748 0.015 5.048 0.000 0.046 0.104
x1 0.6920 0.019 36.294 0.000 0.655 0.729
x2 0.9011 0.033 27.179 0.000 0.836 0.966
x3 -0.0199 0.001 -16.806 0.000 -0.022 -0.018
==============================================================================
Omnibus: 502.446 Durbin-Watson: 1.286
Prob(Omnibus): 0.000 Jarque-Bera (JB): 1591.160
Skew: 0.820 Prob(JB): 0.00
Kurtosis: 6.099 Cond. No. 221.
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified. - R
1
2
3
4
5
6
7
8
9
10# needed but not loaded 3rd party packages: sp
load("elect80.rda")
y <- elect80$pc_turnout
x1 <- elect80$pc_college
x2 <- elect80$pc_homeownership
x3 <- elect80$pc_income
fit <- lm(y ~ x1 + x2 + x3)
summary(fit)
cat("\n95% Confidence Interval\n")
confint(fit, level = 0.95)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Call:
lm(formula = y ~ x1 + x2 + x3)
Residuals:
Min 1Q Median 3Q Max
-0.23074 -0.05443 -0.00963 0.04717 0.73789
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.074784 0.014814 5.048 4.72e-07 ***
x1 0.692005 0.019067 36.294 < 2e-16 ***
x2 0.901091 0.033154 27.179 < 2e-16 ***
x3 -0.019890 0.001184 -16.806 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.07923 on 3103 degrees of freedom
Multiple R-squared: 0.4624, Adjusted R-squared: 0.4619
F-statistic: 889.7 on 3 and 3103 DF, p-value: < 2.2e-16
95% Confidence Interval
2.5 % 97.5 %
(Intercept) 0.04573726 0.10383066
x1 0.65461995 0.72938945
x2 0.83608491 0.96609765
x3 -0.02221041 -0.01756935 - 结论:拟合方程为
- 数据:https://github.com/Nowosad/spData/tree/master/data中的
- 参数估计
- 标准化系数
- 解释变量量纲不同时,不容易比较单位自变量的变化引起多少因变量的改变。
- 将所有变量进行标准化变换后进行拟合,产生
拟合系数。 - 解释为自变量一个标准差的变化会引起因变量多少标准差的变化。
- 拟合后系数的显著性、整体拟合效果不会改变,只是产生了标准化的系数。
- 逐步回归
- 影响因变量的自变量可能很多,从中选择出具有显著影响的自变量建立“最优”的回归方程,为逐步回归。
- 可以采用AIC、均方误差最小等为选择依据。
- 选择方法包括前向、后向和逐步回归。
- 正则化
- 在自变量存在多重共线关系的时候,会使均方根误差变得很大。
- 自变量过多和过少会造成过渡拟合与拟合不足。
- 逐步回归中变量的选择可能与研究问题的知识背景的矛盾。
- 正则化替代最小二乘估计包括L1(Lasso回归)、L2(Ridge回归)。
- 主成分回归
- 主成分回归是将一组解释变量利用主成分变换(线性组合)的方法产生新变量,与因变量做回归。
- 主成分回归是用来解决解释变量之间的共线问题。
- 主成分进行正交变换,是一种非监督式方法,其构建只用到解释变量的信息。
- 偏最小二乘回归
- 偏最小二乘也是利用主成分思想,对主成分进行回归。
- 偏最小二乘是一种监督式的方法,利用Y和X的信息,通过最小化误差平方和找到最佳变换。
- 主成分回归中主成分都是正交的,而偏最小二乘不是。
- 确定主成分个数时,都可以采用交叉验证方法。
- 符号定义
Logistic回归
- 说明
- 当因变量是二值型、分类型或有序型变量时,采用Logistic回归。
- Logistic回归对因变量
进行Logit变换。 的概率在Logit变换后假定为解释变量的线性模型。
- 广义线性模型
- 估计采用最大似然法。
- 参数显著性检验采用Wald检验(例如:Z统计)。
- 模型显著性使用似然比检验。
- 似然比检验通过包含和排除所有自变量参数所产生的似然函数的比值来计算统计量
。 (Deviance)近似服从自由度为参数个数的 分布。
- 基本方程
- 例子
- 数据:https://stats.idre.ucla.edu/stat/data/binary.csv
- 问题:采用Logistic回归,拟合自变量
(GRE成绩、数值型变量、gre
字段)、自变量 (GPA、数值型变量、gpa
字段)、自变量 (排名评级、取值范围为 的分类型变量、rank
字段)与因变量(是否录取,二值型变量、admit
字段)之间的关系。 - Python
1
2
3
4
5
6
7
8
9
10
11
12
13# needed 3rd party packages: pandas, statsmodels
import pandas as pd
from statsmodels.formula.api import glm
from statsmodels.genmod.families import Binomial
df = pd.read_csv("binary.csv")
data = {
"x1": df["gre"],
"x2": df["gpa"],
"x3": df["rank"],
"y": df["admit"]
}
lm = glm("y ~ x1 + x2 + C(x3)", data, family=Binomial()).fit()
print(lm.summary())1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Generalized Linear Model Regression Results
==============================================================================
Dep. Variable: y No. Observations: 400
Model: GLM Df Residuals: 394
Model Family: Binomial Df Model: 5
Link Function: Logit Scale: 1.0000
Method: IRLS Log-Likelihood: -229.26
Date: Sun, 10 Aug 1919 Deviance: 458.52
Time: 11:45:14 Pearson chi2: 397.
No. Iterations: 4 Pseudo R-squ. (CS): 0.09846
Covariance Type: nonrobust
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
Intercept -3.9900 1.140 -3.500 0.000 -6.224 -1.756
C(x3)[T.2] -0.6754 0.316 -2.134 0.033 -1.296 -0.055
C(x3)[T.3] -1.3402 0.345 -3.881 0.000 -2.017 -0.663
C(x3)[T.4] -1.5515 0.418 -3.713 0.000 -2.370 -0.733
x1 0.0023 0.001 2.070 0.038 0.000 0.004
x2 0.8040 0.332 2.423 0.015 0.154 1.454
============================================================================== - R
1
2
3
4
5
6
7
8
9df <- read.csv("binary.csv")
y <- df$admit
x1 <- df$gre
x2 <- df$gpa
x3_ <- factor(df$rank)
fit <- glm(y ~ x1 + x2 + x3_, family = binomial)
summary(fit)
cat("\n95% Confidence Interval\n")
confint(fit, level = 0.95)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Call:
glm(formula = y ~ x1 + x2 + x3_, family = binomial)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6268 -0.8662 -0.6388 1.1490 2.0790
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
x1 0.002264 0.001094 2.070 0.038465 *
x2 0.804038 0.331819 2.423 0.015388 *
x3_2 -0.675443 0.316490 -2.134 0.032829 *
x3_3 -1.340204 0.345306 -3.881 0.000104 ***
x3_4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 499.98 on 399 degrees of freedom
Residual deviance: 458.52 on 394 degrees of freedom
AIC: 470.52
Number of Fisher Scoring iterations: 4
95% Confidence Interval
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) -6.2716202334 -1.792547080
x1 0.0001375921 0.004435874
x2 0.1602959439 1.464142727
x3_2 -1.3008888002 -0.056745722
x3_3 -2.0276713127 -0.670372346
x3_4 -2.4000265384 -0.753542605 - 结论
- 拟合方程:
的取值:
- 拟合方程:
- 说明
Poisson回归
- 说明
- 当因变量是计数变量时,使用Poisson回归。
- Poisson回归假定因变量满足Poisson分布。
- 假定因变量期望的对数值是解释变量的线性函数。
- 基本方程
- 例子
- 数据:https://stats.idre.ucla.edu/stat/data/poisson_sim.csv
- 问题:采用Poisson回归,拟合自变量
(参加项目的类别、取值范围为 的分类型变量、prog
字段)、自变量 (数学成绩、数值型变量、math
字段)与因变量(高中生一年内获奖次数,数值型变量、num_awards
字段)之间的关系。 - Python
1
2
3
4
5
6
7
8
9
10
11
12# needed 3rd party packages: pandas, statsmodels
import pandas as pd
from statsmodels.formula.api import glm
from statsmodels.genmod.families import Poisson
df = pd.read_csv("poisson_sim.csv")
data = {
"x1": df["prog"],
"x2": df["math"],
"y": df["num_awards"]
}
lm = glm("y ~ C(x1) + x2", data, family=Poisson()).fit()
print(lm.summary())1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Generalized Linear Model Regression Results
==============================================================================
Dep. Variable: y No. Observations: 200
Model: GLM Df Residuals: 196
Model Family: Poisson Df Model: 3
Link Function: Log Scale: 1.0000
Method: IRLS Log-Likelihood: -182.75
Date: Sun, 10 Aug 1919 Deviance: 189.45
Time: 11:45:14 Pearson chi2: 212.
No. Iterations: 5 Pseudo R-squ. (CS): 0.3881
Covariance Type: nonrobust
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
Intercept -5.2471 0.658 -7.969 0.000 -6.538 -3.957
C(x1)[T.2] 1.0839 0.358 3.025 0.002 0.382 1.786
C(x1)[T.3] 0.3698 0.441 0.838 0.402 -0.495 1.234
x2 0.0702 0.011 6.619 0.000 0.049 0.091
============================================================================== - R
1
2
3
4
5
6
7
8df <- read.csv("poisson_sim.csv")
y <- df$num_awards
x1_ <- factor(df$prog)
x2 <- df$math
fit <- glm(y ~ x1_ + x2, family = poisson)
summary(fit)
cat("\n95% Confidence Interval\n")
confint(fit, level = 0.95)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Call:
glm(formula = y ~ x1_ + x2, family = poisson)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.2043 -0.8436 -0.5106 0.2558 2.6796
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.24712 0.65845 -7.969 1.60e-15 ***
x1_2 1.08386 0.35825 3.025 0.00248 **
x1_3 0.36981 0.44107 0.838 0.40179
x2 0.07015 0.01060 6.619 3.63e-11 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 287.67 on 199 degrees of freedom
Residual deviance: 189.45 on 196 degrees of freedom
AIC: 373.5
Number of Fisher Scoring iterations: 6
95% Confidence Interval
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) -6.57106799 -3.98529805
x1_2 0.43504394 1.85586906
x1_3 -0.49020399 1.26602301
x2 0.04949674 0.09107698 - 结论
- 拟合方程:
的取值:
- 拟合方程:
- 说明
广义线性回归
- 基本方程:
- 简单线性回归:
- 多元线性回归:
- Logistic回归:
- Poisson回归:
- ……
- 基本方程:
线性混合效应模型
- 说明
- 混合效应模型是线性回归模型用于分组数据的扩展。
- 分组的存在可能影响回归系数的变化。
- 混合效应分为固定(fix)效应和随机(random)效应两部分。
- 固定效应是指经典线性回归的部分,随机效用是指分组(地区/时间)差异部分。
- 传统的线性回归模型不能处理嵌套(nested)效应。
- 说明
地理加权回归
- 符号定义
:位置 :自变量数 :第 个自变量
- 基本方程
- 参数估计
:与位置 和距离有关的核权重矩阵
- 带宽
- 其选择决定了核权重随距离衰减的速度,直接影响回归结果。
- 由固定带宽和交叉验证来确定。
- 例子
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
columbus.dbf
、columbus.shp
和columbus.shx
。 - 问题:数据为美国俄亥俄州哥伦布市1980年
个街区入室盗窃和偷车每千户发案率 (CRIME
字段、单位: )、家庭收入 (INC
字段)与房屋价值 (HOVAL
字段)。采用地理加权回归,拟合自变量 、 与因变量 之间的关系。 - Python
1
2
3
4
5
6
7
8
9
10
11# needed 3rd party packages: geopandas, mgwr
import geopandas as gpd
from mgwr.gwr import GWR
from mgwr.sel_bw import Sel_BW
shp = gpd.read_file("columbus.shp")
y = shp[["CRIME"]].values
x = shp[["INC", "HOVAL"]].values
crd = shp[["X", "Y"]].values
bw = Sel_BW(crd, y, x, kernel="gaussian", fixed=True).search(criterion="CV")
fit = GWR(crd, y, x, bw, kernel="gaussian", fixed=True, hat_matrix=True).fit()
fit.summary()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49===========================================================================
Model type Gaussian
Number of observations: 49
Number of covariates: 3
Global Regression Results
---------------------------------------------------------------------------
Residual sum of squares: 6014.893
Log-likelihood: -187.377
AIC: 380.754
AICc: 383.664
BIC: 5835.869
R2: 0.552
Adj. R2: 0.533
Variable Est. SE t(Est/SE) p-value
------------------------------- ---------- ---------- ---------- ----------
X0 68.619 4.735 14.490 0.000
X1 -1.597 0.334 -4.780 0.000
X2 -0.274 0.103 -2.654 0.008
Geographically Weighted Regression (GWR) Results
---------------------------------------------------------------------------
Spatial kernel: Fixed gaussian
Bandwidth used: 2.280
Diagnostic information
---------------------------------------------------------------------------
Residual sum of squares: 1255.132
Effective number of parameters (trace(S)): 23.873
Degree of freedom (n - trace(S)): 25.127
Sigma estimate: 7.068
Log-likelihood: -148.986
AIC: 347.717
AICc: 403.369
BIC: 394.772
R2: 0.907
Adjusted R2: 0.814
Adj. alpha (95%): 0.006
Adj. critical t value (95%): 2.858
Summary Statistics For GWR Parameter Estimates
---------------------------------------------------------------------------
Variable Mean STD Min Median Max
-------------------- ---------- ---------- ---------- ---------- ----------
X0 58.938 14.623 23.242 63.899 80.882
X1 -1.186 1.132 -3.129 -0.985 1.289
X2 -0.140 0.346 -1.052 -0.097 0.792
=========================================================================== - R
1
2
3
4
5
6
7
8
9
10
11
12
13# needed 3rd party packages: sf, spgwr
library("sf")
library("spgwr")
shp <- sf::st_read("columbus.shp")
y <- shp$CRIME
x1 <- shp$INC
x2 <- shp$HOVAL
fm <- y ~ x1 + x2
crd <- cbind(shp$X, shp$Y)
bw <- spgwr::gwr.sel(fm, coords = crd, gweight = spgwr::gwr.Gauss)
cat(paste("Bandwidth = ", bw, "\n\n", sep = ""))
fit <- spgwr::gwr(fm, coords = crd, bandwidth = bw, gweight = spgwr::gwr.Gauss, hatmatrix = TRUE)
fit1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24Bandwidth = 2.27505962439391
Call:
spgwr::gwr(formula = formula, coords = xy, bandwidth = bw, gweight = spgwr::gwr.Gauss,
hatmatrix = TRUE)
Kernel function: spgwr::gwr.Gauss
Fixed bandwidth: 2.27506
Summary of GWR coefficient estimates at data points:
Min. 1st Qu. Median 3rd Qu. Max. Global
X.Intercept. 23.233234 54.124872 63.902588 68.756460 80.900619 68.6190
x1 -3.130714 -1.912908 -0.984380 -0.368564 1.291075 -1.5973
x2 -1.052811 -0.376735 -0.097394 0.030049 0.794577 -0.2739
Number of data points: 49
Effective number of parameters (residual: 2traceS - traceS'S): 29.6163
Effective degrees of freedom (residual: 2traceS - traceS'S): 19.3837
Sigma (residual: 2traceS - traceS'S): 8.027502
Effective number of parameters (model: traceS): 23.92796
Effective degrees of freedom (model: traceS): 25.07204
Sigma (model: traceS): 7.058361
Sigma (ML): 5.048946
AICc (GWR p. 61, eq 2.33; p. 96, eq. 4.21): 403.6187
AIC (GWR p. 96, eq. 4.22): 321.6635
Residual sum of squares: 1249.101
Quasi-global R2: 0.9070486
- 数据:https://github.com/Nowosad/spData/tree/master/inst/shapes中的
- 符号定义
趋势分析
- 线性趋势
- 说明
- 随着时间/空间存在线性改变,大小与平均变化有关。
- 拟合方程
:因变量 :截距/基线 :斜率/变化率 :时间/空间距离
- 参数求解(最小二乘法)
- 线性趋势显著性检验
- 原假设:
- 备择假设:
- 统计量:
- 拒绝域:
- 原假设:
- 说明
- 单调趋势
- 说明
- 随着时间/空间存在上升/下降的改变,通常只关心相对大小,并且对异常值不敏感。
- Mann-Kendall趋势检验
- 作用
- 一种非参数检验方法,能检验某一自然过程是处于随机波动还是存在确定的单调改变趋势。
- Mann-Kendall检验不需要样本遵从一定的分布,也不受少数异常值的干扰,只关心观测值的相对大小。
- 统计量
- 符号函数:
时转化为Z-Score:
- 完全随机假设下的期望与方差
- 作用
- 说明
- 随机性和断点检验
- 随机性(Randomness)检验
- 作用:检验观测结果或样本的取值出现是否随机
- 方法:Wallis-Moore Phase Frequency检验、Bartels rank von Neumann’s ratio检验、Wald-Wolfowitz Test检验……
- 断点(Change-point/Breakpoint)检验
- 作用:检验观测结果或样本是否存在突变点或转折点
- 方法:Lanzante’s test procedures、Pettitt检验、Buishand Range检验、Buishand U检验、Standard Normal Homogeneity检验……
- 随机性(Randomness)检验
- 空间插值
- 空间插值是指由已知点位的测量值预测其它点位的值,如高程、降雨、温度等。
- 空间插值是基于插值属性空间相关的假设。
- 空间相关性(作用)通常随距离而减少,空间插值一般认为是距离加权作用的函数。
- 空间插值输入的是采样点位数据,输出通常是格网化的面数据。
- 反距离权重插值(IDW)
- 思想
- 假设待插值点的值是其周围一定邻域内已知点的加权平均。
- 给距离近的点的权重大于距离远的点的权重。
- 权重按照距离呈现幂函数衰减,因此称为反距离权重插值。
- 原理
- 设
是变量 在未知点处的估计值,则有 。 - 其中
( )为未知点 在一定邻域内的采样点; 为搜索邻域内采样点的数目; 为每个采样点的权重; 为待估点和采样点之间的距离;$$p为指数参数,正值表征权重随距离衰减的快慢。
- 设
- 指数参数
的确定- 可通过最小化均方根预测误差RMSPE确定最佳
值。 - RMSPE是在交叉验证过程中对预测表面的误差进行量化。
- 针对几个不同的
值绘制RMSPE。 - 根据点拟合一条曲线(局部二次多项式插值法)。
- 从该曲线上将最小RMSPE对应的
值确定为最优选择。 - RMSPE计算公式为
。其中 为模拟值的个数; 为 对应模拟值的平均值。
- 可通过最小化均方根预测误差RMSPE确定最佳
- 思想
- 线性趋势
描述统计量
- 距离与相似性
- 距离是对象(点)之间相距多远的数值测量。
- 距离可以是物理空间的长度。
- 距离也可以是度量空间上的一般性测量,估算两个对象的相似性。
- 多样性
- 多样性指数定量测量在同一集合(区域)内,有多少种不同类型的对象以及每种类型对象数量的分布特征。
- 不同类型的数量称为丰富度(Richness)
- 多样性的指标有很多种计算方式,如Shannon指数、Rényi熵、Simpson指数、Gini–Simpson指数等。
- 不均衡系数
- Gini系数
- Gini系数是统计离散特征的一种测量。
- Gini系数用于描述一个区域内收入/财富在人群中的分布以及不均衡性评估。
- 由Corrado Gini于1912 的“Variability and Mutability”论文中提出。
- Theil指数
- Theil指数用来测量经济/地理变量空间分布的不均衡性。
- 由荷兰经济学家Henri Theil提出。
- Theil指数具有尺度上的可分解性(Decomposability),而Gini系数不具有。
- Gini系数
- 一致性
- 混淆矩阵
- Kappa系数
- ROC(受试者工作特征)曲线
- ROC利用制图的方法来表现不同阈值对于一个分类或者判别系统的执行情况,可以辅助阈值选取。
- ROC通常对比的是TPR(true positive rate = TP/P)和FPR(true negative rate = TN/N)对于不同分类模型和判别阈值的响应,可用于寻找优化的模型和阈值(敏感性与特异性之间的权衡trade-off、cost/benefit)。
- 地理可达性
- 考虑与位置拓扑和距离有关的资源供给—需求关系。
- 距离与相似性
矢量数据分析和TIN空间分析
矢量数据分析的再回顾
- 基本思想
- 矢量数据分析提供最简单、最朴素的空间几何操作
- 空间对象的几何属性、几何分析衍生出的变量,是空间统计、聚类分类、空间建模的基础变量。
- 数据组织
- 几何表达(二维三维笛卡尔坐标系/球面坐标系)
- 点:
、 ( 或 测度值) - 线:方向性、连通性
- 面:规则:三角形、六边形、S2面片等球面剖分单元;不规则:TIN三角网、泰森多边形、多边形;拓扑/非拓扑
- 体:三维地质、城市设施零部件、BIM
- 点:
- 几何表达(二维三维笛卡尔坐标系/球面坐标系)
- 数据存储
- 文件类型:GeoJSON、ESRI Shapefile、ESRI Coverage……
- 嵌入式数据库:GeoPackage、SpatiaLite……
- 空间数据库:Geodatabase、ArcSDE、PostgreSQL(PostGIS、TimescaleDB、pgRouting)、Oracle Spatial……
- 数据来源
- Open-Access数据
- 遥感:土地利用分类,ICESat-2激光测高,UAV航测……
- OSM、DCW 1:1000000世界地图、腾讯大数据……
- 气象、土壤、物种分布等共享网络数据……
- 科学采样、统计数据
- 野外样本点、社会调查、经济统计……
- 志愿者地理信息/众包数据/众源数据/社交网络
- 泛在定位技术:GNSS、移动通讯网络、地磁导航、Wi-Fi
- 交通设施的闸机、刷卡
- 社交网络平台的签到、点赞
- Open-Access数据
- 空间对象的几何特征
- 基本特征
- 属性:长度、面积
- 运动:方向、速度
- 空间展布:走向、倾向、倾角、法线
- 高级特征
- 几何中心、质心
- 骨架线
- 最小外接矩形MBR、最小面积矩形MAR
- 最小外接圆、最大内切圆
- 凸包多边形
- 基本特征
- 空间对象的空间关系判断
- 八种基本关系:equal、disjoin、within、contain、intersect、touch、cross、overlap
- 九交模型DE-9IM
- 空间对象的基本空间分析
- 叠置(Overlay)操作
- Union、Merge、Append
- Intersection
- Difference、Systemic Difference
- 缓冲分析、邻近分析
- Buffer
- Proximity
- 几何变换
- Affine仿射变换
- Rotate
- Scale
- Skew
- 叠置(Overlay)操作
- 空间对象的距离量测
- 欧氏距离及其扩展
- 地面距离
- 网络距离
- 基本思想
TIN不规则三角网
- 概念
- TIN是一种矢量拓扑数据结构,内含节点(node)、边(edge)、三角形(face)。
- 基本数据
- 高程点
- 三角面片
- 派生数据
- 等高线
- 面片坡度、坡向、法线
- 面片的方向
- Delaunay不规则三角网(DT)
- 构建规则
- 任何一个三角形的外接圆内不能包含任何其它离散点。
- 最小角最大准则:相邻两个三角形构成凸四边形,在交换对角线之后,六个内角的最小者不再增大。
- 构建规则
- 概念
栅格数据分析
地表曲面与场分析
- 曲面建模
- 栅格模型,采用了一套规则格网来离散化地表的连续分布空间,像元值对应于该像元行列位置上空间对象的特征值。这种简单的数据结构计算效率很高,广泛地用于各类地学建模。
- 矢量分析是基于点、线、多边形等几何对象,计算比较复杂;而栅格分析则是基于像元,类似数据矩阵,适合基于数组的数据计算。
- 地表曲面的几何特征
- DEM
- 坡度
- 坡向
- 坡向玫瑰花图
- 地表曲面的可视性
- 流域分析
- 单向流D8
- 多向流MDF
- 曲面插值
- 曲面建模
栅格分析与矢量分析的联系与区别
- 矢量—栅格转换
- POINTGRID、LINEGRID、POLYGRID
- GRIDPOINT、GRIDLINE、GRIDPOLY
- 插值方法
- 点:IDW、Spline、Kriging
- 线:Topogrid(ANUDEM)
- 基于约束条件或辅助数据的插值方法
- 密度分析
- 点、线图层:核密度、线密度
- 矢量图层+格网:空间连接(Spatial Join)
- 空间建模
- 回归分析、地理加权回归法、成本距离分析……
- 矢量—栅格转换
栅格数据分析
- 基本要求
- 具有统一的投影坐标系
- 覆盖范围、像元分辨率相同
- 图层之间像元对齐
- 基本运算
- 地图代数运算Local:以像元为基本运算单位,开展基于数学函数或者分类的计算。
- 窗口滤波Focal:以滤波窗口为计算单元,求解像元的统计值、密度值、滤波、流向,或者构建专业模型。
- 分区操作Zonal:以分区为计算单元,求解像元的统计值,或者构建专业模型。
- 其他复杂模块:如水文、地下水、交通、空间统计等。
- 基本要求
连续场对象轨迹表达与分析
轨迹基本介绍
- 定义
- 数学:轨迹指的是含有某种性质的所有点集合。它是一种几何形状。常见的轨迹包括直线、圆、椭圆、双曲线、抛物线等。
- 力学:轨迹是指动点在空间的位置随时间连续变化而形成的曲线。轨迹是直线,称为直线运动;轨迹是曲线,称为曲线运动。
- 空间轨迹:空间轨迹是运动物体在地理空间中产生的痕迹,通常由一系列按时间顺序排列的点来表示,通常用一系列按时间顺序排列的点来表示(例如
),其中每个点由地理空间坐标集和时间戳组成(如 )。
- 分类
- 根据数据描述对象
- 车辆
- 出租车、公交车、卡车……
- 飞机、轮渡……
- 动物
- 迁徙:鸟类、斑马、虎……
- 自然现象
- 飓风、龙卷风、海洋漩涡……
- 车辆
- 根据采样方式和驱动因素
- 基于时间采样的轨迹数据:按等时间间隔对移动对象进行采样形成轨迹。
- 基于位置采样的轨迹数据:移动对象位置发生变化即被记录而形成的轨迹。
- 基于事件触发的轨迹数据:移动对象触发传感器事件后而被记录下来形成的轨迹。
- 根据轨迹的复杂性
- 简单轨迹:个体如动物、出租车、人等的运动轨迹,由于其刻画的是客观世界中自身结构不随时空发生变化、或是应用研究中可以忽略其自身结构变化的简单空间对象,这样个体的轨迹可以称之为“简单轨迹”,属于线性结构轨迹。
- 复杂轨迹:属于非线性结构的轨迹。在客观世界中还存着大量的随时空位置变化自身结构也在不断变化的复杂动态现象,如海洋涡旋、 风暴、污染气体等,其内蕴复杂对象(涡旋、台风、云团等)自身结构和性质呈现快速连续的变化。这些复杂的动态演化过程存在着明显的分裂与合并现象。
- 根据数据描述对象
- 研究内容
- 轨迹预处理
- 噪声过滤
- 分割
- 压缩
- 地图匹配
- 停留点提取
- 轨迹索引和检索
- 最近邻查询
- 范围查询
- 轨迹挖掘
- 轨迹不确定性
- 轨迹模式挖掘
- 轨迹分类
- 轨迹异常探测
- 轨迹预处理
- 定义
连续场对象轨迹
- 概念
- 移动对象时空位置和属性同时发生变化的轨迹,例如飓风、龙卷风、海洋环流等自然现象的轨迹,这些轨迹捕捉了环境和气候的变化。
- 特点
- 轨迹隐含(不是以简单的位置随时间变化的特点)
- 轨迹复杂(分裂和合并)
- 对象时空属性同时变化
- 轨迹表达
- 一般轨迹表达:连续曲线→序列→点集
- 复杂轨迹表达:连续曲线→图→序列集→点集
- 概念
轨迹相似性计算
- 概述
- 相似性计算:两个实体之间的相似性被量化为计算一个实体转化为另一个实体所需的成本或两个实体间距离。
- 轨迹聚类目的是尽可能将相似轨迹划分到同一个轨迹簇,而将具有相异行为的轨迹划分到不同的轨迹簇中。轨迹聚类的关键是根据轨迹数据的特点,定义不同轨迹间相似性度量方法。
- 分类
- 空间相似性:找到与当前轨迹相似的几何形状,忽略时间维度
- 欧式距离
- 最长公共子序列
- 动态时间规整
- 编辑距离
- 时空相似性:注重轨迹数据的时间和空间方面——时间序列、几何形状
- 欧式距离
- Locality in In-between Polylines
- 严格变换形式距离
- wDF
- 归一化加权编辑距离
- 空间相似性:找到与当前轨迹相似的几何形状,忽略时间维度
- 距离度量
- 时间全区间相似
- 轨迹间的欧氏距离
- 最小外包矩形距离
- 全区间变换对应相似
- 轨迹间的DTW距离
- 多子区间对应相似
- 最长公共子序列距离
- 单点对应相似
- Fréchet距离
- 时间全区间相似
- 轨迹间距离度量方法
- 欧氏距离
- 概念:先将轨迹用相同维度的坐标向量表示,然后计算每一个时刻上对应两点的欧式距离,再对这些距离进行综合(如求和,求平均值、最大值或者最小值),就可以得到轨迹间欧式距离。
- 优点:利用欧几里德距离来度量轨迹之间的距离简单直观。
- 不足:该方法的基本思想是严格计算轨迹在每个时刻的对应距离,对数据中的噪声比较敏感,噪声数据的多少很大程度上会影响距离的度量结果。
- 备注:若用欧几里德距离度量轨迹的相似性必须有合理的数据预处理过程,如降噪、插值、轨迹还原等。
- 最小外包矩形距离
- 概念:一种简化时空轨迹的方法。首先将整条轨迹划分成一些相对平滑的轨迹区间,再将每条子轨迹用其最小外包矩形(Minimum Boundary Rectangle)表示,这样每条轨迹就变成了一个最小外包矩形序列。最后,通过比较最小外包矩形序列即可度量时空轨迹间的相似性。
- 优点:这类方法的优点在于非常直观,易于理解。
- 不足:但那些不在一一对应时刻上完全相似的轨迹,则可能被遗漏。
- 备注:现实生活中,轨迹的形状往往是不规则的,在对不规则形状的轨迹进行相似性度量时面临着很大的挑战。
- DTW距离
- 概念:基于动态时间规整(Dynamic Time Warping)距离的方法使得轨迹间距离度量能够适应数据在时间维度的拉伸,在保证了时空轨迹对象记录点顺序不变的同时,通过重复之前的记录点完成了轨迹数据在时间维度的缩放,并以此求出轨迹间的最小距离。
- 优点:可较好地发现轨迹在时间维度上进行局部缩放后才相似的时空轨迹,解决了采样频率不同造成的轨迹数据时间尺度不统一的问题。
- 计算
:第一条空间轨迹 :第一条空间轨迹所包含的点数 :第二条空间轨迹 :第二条空间轨迹所包含的点数 :两个记录点 和 之间的距离(函数) :空间轨迹 去掉第一个记录点后得到的空间轨迹
- 不足:在计算动态时间封装距离时,轨迹间的记录点映射需要具有连续性,因此对于噪声很敏感。此外,如果两条轨迹在小部分区间内完全不相似,该方法将无法识别。
- 备注:如果两条轨迹均存在记录点,则采用递归的方式求取最小的距离作为DTW距离,在求取最小距离的过程中会产生记录点的最优对应关系。
- 最长公共子序列距离
- 概念:最长公共子序列(Longest Common Sub-Sequence)是指两个或者多个序列中存在的最长的共同子序列。对于时空轨迹来说,计算其最长公共子序列并转化为LCSS距离可以衡量轨迹间的相似程度。
- 计算
- 符号说明见上文“DTW距离”的“计算”部分
- Fréchet距离
- 概念:Fréchet距离可以这样形象地理解:在遛狗过程中,假设狗沿一条轨迹连续运动,它的主人沿另一条轨迹连续运动,他们在各自轨迹上任意一点速度都可以变化,甚至可以停止,但是不能折返,用遛狗绳将他们相连,Fréchet距离就是在保证两者运动不互相干扰的前提下,所需最短的遛狗绳的距离。
- 计算
- 其余符号说明见上文“DTW距离”的“计算”部分
- 历史最近距离
- 概念:历史最近距离是任意两条轨迹在给定时间范围内同一时刻的最近距离
- 计算:
- 与Fréchet距离的异同
- 相同之处在于,历史最近距离和Fréchet距离这两种方法,都是将轨迹间的距离抽象为某一个时刻上点与点的距离,以此来代表整条轨迹间的距离。
- 不同之处在于,历史最近距离是一种乐观的相似性度量,只要两条轨迹在某一时刻曾经靠近过就认为它们相似,而Fréchet距离是一种悲观的相似性度量,它认为必须在每一时刻都靠近才能说两条轨迹相似。
- 欧氏距离
- 概述
轨迹聚类算法
- 概述
- 聚类分析是按照相似程度划分数据,并保持类间距离最大,类内距离最小。
- 轨迹聚类是聚类分析在时空轨迹上的扩展,其目的基于空间或时间相似性,把具有相似行为的时空对象划分为一类,通过聚类发现物体移动模式,分析移动规律,甚至预测未来运动行为。
- 聚类算法是无监督的学习算法;分类算法属于监督的学习算法。
- 分类
- 基于划分的聚类算法
- 思想:给定
个对象或元组的数据库构建数据的 个划分,每个划分表示一个聚类,并且 。划分的一般准则是:同一个类中对象之间差异(距离)尽可能小,而不同类中对象之间差异(距离)尽可能大。 - 主要算法:k-means、k-modes、k-prototypes、k-medoids、CLARA、CLARANS、Focused CLARAN、PCM
- 思想:给定
- 基于层次的聚类算法
- 思想:对给定数据集合进行层次分解。根据层次划分方式,可以被分为凝聚或分裂方法。凝聚方法,称为自底向上方法。分裂方法,也称为自顶向下的方法。
- 主要算法:CURE、ROCK、CHEMALOEN、SBAC、BIRCH、BUBBLE、BUBBLE-FM
- 基于密度聚类算法
- 思想:只要临近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类。也就是说,对给定类中的每个数据点,在一个给定范围的区域中必须包含至少某个数目的点。这样的方法可以用来过滤“噪音”数据,发现任意形状的簇。
- 主要算法:DBSCAN、GDBSCAN、DBLASD、OPTICS、FDC
- 基于网格的聚类算法
- 思想:把对象空间量化为有限数目的单元,形成了一个网格结构。所有的聚类操作都在这个网格结构(即量化的空间)上进行。方法优点是处理速度很快,处理时间独立于数据对象数目,只与量化空间中每一维单元数目有关。
- 主要算法:STING、WaveCluster、CLIQUE、OPTIGRID
- 基于模型的方法
- 思想:基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。通常有两种尝试方向:基于统计的方案和基于神经网络的方案。
- 主要算法:Competitive Learning、SOM、COBWeb、CLASSIT、AutoClass
- 图论聚类法
- 思想:图论聚类方法解决的第一步是建立与问题相适应的图,图的节点对应于被分析数据的最小单元,图的边(或弧)对应于最小处理单元数据之间的相似性度量。因此,每一个最小处理单元数据之间都会有一个度量表达,这就确保了数据的局部特性比较易于处理。图论聚类法是以样本数据的局域连接特征作为聚类的主要信息源,因而其主要优点是易于处理局部数据的特性。
- 基于划分的聚类算法
- 常见算法介绍
- 基于k-means的轨迹聚类算法:E-km(Extended k-means)
- k-means简介
- 介绍
- k-means算法是一种无监督学习算法,目的是将相似对象归到同一个簇中。簇内的对象越相似,聚类的效果就越好。
- 原理
- 使各个样本与所在簇的质心的均值误差平方和达到最小(这也是评价k-means算法最后聚类效果的评价标准)。
- 优点
- 算法快速、简单。
- 对大数据集有较高的效率并且是可伸缩性的。
- 时间复杂度近于线性,而且适合挖掘大规模数据集。k-means聚类算法时间复杂度是
,其中 代表数据集中对象的数量, 代表算法迭代次数, 代表着簇的数目。
- 缺点
- 算法中
是事先给定,但这个值的选定非常难以估计。 - 初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。
- 算法复杂度不易控制,迭代次数可能较多。
- 算法中
- 介绍
- 算法概述
- 该算法首先将轨迹分解为线段,结合欧式距离和线段方向度量线段的相似性;然后利用扩展的K-means算法对线段进行聚类。在最终结果中,同一条轨迹的线段可能分别属于多个聚类。
- 算法流程
- 轨迹分解为线段计算线段方向
- 计算所有线段包含的方向数
( )并设k-means聚类初始值为 - 基于线段相似性距离进行k-means聚类
- 评价聚类结果(Silhouette Coefficient)
- k-means简介
- 基于DBSCAN的轨迹聚类算法:CTHD(Clustering of Trajectories based on Hausdorff Distance)
- DBSCAN简介
- 介绍
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法。
- 该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合。
- 该算法利用基于密度的聚类算法,即要求聚类空间中的一定区域内所包含对象(点或其他空间对象)的数目不小于某一给定阈值。
- 基本概念
邻域:给定对象半径 内的区域。 参数: 邻域中样本个数最小阈值。- 核心对象:
邻域内的样本点数大于等于 的对象。 - 直接密度可达:给定一个对象集合
,如果 在 的 邻域内,且 是一个核心对象,则对象 从对象 出发是直接密度可达的。 - 密度可达:对于样本集合
,如果存在一个对象链 ,记 ,对于所有 , 是从 关于 和 直接密度可达,则对象 是从对象 关于 和 密度可达的。 - 密度相连:如果存在对象
,使对象 和 都是从 关于 和 密度可达的,那么对象 到 是关于 和 密度相连的。
- 聚类过程
- 扫描整个数据集,找到任意一个核心点,对该核心点进行扩充。扩充的方法是寻找从该核心点出发的所有密度相连的数据点(注意是密度相连)。
- 遍历该核心点的
邻域内的所有核心点(因为边界点是无法扩充的),寻找与这些数据点密度相连的点,直到没有可以扩充的数据点为止。 - 最后聚类成的簇的边界节点都是非核心数据点
- 之后就是重新扫描数据集(不包括之前寻找到的簇中的任何数据点),寻找没有被聚类的核心点,再重复上面的步骤,对该核心点进行扩充直到数据集中没有新的核心点为止。数据集中没有包含在任何簇中的数据点就构成异常点。
- 优点
- 聚类速度快。
- 能够有效处理噪声点。
- 能发现任意形状的空间聚类,聚类簇的形状没有偏倚。
- 与k-means比较起来,不需要事先指定聚类的数目。
- 缺点
- 由于DBSCAN直接对整个数据库进行操作且进行聚类时使用了一个全局性的表征密度的参数,因此当数据量增大时,要求较大内存支持I/O消耗也很大;同时,当空间聚类的密度不均匀、聚类间距差相差很大时,聚类质量较差。
- 介绍
- 算法概述
- 将轨迹以流向量的形式表达,并分割为一系列子轨迹,利用豪斯多夫距离计算轨迹间的相似性,最后采用DBSCAN密度聚类方法实现轨迹聚类。
- 研究关键
- 文中的轨迹采用流向量的方式表达,流向量既有位置又有方向,因此可以区分不同方向上的运动轨迹。
- DBSCAN简介
- 基于OPTICS算法的轨迹聚类算法:TF-OPTICS(Time-Focused OPTICS)
- OPTICS简介
- 介绍
- OPTICS(Odering Points To Identify the Clustering Structure)可视作DBSCAN算法的一种改进算法,与DBSCAN算法相比,OPTICS算法的改进主要在对输入参数不敏感。
- OPTICS算法不显式地生成数据聚类,它并不显示地生成数据聚类,而是为聚类分析生成一个增广的簇排序。这个排序代表了各样本点基于密度的聚类结果,如以可达距离为纵轴,样本点输出次序为横轴的坐标轴,包含的信息等价于从一个广泛的参数设置所获得的基于密度的聚类。
- 基本概念
- 由于OPTICS算法是对DBSCAN算法的一种改进,因此两者的许多概念是共用的。此外,OPTICS还引入了两个额外的概念:核心距离和可达距离。
- 核心距离:一个对象
的核心距离是使其成为核心对象最小半径,如果 不是核心点,其核心距离没有定义。 - 可达距离:是根据核心距离来定义的,对象
到对象 的可达距离是指 的核心距离和 与 之间欧几里得距离之间的较大值。如果 不是核心对象, 和 之间的可达距离没有意义。
- 算法流程
- 记
是原始的点的数据集合; 为最后输出结果的点集的有序序列; 是一个无重复元素的队列,保存了当前已找到但是还没处理过的属于同一类别的点的集合。 - 首先遍历输入的点集
,找到一个核心点,如果找不到,则直接结束算法。 - 如果找到一个点
为核心点,则计算 的核心距离以及可达距离并将其加入输出序列 ,将其所有邻点加入队列 。 - 从队列
中找出可达距离最小的点 ,将其加入输出序列,如果 也是核心点,则将 的所有邻点加入到并且更新队列 。 - 重复以上步骤直到处理完所有的点。
- 记
- 算法结果
- 给定半径
、最少点数 和结果队列 。 - 从
中按顺序取出点,如果该点的可达距离不大于给定半径 ,则该点属于当前类别,否则进行下一步。 - 如果该点核心距离大于给定半径
,则该点为噪声,可以忽略,否则该点属于新的聚类,跳至上一步。 - 当结果队列遍历结束,算法结束。
- 给定半径
- 介绍
- 算法概述
- 该算法首先采用改进的欧式距离计算轨迹相似性,然后探测轨迹上模式挖掘的有效时间区间,最后对轨迹进行OPTICS聚类,从而实现轨迹的时空聚类。
- 算法流程
- 轨迹线性插值
- 轨迹相似性计算
- 时间窗口选取
- OPTICS轨迹聚类
- 聚类效果评价
- 迭代优化(回到“时间窗口选取”)
- OPTICS简介
- 基于先划分再聚合思路的轨迹聚类算法:TRACLUS
- 算法概述
- TRACLUS(TRAjectory CLUStering)算法由Lee等人在2007年提出的,它采用的是先划分再聚合的思路(Partition-and-group Framework),首先将时空轨迹看作一组点序列,然后按照最小描述长度MDL(Minimum Description Length)原则将轨迹划分为一些子轨迹,再用基于密度的聚类方法对这些子轨迹聚类,最终可以得到子轨迹的运动模式和整条轨迹的相似子区间。
- 计算流程
- 子轨迹间的距离度量
- 轨迹分段
- 线段聚类
- 优缺点
- 虽然子轨迹聚类方法能发现具有相似性的单个最大时间区间,但是由于该方法预先将轨迹划分成子轨迹,并以子轨迹为基本单位进行聚类,因此相似时间区间会受到子轨迹时间区间的限制,具有一定的局限性。
- 算法概述
- 基于k-means的轨迹聚类算法:E-km(Extended k-means)
- 概述
空间聚类
聚类的分类
- 空间聚类的分类
- 层次聚类(Hierarchical Cluster)
- 划分聚类(Partitioning Cluster)
- 密度聚类(Density-based Cluster)
R型及Q型层次聚类
- 相似性度量
- 距离系数
:空间维度 :第 个点在第 维上的坐标 :第 个点和第 个点之间的距离
- 相关系数
:样本数 :第 个样本的第 个属性 :第 个样本各属性的均值 :第 个属性和第 个属性之间的相关系数
- 夹角余弦
:空间维度 :第 个向量在第 维上的坐标 :第 个向量和第 个向量之间的夹角余弦(可理解为相似程度)
- 距离系数
- 层次聚类分析流程
- 输入:空间数据
- 空间相似性度量
- 相似性度量矩阵
- 依次选取较大的相似性度量
- 绘制聚类谱系图
- 选择分解阈值确定聚类结果
- 层次聚类特点
- 呈树型的层次结构
- 需要计算相似性度量矩阵
- 聚类过程是从底部向上
- 需要人为确定划分阈值
- 相似性度量
划分聚类
- 定义
- 给定一个大小为
的数据集,将其分为 类,使类内具有较高的相似度,而类间的相似度较低。
- 给定一个大小为
- 划分聚类的算法流程
- 确定聚类数目
- 选取
个点作为初始聚类中心 - 计算各样本点到各聚类中心的距离
- 根据距聚类中心的距离划分样本点的归属
- 重新计算各类别的中心(转入第三步)
- 直到聚类中心坐标不再发生变化为止
- 确定聚类数目
- 优缺点
- 直观、易实现且占用内存少。
- 类别数目以及初始类中心的选择具有较强的主观性,需要借助先验知识。
- 适合凸集数据,无法处理形状复杂的数据。
- 定义
划分聚类的改进算法
- 引入组内变量平均标准差上限作为类别是否分裂的标准
:类别遍历变量 :样本数 :变量数或维数 :变量均值
- 引入类间距离下限作为类别是否合并的标准
:类别遍历变量 :样本数 :变量数或维数 :变量均值 :第 个类别中变量 的均方差
- 引入组内变量平均标准差上限作为类别是否分裂的标准
Fuzzy C-Means
- 概念
- FCM算法是C-Means算法的改进,两者之间的差别在于,C-Means算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分。
- 算法流程
- 确定聚类数目
- 选取
个点作为初始聚类中心 - 进行如下迭代直到
不发生变化为止
- 确定聚类数目
- 概念
密度聚类方法DBSCAN
- 基本概念
邻域:给定点半径 内的区域- 核心点(对象):
邻域内包含给点最少数目 个点的点 - 直接密度可达:从核心对象出发到其
邻域内的点均为直接密度可达的 - 密度相连:从核心对象出发的直接密度可达的两对象是密度相连的
- 小结
- 直接密度可达比密度相连的要求严格,它要求起点必须是核心对象。
- 直接密度可达是不对称的操作,只有核心对象之间的才可形成相互密度可达;而密度相连则是一个对称的操作。
- 算法描述
- 基于密度的聚类方法是寻找这样的簇,即该簇是基于密度可达性性的最大密度相连对象的集合,而不被任何簇所包含的对象被认为是噪声。
- 算法流程
- 输入:空间数据
- 寻找
邻域中的点数大于 的对象建立一个新簇(将该点标记) - 反复寻找从该核心对象直接密度可达的对象并将点进行标记
- 寻找未有标记的新对象
- 是:结束
- 否:返回第一步
- 评价:“多米诺骨牌”
- 基本概念
密度极值点的可视化
- 横轴
:点总数 :截断距离(认定两点邻近的距离阈值) :第 个点与第 个点之间的距离 :与第 个点邻近的点的数量
- 纵轴
:第 个点与第 个点之间的距离
- 评价:“这山望着那山高”
- 横轴
方向中心度指标(DCM)
- 参考链接
- KNN(
Nearest Neighbors)- 定义
- 某个结点的KNN即离该结点最近的
个相邻结点。
- 某个结点的KNN即离该结点最近的
的选择- 通过对参数敏感性的分析和现有的研究发现
是一个不敏感的参数,与数据集中的点的数量 有关。 - 两者之间关系的经验公式为:若
则 ;若 则 。 表示对 向上取整,即不小于 的整数中的最小者。
- 通过对参数敏感性的分析和现有的研究发现
- 定义
- DCM(local Direction Centrality Metric)
:数据点 的DCM值 :该数据点的归一化DCM值 :KNN中的参数 :数据点 与第 个KNN之间的夹角
- 内部、边界点的判定
- 规律
- 内部点拥有全向的
,DCM相对较低(低于阈值),并且被边界点包围。 - 边界点的
限制在一个范围内,DCM相对较高(不低于阈值)。
- 内部点拥有全向的
- 阈值取值
:阈值 :所有数据点的DCM值中第 小者 :边界点个数 :数据点总数 :聚类内三角形的总数 :聚类个数
- 规律
- 聚类的形成
- 输入数据
- 总点数:
- 内部点数:
- 内部点:
- 边界点:
- 总点数:
- 评价指标
- 数据点
与 之间的距离: - 内部点
到边界点的可达距离: - 两内部点
与 属于同一聚类的条件:
- 数据点
- 输入数据
- 评价:“编织聚类的笼子”
- 空间聚类的分类
元胞自动机
基本理论
分类
模型
在地学中的应用
- 火山爆发
- 构造运动
- 变质作用
- 对城市交通流的模拟
- 森林火灾的模拟
- 城市土地利用的模拟
- 城市增长的模拟
应用的注意点
- 简单性与真实性的矛盾问题
- 时空划分问题
- 微观规则和宏观规则的转换问题
空间插值
地统计预备知识
基本概念
- 随机变量和随机向量
- 离散随机变量:骰子、足球比赛的胜负……
- 连续随机变量:等电话、公共汽车的时间……
- 随机向量:多个随机变量的组合
- 分布函数和分布密度函数
- 分布函数
- 定义域:
- 密度函数:单位概率
- 分布函数
- 数学期望和方差
- 数学期望(一阶原点矩):随机变量取值平均的大小
- 离散型:
- 连续型:
- 离散型:
- 方差(二阶中心矩):反映随机变量取值的变化
- 离散型:
- 连续型:
- 离散型:
- 数学期望(一阶原点矩):随机变量取值平均的大小
- 几个和“随机”有关的概念
- 随机函数
- 记一个样本空间为
,对于每个样本 ,都有一个函数 与之对应,其中 ,则称该函数为定义在 上的随机函数。
- 记一个样本空间为
- 随机过程和随机场
- 每个确定性的函数,如
都是随机函数 的一个实现,随机函数可以理解为它所有现实的集合。 - 指与时间有关的随机函数,随机函数依赖于空间坐标则称该随机函数为随机场。
- 每个确定性的函数,如
- 区域化变量
- 以空间点
的直角坐标系 为自变量的随机场 称为一个区域化变量。
- 以空间点
- 随机函数
- 协方差(两随机变量的二阶混合中心矩)
- 随机变量和随机向量
相关与空间相关
- 相关性
- 分类
- 正相关
- 负相关
- 度量
- 协方差
- 相关系数
- 分类
- 空间自相关
- 地理学第一定律
- 任何事物都相关,只是相近的事物关联更紧密。
- 协方差函数
- 协方差函数指随机场
中,空间两点 和 处两个随机变量 和 的二阶混合中心矩,称为自协方差函数或简称协方差函数,记为 。 - 该函数的取值随
的递增而递减。
- 协方差函数指随机场
- 地理学第一定律
- 平稳假设
- 平稳假设
- 区域化变量
的任意 维分布函数不因空间点 发生位移而改变。形式化表达如下: - 这就要求随机函数
的各阶矩都存在,且平稳。在实际中通常采用二阶平稳假设,即要求区域化变量的一、二阶矩存在并平稳。 - 平稳的内涵
- 为什么要平稳?
- 随机场性质的统计
- 什么是平稳?
- 与具体位置无关
- 质量(平稳)、货币(不平稳)
- 为什么要平稳?
- 区域化变量
- 二阶平稳假设
- 要求
- 数学期望存在且平稳:
( 为常数) - 协方差函数存在且平稳:
- 数学期望存在且平稳:
- 示例
- 平稳的随机场:海水面
- 不平稳的随机场:DEM
- 局部平稳假设:在局部的范围内平稳
- 要求
- 平稳假设
- 相关性
变差函数和结构分析
地统计的研究内容、历史
- 地统计的研究内容
- 地统计是真正从地学发展起来的一门学科。
- GIS是真正从地学中发展起来的技术。
- 利用空间随机变量之间的空间相关性来研究空间随机场的统计特征。
- 地统计的基础就是空间邻近原理。
- 具体的内容可以分为结构分析理论(变差函数)、克立格估值理论(Kriging方法)和条件模拟理论(蒙特卡罗方法)。
- 地统计的研究历史
- 南非的采矿工程师D G Krige
- 巴黎枫丹白露地质统计学和数学形态学研究中心G Matheron
- 斯坦福大学 A G Journel
- 地统计的研究内容
变差函数的概念
- 定义
- 区域化变量
和 两点之差的方差之半定义为 的变差函数。
- 区域化变量
- 公式
- 与协方差函数的关系
- 定义
实验变差函数的计算
- 公式
:距离为 时样本点对的数量
- 例子
东 西 南 北 西 北 东 南
- 公式
变差函数的类型
- 分类
- 连续型:
- 过渡型:
- 随机型:
- 连续型:
- 模型
- 球状模型:
- 指数模型:
- 高斯模型:
- 球状模型:
- 模型中的参数
:块金常数 :变程 :拱高
- 分类
实验变差函数的拟合与套和
- 拟合方法
- 加权最小二乘法
- 线性规划方法
- 遗传算法
- 交互式拟合方法
- 变差函数的套和
- 实际的地学空间随机场的变化性是十分复杂的,往往包含着各种尺度上的多层次性,反映在变差函数上就是它的结构不是单纯的一种结构,而是多层次结构叠加在一起称为套和结构。
- 拟合方法
实验变差函数的应用
- 变差函数和空间随机场的对应关系(噪声,相关程度,相关范围)
- 空间场的各向异性
- 空间场的尺度特征
- 空间场的周期性特征
线性平稳克立格插值
估计误差和估计方差
- 估计误差
- 定义
- 估计误差是指实测值与承载真实值之间的误差。
- 计算
- 定义
- 估计方差
- 定义
- 估计方差是估计误差的方式,描述估计误差的离散程度。
- 计算
- 定义
空间插值方法概述
- 空间插值思路
- 根据有限个已知点的数值,通过空间相关性,推测出其它位置的估计方法,称为空间插值。
- 推测的关键,就在于找出一个合适的函数,自变量就是已知点的取值及其空间关系,因变量就是最终需要估算的位置的值。
- 所有的插值方法,原理上都是去找估计函数,不同点在于它们对空间关系(或协同关系)的表达方式及其利用的不同。
- 利用辅助变量进行空间推测
- 只用辅助变量,不用空间自相关:多元回归、地理加权回归等
- 既用辅助变量,又用空间自相关:回归克里格、协同克里格等
- 插值方法
- 泰森多边形
- 美国气候学家Alfred H. Thiessen用于计算区域降雨量的方法。
- 它不进行“插”值,而是用多边形内已知点的值“代表”整个多边形内的所有点。
- 边界内无变化,边界处突变。
- 反距离加权
- 对周围样点按距离赋予不同的权重,近的权重大,远的权重小。
- 权重的衰减采用距离的倒数来计算。
- 趋势面拟合
- 可将由一个数学函数(多项式)定义的平滑表面与所有采样点进行拟合。趋势表面的值会逐渐变化,并捕捉数据中的粗尺度(全局变化)模式。
- 类似于取一张纸(洋红色)将其插入各凸起点之间。
- 全局回归
- 利用目标变量与一个(一元回归)或多个变量(多元回归)之间的全局线性或非线性回归关系进行预测,即为全局回归模型(全局一个模型)。
- 地理加权回归
- 地理加权回归是一种局部的空间回归方法,可以用来探测空间关系的非平稳性。
- 回归系数能体现出较强的空间变异性,可有效揭示自变量对因变量影响的空间异质性。
- 泰森多边形
- 空间插值思路
克立格方法
- 优点
- 无偏和估计方差最小
- 屏蔽效应
- 兼顾各向异性
- 可显示估计方差
- 权值可为负值
- 插值流程
- 数据读入
- 数据预处理
- 实验变差函数计算
- 变差函数拟合
- 克立格插值
- 等值线绘制
- 优点
空间信息统计深入
- 泛克立格
- 特点:是用于解决非平稳区域化变量的插值方法
- 空间随机变量的分解:
- 剩余
:其数学期望不随空间位置的变化而变化(平稳的区域化变量) - 漂移
:随空间位置的不同而变化(非平稳的区域化变量) - 可解决的问题
- 求区域化变量的漂移
- 求
处的 值 - 求区域化变量的漂移系数
- 求区域化变量的漂移
- 协同克立格
- 特点
- 一种综合多个变量信息的估值方法
- 可以提高估值的准确性并降低估计方差
- 应用条件
- 主变量的信息不足而次要变量的信息充分
- 主变量与次要变量存在一定的相关性
- 估值时至少存在一个主变量采样点
- 特点
- 泛克立格
- 估计误差
- 本文标题:《空间分析》笔记
- 本文作者:myetyet
- 创建时间:2022-11-04 16:21:11
- 本文链接:https://myetyet.github.io/posts/f3f80ce4/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
评论