共计 4284 个字符,预计需要花费 11 分钟才能阅读完成。
全文链接 :https://tecdat.cn/?p=33676
原文出处:拓端数据部落公众号
点模式分析(点格局剖析)是一组用于剖析空间点数据的技术。在生态学中,这种类型的剖析可能在客户的几个情境下呈现,但对数据生成形式做出了特定的假如,因而让咱们首先看看哪些生态数据可能与点模式分析相干或不相干。
哪些数据实用于点模式分析?
点模式分析的最重要假如是点的数量和地位都须要是 随机 的。此外,咱们须要晓得客户的采样区域(即所谓的 窗口)。以下是实用于点模式分析的示例:
- 森林样地中树木的地位
- 草地区域中蚂蚁巢穴的散布
以下是不适宜进行点模式分析的示例:
- 在较大的样地中当时定义好的子样方造成的规定网格中的群落组成
- 记录了给定区域内固定数量的鸟巢的地位
以下示例可能实用于点模式分析,也可能不实用:
- 动物挪动的无线电跟踪数据(请参阅针对此特定类型数据的泛滥技术)
- 每年记录森林样地中树木地位,造成复制的点模式
在 R 中进行点模式分析
我将应用一个数据集来展现剖析。该数据集蕴含沿海沙丘零碎中动物和蚂蚁巢穴的地位。
从现有数据创立点模式
# 加载数据集
dat <- read.table("daf.csv",sep=";",head=TRUE)
#将坐标转换为米
dat$X <- dat$X/100
dat$Y <- dat$Y/100
#创立点模式
(all_pp <- ppp(
plot(
对点模式对象进行数据操作
# 一个首次操作是给每个点增加信息,即所谓的标记
#在这个示例中,咱们能够增加动物的物种名称
marks(all_pp) <-
#第二个操作能够是删除任何反复点
#咱们能够应用简略的行索引来做到这一点
all_pp <- unique
#而后增加坐标单位
summary(all_pp)
# 咱们能够应用标记对点模式进行子集化
ant_pp <- subset(all_pp,marks=="Tetramorium_caespitum")
#在这种状况下,咱们不再须要标记
ant_pp <- unmark(ant_pp)
标记的概念十分重要,所以我会多花几句话来介绍。标记能够是与点模式长度雷同的数字或因子向量,它们是为每个点收集的额定信息。在本示例中,这是记录的动物和蚂蚁的物种名称,但也能够是树木高度或鸟巢中的蛋数。
基于窗口的第二个乏味的操作集是依据特定窗口对点模式进行子集化:
w <- hexon(entre=c(5,5))
plot(antp[w])
# 基于物种名称拆分
split_pp <- si(all_pp)
class(spitpp)
## [1] "splitppp" "ppplist" "solist" "list"
as.matrix(lapplysplit_p,npis),ncol=1)
# 也能够应用:by(all_p,maksall_p,npoints)来拆分
#基于窗口进行拆分
spl_ant_pp <- splitn_p,f=w)
summary(plt_at_pp)
点格局的探索性剖析
这是任何点格局剖析中十分重要的一步,这一步能够帮忙你:(i) 摸索密度,以及 (ii) 观察点格局是否偏离随机冀望。
den_all <- desit(slit_pp)
plot(dns_ll)
首先要找出点格局是否由一个强度函数生成,如果是,则点格局是平均的;如果点格局是由多个强度函数生成的,则点格局是不平均的。这是点格局剖析中的一个重要的第一步,因为大多数函数和模型默认假如点格局是平均的。我将展现两种推断点格局平均性的办法:(i) 模仿和 (ii) 方块计数。
第一种办法是依据察看到的点格局的均匀强度,在空间上齐全随机模仿点格局。如果察看到的点格局和模仿的点格局的密度估计类似,那么咱们就有证据表明点格局是平均的。
# 将察看到的密度与基于强度的随机模仿进行比拟
#在图中为观测数据抉择一个随机地位
pos <- sale(1:16,1)
#模仿 15 个 CSR 点
simp <- roisp(lmbda= intesityant_pp,win Windw(nt_p),nm=15)
#将模仿汇合中的第 pos 个地位替换为察看数据集
tmp <- sp[pos]]
sim[pos]] <- ant_pp
sip16]] <- tmp
naes(imp)[16] <- "Siulio 16"
#计算密度估计
densp <- dsiymp)
#绘图,你能分辨出哪一个是观测数据集吗?pr(mfow=c(,4)mar=c(0,0,4,4))
plt(as.isto(densp),zlim=rage(unlst(lapl(despran))))
如果你能在模仿数据中找到实在数据集,那么就证据表明一种不平均的过程生成了数据。在这种状况下,你须要应用非凡的函数。
第二种办法是将窗口划分成方块,并统计每个方块中的点的数量。通过卡方测验,咱们能够推断点格局是平均的(p > 0.05)还是不平均的(p < 0.05)。
quar.tst(ant_pp)
输入后果通知咱们,点模式的零假如是齐全随机生成的空间过程,被回绝了。咱们有一些证据表明,点模式是不平均或非安稳的。
如果点模式遵循齐全随机性(CSR),则这个计数值(K)和思考的间隔(r)之间存在已知的关系。在 R 中,对蚂蚁巢穴点模式执行这个操作的代码是:
ee_iso <- eneope(antpun=Kst, nar=liscrectio="rder"), gloal=TRUE
plot(eeso)
在这里,我围绕模仿的随机点过程的冀望(Ktheo(r))从中推导出一个包络。然而,正如咱们之前所看到的,咱们有一些证据表明蚂蚁巢穴的点模式是不平均的,因而咱们应该通过应用 Ripley 的 K 函数 的批改版本来思考这一点:
eeihm < elop(ant_pp, fun=Khom,glba=TUE)
plot(ee_iom)
这次察看到的曲线在较大间隔上低于预期曲线,阐明巢穴中的扩散水平超过了思考点模式非平均性时的预期 CSR。
从这个探索性剖析中咱们得出以下论断:
- 蚂蚁巢穴显示出不平均性模式
- 有一些证据表明在较大间隔上,蚂蚁巢穴的间距比从预计的强度函数中预期的要大。
当初咱们能够进入下一步,对咱们的点模式进行建模。
构建点模式模型
在咱们的蚂蚁巢穴数据示例中,咱们可能对巢穴密度是否取决于特定动物物种的密度感兴趣。
# 拟合一个仅蕴含截距的泊松点过程模型
m0 <- ppm(tp ~ 1)
m0
这是最简略的拟合模型,该模型基本上通知咱们强度(蚁巢的密度)在察看区域内始终为 e^(-0.36)=0.70。当初咱们能够应用坐标作为预测变量来建设一个模型:
m1 <- ppm(tpp~ plnm(x,y,2))
m1
plt(m,se=FS,ho="iae")
该模型拟合了以下关系:log(λ)=x+y+x^2+y^2+x:y,基本上是每个坐标轴的二次关系加上一个交互项。图示了模型预测的强度(λ)与察看到的蚁巢的关系。这个模型在一些区域拟合成果较差。对于每个模型,重要的下一步是模型验证,有多种函数可用:diagnose.ppm 能够绘制许多重要的模型诊断图:
diospm(m1whih = "ooh")
默认状况下,diagnose.ppm 会生成四个图,我只申请绘制平滑残差图,以便咱们能够确定模型在察看到的点格局上拟合得不好的区域。该模型在某些区域的拟合成果较差。也能够应用拟合强度在 Kinhom 函数中查看察看到的点格局是否比模型拟合预期的更或更少汇集:
e <- envepe(an_ppKinom,unargs list(lda=1),obl=TUE)
plt(em)
在这里,咱们能够看到察看到的点格局比模型预期更加汇集。一种解决办法是应用聚类泊松点过程模型:
m2 <- kp(ntp ~ lyo(x,,2))
plotm,wht="satistc",pase=ASE)
虚线绿线显示了基于模型中的预测变量的预期 K 值,实线黑线将拟合的聚类过程增加到预测变量中(在这种状况下是一个 Thomas 过程。从配适模型中模仿点格局也很容易,咱们将在这里应用它来查看察看到的点格局和模仿的点格局之间是否存在显著差别:
# 一个随机地位
pos <- sample(1,1:16)
#从该模型中模仿 15 个点格局
sims <- (2,nim = 15)
# 将察看到的点格局放在随机地位
mp < sims[[pos]]
sims[s<- tmulation 16"
#计算密度估计
den <- nsity(sims)
#绘图,你能分辨出哪一个是察看到的数据集吗?par(row=c(4,),mar=c(0,0,4,4))
plot(aslistf(dnsp)zliangunlis(lpply(nsange))))
我无奈真正辨认出察看到的格局,因而该模型相当好。
点格局的预测变量也能够是像素图像(或 ”im”)对象,咱们将应用一个动物物种 Senecio_inaequidens 的密度作为预测变量:
m3 <- kpm(an_p ~ Seco_jcobaa,dta=desall)
#让咱们来看一下预期的 K 值
plt(m3,wat="aisti",pus=FALSE)
这个模型显然比之前的模型好。能够应用 effectfun 函数绘制协变量的成果,例如:
# 查看 Senecio jacobaea 的效应
plot(effetfun(m3Seecio_jacaea"))
这个模型显然比之前的模型好。能够应用 effectfun 函数绘制协变量的成果,例如:
# 查看 Senecio jacobaea 的效应
plot(efcfun(m3"Seeciojacobea"))
能够绘制更酷炫的地图:
# 绘制一个乏味的透视图
pp <- predctm3)
M<-persp(s_al$,lin=pox=FALSE,visble=TREapron = TRUE,et55,ph=,exnd=6,mi="density")
perspPins(ant_pp,Zdn_lSeneco_cobaea,M=M,pc=20)
图中的高度示意 Senecio jacobaea 苗的密度,色彩示意蚁巢的拟合强度,点示意理论察看到的蚁巢。
最受欢迎的见解
1.R 语言泊松 Poisson 回归模型剖析案例
2.R 语言进行数值模仿:模仿泊松回归模型
3.应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
4.R 语言对布丰投针(蒲丰投针)试验进行模仿和动静可视化
5. 用 R 语言模仿混合制排队随机服务排队零碎
6.GARCH(1,1),MA 以及历史模拟法的 VaR 比拟
7.R 语言做简单金融产品的几何布朗运动的模仿
8.R 语言进行数值模仿:模仿泊松回归模型
9.R 语言对巨灾危险下的再保险合同定价钻研案例:狭义线性模型和帕累托散布 Pareto distributions