协方差矩阵

时间:2013-03-19 22:01:25

标签: r geor

我想知道是否有人可以向我解释geoR包如何计算协方差函数?我的意思是你怎么用手工做?

library(geoR)
#suppose I have the following coordinates
X = c(60,30,20,40)
Y = c(50,20,50,50)
my_coordinates = cbind(X,Y)
print(my_coordinates)

#computing covariance
my_cov= varcov.spatial(my_coordinates,cov.model="exp", cov.pars=c(0.2,25))
print(my_cov)

你得到:

         [,1]       [,2]       [,3]       [,4]
[1,] 0.20000000 0.03664442 0.04037930 0.08986579
[2,] 0.03664442 0.20000000 0.05645288 0.05645288
[3,] 0.04037930 0.05645288 0.20000000 0.08986579
[4,] 0.08986579 0.05645288 0.08986579 0.20000000

然而,人们可能也想在Matlab中做到这一点。

1 个答案:

答案 0 :(得分:3)

了解包或函数如何执行某些操作的最佳方法是查看源代码。这是关于开源项目的一个很棒的事情,你可以这样做。

尝试键入varcov.spatial或在解压缩的包tar球中搜索函数定义

要计算协方差(取决于点之间的距离),您需要计算

  • 您的点之间的距离(您实际上只需要下三角形,因为它将是对称的
  • 每个距离的协方差函数的值
  • 从这些计算出的协方差形成完全对称方差协方差矩阵。

协方差函数在?cov.spatial中定义。您可以致电cov.spatial来计算R中的geoR::varcov.spatial(正是{{1}}所做的)