Итак, в настоящее время я пытаюсь сделать доверительный интервал для линейной модели. Я узнал, что для этого должен использовать pred.liz(), но у меня есть несколько проблем, которые действительно понимают функцию, и мне не нравятся функции, не зная, что происходит. Я нашел несколько советов по этому вопросу, но только с соответствующим R-кодом, никаких реальных объяснений. Это сама функция:
## S3 method for class 'lm'
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,
interval = c("none", "confidence", "prediction"),
level = 0.95, type = c("response", "terms"),
terms = NULL, na.action = na.pass,
pred.var = res.var/weights, weights = 1, ...)
Теперь, что мне трудно понять:
1) newdata
An optional data frame in which to look for variables
with which to predict. If omitted, the fitted values are used.
-
Кажется, что для этого используются новые данные, но я не могу понять, почему. Для расчета доверительного интервала мне, очевидно, нужны данные, для которых этот интервал (например, # наблюдений, среднее значение x и т.д.), Поэтому не может быть того, что подразумевается под ним. Но тогда: что это значит?
2) interval
Type of interval calculation. -
ладно.. но что такое "нет"?
3a) type
Type of prediction (response or model term).3b) terms
If type="terms", which terms (default is all terms) -
3a: Могу ли я этим получить доверительный интервал для одной конкретной переменной в моей модели? И если да, то для чего тогда 3b? Если я могу указать термин в 3a, это не имеет смысла делать это снова в 3b.. поэтому, я думаю, я снова ошибаюсь, но я не могу понять, почему.
Я думаю, некоторые из вас могут подумать: почему бы просто не попробовать это? И я бы (даже если бы это могло бы не решить все здесь), но я прямо сейчас не знаю, как это сделать. Поскольку я не сейчас, для чего нужны newdata, я не знаю, как его использовать, и если я попытаюсь, я не получу правильный доверительный интервал. Как-то очень важно, как вы выбираете эти данные, но я просто не понимаю!
EDIT: Я хочу добавить, что мое намерение - понять, как работает sched.lm. Под этим я подразумеваю, что не понимаю, работает ли это так, как я думаю. То есть он вычисляет y-hat (предсказанные значения), а затем использует добавление/вычитание для каждой границы upr/lwr интервала для вычисления нескольких точек данных (тогда выглядит как доверительная линия)? Тогда я бы предпочел, почему необходимо иметь такую же длину в newdata, что и в линейной модели.