Я хочу вычислить интервал предсказания радиуса от окружности, соответствующей формуле> r² = (x-h) ² + (y-k) ². r-радиус окружности, x, y, являются гауссовыми координатами, h, k, отмечают центр установленного круга.Как вычислить интервалы предсказания для окружности, подходящей в R
# data
x <- c(1,2.2,1,2.5,1.5,0.5,1.7)
y <- c(1,1,3,2.5,4,1.7,0.8)
# using nls.lm from minpack.lm (minimising the sum of squared residuals)
library(minpack.lm)
residFun <- function(par,x,y) {
res <- sqrt((x-par$h)^2+(y-par$k)^2)-par$r
return(res)
}
parStart <- list("h" = 1.5, "k" = 2.5, "r" = 1.7)
out <- nls.lm(par = parStart, x = x, y = y, lower =NULL, upper = NULL, residFun)
Проблема заключается в том, predict()
не работает с nls.lm, поэтому я пытаюсь вычислить окружность подгонку с помощью nlsLM. (Я мог бы вычислить его вручную, но есть проблемы создания моей Designmatrix) .`
Так это то, что я попытался следующий:
dat = list("x" = x,"y" = y)
out1 <- nlsLM(y ~ sqrt(-(x-h)^2+r^2)+k, start = parStart)
что приводит:
Error in stats:::nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
Вопрос 1a: Как работает nlsLM()
? (Преимущество состоит в том, что общий predict()
доступен Вопрос 1b:.? Как получить интервал предсказания для моего круга приступе
Пример из линейной регрессии (это то, что я хочу для окружности регрессии)
attach(faithful)
eruption.lm = lm(eruptions ~ waiting)
newdata = data.frame(waiting=seq(45,90, length = 272))
# confidence interval
conf <- predict(eruption.lm, newdata, interval="confidence")
# prediction interval
pred <- predict(eruption.lm, newdata, interval="predict")
# plot of the data [1], the regression line [1], confidence interval [2], and prediction interval [3]
plot(eruptions ~ waiting)
lines(conf[,1] ~ newdata$waiting, col = "black") # [1]
lines(conf[,2] ~ newdata$waiting, col = "red") # [2]
lines(conf[,3] ~ newdata$waiting, col = "red") # [2]
lines(pred[,2] ~ newdata$waiting, col = "blue") # [3]
lines(pred[,3] ~ newdata$waiting, col = "blue") # [3]
с наилучшими пожеланиями
Резюме правок:
edit1: реаранжированная формулой в nlsLM, но параметр (H, K, R) результаты теперь отличаются вне и OUT1 ...
Edit2: Добавлено 2 ссылки для википедии для выяснения урожая по терминологии: (c.f. ниже)
Edit3: Некоторые перефразировка вопрос (ы)
Edit4: Добавлен рабочий пример для линейной регрессии
Поиск h, k и r не был проблемой. Это уже было частью результата, названного «out» в коде плаката. –