我有这个样本数据:
data <- matrix(0, 2, 3)
data[, 1] = c(3, 1.008991)
data[, 2] = c(4, 0.9981358)
data[, 3] = c(5, 1.000626)
data <- data/norm(data)
[,1] [,2] [,3]
[1,] 0.4999478 0.6665971 0.8332464
[2,] 0.1681476 0.1663386 0.1667536
使用Ransac我得到了这个线方程(第一个索引是b,第二个是a)
result <- c(0.1735747, -0.0108552)
现在,这是我的R平方计算(using wikipedia equations)
y_ <- sum(data[2,])/length(data[1,])
f <- function(x) result[2]*x+result[1]
SStot <- sum( (data[2,]-y_)^2 )
SSreg <- sum( (f(data[1,])-y_)^2 )
SSres <- sum( (data[2,]-f(data[1,]))^2 )
R2 <- 1 - (SSres/SStot)
R2的结果是-1.753875
,这是不正确的(afaik)。 Wolfram Alpha给了我0.540996
。我做错了什么?我期望R2来自区间&lt; 0,1&gt;。