为什么我的预测值不变?

Why are my predicted values constant?

我的数据

mydata_x <- rep(seq(200,600,by=200),times=1,each=4)
mydata_y <- rep(seq(600,1200,by=200),times=4,each=1)
mydata_z <- c(0,0,0,0,0,0,0,529,0,0,0,0)
mydata <- data.frame(x=mydata_x,y=mydata_y,z=mydata_z)

我已经从虚拟场中取样,现在想预测相邻值。这是通过下面描述的两种方法完成的......两者都预测每个点的常数值。我不明白为什么。

请记住,我是 R 的新用户并且喜欢它。我一直在尝试按照我在网上找到的一个例子来执行我的任务。使用示例数据集,我可以毫无问题地实现他们的结果。但是,我无法将其应用于我自己的数据。请参阅此处的示例:http://www.stat.ucla.edu/~nchristo/statistics_c173_c273/c173c273_lec11_w11.pdf

require(geoR)

#create x,y coordinates for locations to predict

kx <- rep(seq(250,700,by=100),times=1,each=length(seq(650,1250,by=100)))
ky <- rep(seq(650,1250,by=100),times=length(seq(250,700,by=100)),each=1)  
k_df <- data.frame(x=kx,y=ky) #coordinates as data.frame
k_matrix <- as.matrix(cbind(kx,ky)) #coordinates as.matrix

#convert sample data (top of post) as.geodata

b <- as.geodata(mydata)

#predict values

prediction <- ksline(b,cov.model = "gaussian",cov.pars = c(10,3.33),locations=k_df)
prediction$predict

所有 35 个结果 return 44.0833 #我只是不明白!!!

我不明白我是如何 return 在有这么多零的情况下跨字段输入单个值的。我希望看到单个区域的值下降。

想法?

试试这个:

prediction <- ksline(b,cov.pars = c(10,200),locations=k_df)
cbind(k_matrix,prediction$predict)[12:20,]
#        kx   ky            
#  [1,] 350 1050  93.6977130
#  [2,] 350 1150 292.2674563
#  [3,] 350 1250 329.6293038
#  [4,] 450  650   0.5934677
#  [5,] 450  750  -0.1541056
#  [6,] 450  850  -2.9329553
#  [7,] 450  950   1.8124209
#  [8,] 450 1050  93.6977130
#  [9,] 450 1150 292.2674563

克里格算法根据 "nearby" 数据点的值(根据与预测点的距离进行折扣)计算预测点的估计值。 cov.pars=... 的 "range" 元素(第二个元素)控制查找 "nearby points" 的距离。您将其设置为 3.33,而最近的点距离大约 50 个单位。所以基本上算法没有使用任何附近的点,然后所有点的估计只是所有数据值的平均值。