2014-09-04 5 views
0

선형 및 비선형 부분 화학식 :R, I는 다음과 같다 회귀해야

fit <- nls (data$y ~ (data$v1 + data$v2 + data$v3 + data$v4) *(1 + exp(theta1 - theta2*data$v5 - theta3*data$v6)^-1), 
     data = data, 
     start = c (theta1 =0, theta2= 0, theta3= 0)) 

요약 변수는 선형 관계에 따라 상기 제 부분적

(적합) 있지만 의해 가중치 비선형 표현 (두 번째 부분). 모델은 실행되지만 요약에는 비선형 부분 (theta1, theta2 및 theta3)의 매개 변수에 대한 정보 만 표시됩니다. 아무도 절편과 비선형 부분의 계수에 대한 정보를 얻는 방법을 알고 있습니까? 또는 제 형식이 잘못되어 R이이 계수를 추정하지 못하고 있습니까?

+2

모든 변수 앞에'data $'부분이 필요하지 않습니다. –

+3

그러나 데이터의 각 값에 대해 명시적인 가변 계수가 필요합니다. 'lm()'과 달리'nls()'는 모델의 각 변수에 대한 계수를 추정한다고 가정하지 않습니다. 그래서 당신은 'alpha1 * v1 + alpha2 * v2 + alpha3 * v3 + alpha4 * v4' 또는 그와 비슷한 것으로 보이기를 원할 것입니다. 샘플 데이터를 포함시켜 이것을 재현 가능한 예제로 만들면 좋을 것입니다 (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). '데이터'에 포함 된 내용과 그렇지 않은 내용 – MrFlick

답변

2

lm은 모든 데이터 열 앞에 계수를 넣을 것을 가정합니다. nls은 그러한 가정을하지 않습니다. 당신은 그것을 말해야합니다.

fit <- nls (y ~ (b0 + b1 * v1 + b2 * v2 + b3 * v3 + b4 * v4) * 
       (1 + exp(theta1 - theta2 * v5 - theta3 * v6)^-1), 
     data = data, 
     start = c (b0 = 0, b1 = 1, b2 = 2, b3 = 3, b4 = 4, 
        theta1 =0, theta2= 0, theta3= 0)) 

당신은 처음에 첫 번째 부분에 lm에 맞게 다음 nls에서 시작 값으로 추정 된 계수를 사용할 수 있습니다.

+1

'nlme :: gnls'에는 매개 변수의 일부에 대한 선형 하위 모델을 지정할 수있는'params' 인수가 있습니다. (B ~ v1 + v2 + v3 + v4, T ~ v5 + v6), ...)''Gnls (y ~ B * (1 + exp (T)^(-1) –