我正在尝试计算这两个向量之间的样本协方差。我定义了一个带有两个输入变量的函数。不知道是否正确?我的样本协方差公式也无法运行。谁能帮我用R写出来?
xv = c(1., 5.5, 7.8, 4.2, -2.7, -5.4, 8.9)
yv = c(0.1, 1.5, 0.8, -4.2, 2.7, -9.4, -1.9)
sampleCov= function(x,y){
cov(xv,yv) = frac{sum_{i=1}^{n}(x_i-\mu_x)(y_i-\mu_y)}{n-1}].
return (Cov(xv,yv)
}
R中有一个基本函数称为cov
这正是你想要的,但如果你想编写一个函数(不需要这样做),你可以尝试以下操作:
COV<- function(x,y) {
if(length(x)!=length(y)) {stop('x must have the same length as y ')}
x.bar <- mean(x)
y.bar <- mean(y)
N <- length(x)
Cov <- (sum((x-x.bar)*(y-y.bar))) / (N-1)
return(Cov)
}
COV(xv, yv)
[1] 8.697381
cov(xv, yv)
[1] 8.697381
如你看到的COV
给出相同的结果cov
所以你不必为此编写函数。
此外,你的函数体没有 R 语法,而是编写了不一样的 LaTex 语法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)