Вот один подход с lm
из базы R.
Создание некоторых данных.
set.seed(1)
data <- data.frame(x = 1:10, y = 1:10 + runif(-1,1,n=10))
plot(data)
abline(a=0, b=1)
Теперь подходит линейная модель. Вы можете использовать 0 +
для исправления перехвата и offset()
для исправления термина x
. К сожалению, summary()
, похоже, не работает правильно, но мы можем вычислить r.squared сами.
Model <- lm(y~0 + offset(x),data)
Residuals <- summary(Model)$residuals
SumResSquared <- sum(Residuals^2)
TotalSumSquares <- sum((data$y - mean(data$y))^2)
RSquared <- 1 - (SumResSquared/TotalSumSquares)
RSquared
#[1] 0.9582742