R 中的可靠性系数

问题描述 投票:0回答:1

我正在尝试计算 R 中的可靠性系数。它的值应该是从 0 到 1,但是我始终达到超出此范围的值。

我根据以下数据进行计算(dataDocasky):

m1  m2
171.3428819 213.1527819
133.9369251 112.9075057
113.6293344 133.9437121
118.0038635 120.0285206
147.6831421 150.8048938
60.73677582 39.94156928
94.13120567 104.8376963
89.39633733 93.43794579
36.91675999 37.33705773
81.46137139 94.90522423

为了计算 CR,我应该使用以下等式: CR = 1 - (TEM^2/sd^2) * 100

TEM代表测量技术误差,我根据这里

写的方程和函数计算了它

TEM <- function(df, col1, col2){
  sqrt(((sum(df[, col1] - df[, col2])^2)) / 2 * nrow(df))
}

TEM_docasky <- TEM(dataDocasky,  "m1", "m2"); TEM_docasky

我计算了 sd(标准差)如下:

sd_Docasky <- sd(as.matrix(dataDocasky)); sd_Docasky

然后使用所有这些方程,我计算出 CR 如下:

cr_Docasky <- 1 - ((TEM_docasky^2 / sd_Docasky^2) * 100); cr_Docasky

但是,这会给我 CR 的结果:-717.0229,这……远远超出了 0-1 范围。

任何人都可以看到我在哪里犯了导致结果失败的错误吗? 我的计算值是

TEM:120.8781 标准差:45.11057 CR:-717.0229

谢谢!

r statistics coefficients
1个回答
0
投票

您的 TEM 函数不太正确。在我看来,你是在对差异求和,然后求平方,但你应该对差异求平方,然后求和。

另一种 TEM 功能是:

TEM <- function(x,y) sqrt( sum((x-y)^2)/(2*length(x)))
TEM(df$m1, df$m2)

[1] 12.96368

然后您可以继续计算。

© www.soinside.com 2019 - 2024. All rights reserved.