Расчет R-квадрата с моей собственной регрессионной моделью в R - PullRequest
0 голосов
/ 03 апреля 2020

Я работаю над проектом на R и столкнулся с проблемой. Я использовал функцию Trendline из функции basicTrendline, и она сделала всю работу за меня! (YAY).

Однако моя гипотеза состоит в том, что данные будут следовать линии тренда y = x, но функция basicTrendline дала мне y = 0.96583x + 0.0029502, что очень близко! Однако я хочу иметь возможность найти его значение R-квадрата по отношению к y = x. Кто-нибудь знает, как я могу go сделать это?

Я довольно хорошо знаком со статистикой, но не с R, поэтому я также не знаю, как / если вы можете назначить функцию (например, y = x) переменной, но если вы знаете, как, Я также был бы признателен за это. Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Вот один подход с 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)

enter image description here

Теперь подходит линейная модель. Вы можете использовать 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
0 голосов
/ 03 апреля 2020

Если вы хотите получить R-квадрат регрессии от y на x, вы должны рассчитать линейную модель. Вы можете сделать это с model<-lm(y~x). С summary(model) вы можете найти все полезные детали, даже R-квадрат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...