Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中进行克里格之前,我应该绘制什么样的变异函数?_R_Spatial_Kriging_Gstat - Fatal编程技术网

在R中进行克里格之前,我应该绘制什么样的变异函数?

在R中进行克里格之前,我应该绘制什么样的变异函数?,r,spatial,kriging,gstat,R,Spatial,Kriging,Gstat,我有一个名为seoul3112的csv文件,包含PM10浓度。我试图绘制样本变异函数,并在其上拟合模型 library(sp) library(gstat) library(rgdal) seoul3112<-read.csv("seoul3112.csv",row.name=1) seoul3112<-na.omit(seoul3112) 库(sp) 图书馆(gstat) 图书馆(rgdal) seoul3112如果您查看您安装

我有一个名为seoul3112的csv文件,包含PM10浓度。我试图绘制样本变异函数,并在其上拟合模型

library(sp)
    library(gstat)
    library(rgdal)
    seoul3112<-read.csv("seoul3112.csv",row.name=1)
    seoul3112<-na.omit(seoul3112)
库(sp)
图书馆(gstat)
图书馆(rgdal)

seoul3112如果您查看您安装的模型,它将有一个
sill
参数(即
nugget
+
psill
),但它超出了您的样本范围

 sill = sum(model.3112$psill)
您可能没有足够远的点对距离到达
范围
窗台
。我不认为这不是一个问题,只要你使用这个半变异函数在你的数据+60000米(你有数据支持的距离)的空间域内进行预测。我之所以选择这个位置,是因为半变异函数拟合的最重要部分是开始,并且在数据范围内拟合良好

需要检查的是您有多少个点对(
np
)支持您绘制的
bin
(点对越多越好)

另一个建议是使用水平图寻找各向异性

seoul3112.var_map<-variogram(g, cutoff=70000, width=6000, map=TRUE)
plot(seoul3112.var_map, col.regions=terrain.colors(20))

如果在方向上存在差异,则可以使用为
vgm()
模型定义的
anis
拟合变异函数对各向异性的长轴和短轴进行建模。 例如:


因为你的问题更多的是关于选择和解释统计方法,而不是关于编程,我相信这是一个更合适的网站。我已经投票将其转移。如何从以上7个方向变异函数中理解是否存在各向异性?我知道几何各向异性和纬向各向异性。但我能从上面的数字说,窗台在所有方向上几乎都是一样的吗?而且我也无法理解这些数字中的不同或不同的范围!你能根据这个数字来评论各向异性吗?你真正想要的是哪个方向到
窗台的
范围最短,哪个方向最长。从水平图和方向变异函数来看,30度可能是短轴(半方差有所增加,可能达到门槛),这将使120度成为长轴。我建议分别绘制这些角度,看看这些变异函数是什么样子。谢谢。但我看到了一些示例,它们在表中显示了每个方向的门槛值和范围。通过它我可以清楚地知道长轴和短轴。链接:(第365页)。R中是否有任何内置函数,通过它我可以看到每个方向的范围和门槛值?如果在所有方向上都达到
sill
,那么是的,您可以使用
fit.variagram
在为
variagram()定义的
vgm()
上创建一个类似于您参考的表
带有感兴趣的
alpha
(在
alpha
上带有合理的
tol.hor
)。然后使用诸如
sill=sum(model.3112$psill)
range=model.3112$range
之类的方法来提取它们。你是这个意思吗<代码>seoul3112.var1
model.3112<- fit.variogram(seoul3112.var,vgm(700,"Gau",40000,400),fit.method = 2)
                       
plot(seoul3112.var,model=model.3112, col="black", pch=16,cex=1.3,
     xlab="Distance",ylab="Semivariance",
     main="Omnidirectional Variogram for seoul 3112")
 sill = sum(model.3112$psill)
seoul3112.var_map<-variogram(g, cutoff=70000, width=6000, map=TRUE)
plot(seoul3112.var_map, col.regions=terrain.colors(20))
seoul3112.var_angles<-variogram(g, cutoff=70000, width=6000, alpha=seq(0,180,30))
plot(seoul3112.var_angles, model=model.3112, pch=16, ylim=c(0,3000))
vgm(700,"Gau",40000,400, anis=c(someangle, someratio))