수식> 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()
그러므로 내가 nlsLM를 사용하여 원의 적합을 계산하기 위해 노력하고, nls.lm 작동하지 않습니다. (나는 손으로 계산하지만, 내 Designmatrix을 만드는 문제를 가질 수) .`
을 그래서 내가 뭘하려 다음 :
Error in stats:::nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
질문 A : 결과
dat = list("x" = x,"y" = y)
out1 <- nlsLM(y ~ sqrt(-(x-h)^2+r^2)+k, start = parStart)
: 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과 지금 다른편집 2 : 사용 된 용어에 대한 명확한 설명을 위해 2 개의 위키 백과 링크 추가 : (c.f. 아래)
EDIT3 : 질문 (들)의 일부 다른 표현
Edit4 : 선형 회귀를위한 작업 예를
h, k 및 r을 찾는 것이 문제가 아니 었습니다. 그것은 이미 포스터의 코드에서 "out"이라는 결과의 일부였습니다. –