Почему существует разница в подгоночных значениях линейной регрессии и прогнозируемых значениях на тренировочных данных? - PullRequest
0 голосов
/ 23 февраля 2020
library(MASS)
data(Boston)
head(Boston)
index <- sample(nrow(Boston),nrow(Boston)*.80)
train <- Boston[index,]
test <- Boston[-index,]
model_1 <- lm(medv~.,data=train)
model_1train_p <- predict(model_1)
mean(model_1$fitted.values - model_1train_p)

Код для имитации проблемы. Я хотел знать, почему существует ненулевая разница.

1 Ответ

2 голосов
/ 23 февраля 2020

Разница в том, что компьютеры просто не могут обрабатывать десятичные значения точно . Разница, которую вы получаете, очень, очень мала, из-за внутреннего представления любого числа (или любой вещи, которая имеет значение) в двоичном виде. Просто не всегда возможно получить точное двоичное представление десятичного числа.

Если вы хотите проверить равенство десятичных чисел, используйте all.equal:

all.equal(model_1$fitted.values, model_1train_p)

Возвращает:

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