2014-08-04 2 views
0

ICM_Color0 열은 다음과 같은 구조를 갖는다 : 2,599 행플롯 R NLS에서, 실제 데이터와 예측 파라미터 데이터 세트 내

Lum을 Ruido DIST RT.ms Condicion

한다.

휘도 = [13,19,25] 세 가지 유형과 두 가지 유형의 노이즈 = [1, 2] -> 3x2 = 6 조건이 있습니다.

Condicion :

Lum Ruido Condicion 
13  1  1 
13  2  2 
19  1  3 
19  2  4 
25  1  5 
25  2  6 

내 모델은 다음과 같습니다

Color0.nls <- nls(RT.ms ~ 312 + K[Condicion]/(Dist^1),  
       data = ICM_Color0, start = list(K = rep(1,6))) 



> summary(Color0.nls) 

Formula: RT.ms ~ RT0.0 + K[Condicion]/(Dist^n) 

Parameters: 
    Estimate Std. Error t value Pr(>|t|)  
K1 1.84108 0.03687 49.94 <2e-16 *** 
K2 2.04468 0.03708 55.14 <2e-16 *** 
K3 1.70841 0.03749 45.58 <2e-16 *** 
K4 2.09915 0.03628 57.86 <2e-16 *** 
K5 1.62961 0.03626 44.94 <2e-16 *** 
K6 2.18235 0.03622 60.26 <2e-16 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 120.5 on 2593 degrees of freedom 

Number of iterations to convergence: 1 
Achieved convergence tolerance: 1.711e-08 

나는 실제 데이터 및 매개 변수 추정을 그릴 필요가있다.

나는 이미 문헌에 대한 일반적인 리뷰를 만들었지 만, 모델이 조건 변수에 의존하는 나의 모델과 같은 예제는 발견하지 못했습니다. 나를 안내 할 사람이 있습니까?

덕분에 많은

답변

0

그것은 (비선형 여부) 회귀에서 장착 라인을 그릴 상당히 간단합니다. 필자는 predict을 사용하여 원래 데이터에서 예측 된 값을 계산 한 다음 데이터의 산점도 위에 선으로 그려 플롯합니다.

재현 할 수있는 예제를 제공하지 않아서 this answer 다음에 몇 가지 비선형 데이터를 만들었습니다.

# Create data to fit with non-linear regression 
set.seed(16) 
x = seq(100) 
y = rnorm(200, 50 + 30 * x^(-0.2), 1) 
site = rep(c("a", "b"), each = 100) 
dat = data.frame(expl = c(x, x), resp = y, site) 

그러면 I 각 매개 변수는 그룹화 site 변수에 따라 다양하게, 비선형 회귀를 장착한다.
fit1 = nls(resp ~ a[site] + b[site] * expl^(-c[site]), data = dat, 
     start = list(a = c(80, 80), b = c(20, 20), c = c(.2, .2))) 

지금 난 그냥

dat$pred = predict(fit1) 

predict.nls 나는 이것이 ggplot2 패키지를 사용하여 플롯 사용하여 데이터 세트에 장착 값을 추가합니다. 당신이 geom_smooth 통해 ggplot에서이 모든 것을 할 수있는 것처럼 모든 매개 변수는 사이트에 따라 다를 수있어이 경우,

ggplot(data = dat, aes(x = expl, y = resp, color = site)) + 
    geom_point() + 
    geom_line(aes(y = pred)) 

, 그것은 보인다. 이 here의 아주 좋은 예를 발견했습니다.

다음은 장난감 데이터 세트의 모습입니다.

ggplot(data = dat, aes(x = expl, y = resp, color = site)) + 
    geom_point() + 
    geom_smooth(aes(group = site), method = "nls", formula = "y ~ a + b*x^(-c)", 
       start = list(a = 80, b = 20, c = .2), se = FALSE)