"change point"분석 또는 nls()
R에서 다상 회귀 분석을 구현하려고합니다 .
여기 내가 만든 가짜 데이터가 있습니다. 데이터를 맞추기 위해 사용하려는 공식은 다음과 같습니다.
이것이해야 할 일은 특정 절편과 기울기 ( 및 ) 로 특정 지점까지 데이터를 맞추고 특정 x 값 ( ) 후에 \ beta_2만큼 기울기를 늘리는 것 입니다. 그것이 최대의 문제입니다. 포인트 전에는 0이되고 는 0이됩니다.
그래서, 이것을하는 내 기능은 다음과 같습니다.
changePoint <- function(x, b0, slope1, slope2, delta){
b0 + (x*slope1) + (max(0, x-delta) * slope2)
}
그리고 나는 이런 식으로 모델을 맞추려고 노력합니다.
nls(y ~ changePoint(x, b0, slope1, slope2, delta),
data = data,
start = c(b0 = 50, slope1 = 0, slope2 = 2, delta = 48))
데이터를 구성했기 때문에 시작 매개 변수 라는 것을 알고 있기 때문에 시작 매개 변수를 선택했습니다 .
그러나이 오류가 발생합니다.
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
방금 불행한 데이터를 만들었습니까? 나는 이것을 실제 데이터에 먼저 맞추려고 시도했는데 같은 오류가 발생했고 초기 시작 매개 변수가 충분하지 않다는 것을 알았습니다.