2014-04-09 4 views
2

a1, a2, ..., a_n으로 저장된 여러 비선형 회귀 모델 (nls)이 있습니다. 관련된 결정 계수의 벡터를 얻고 싶습니다.여러 모델에 대한 결정 계수

예.

y <- c(1.0385, 1.0195, 1.0176) 
x <- c(3,4,5) 
data <- data.frame(x,y) 
b1 <- function(x,a,b) {a/b^x} 
b2 <- function(x,a,b) {a^b^x} 
a1 <- nls(y ~ b1(x,a,b), data = data, start = c(a=0.9, b=0.6)) 
a2 <- nls(y ~ b2(x,a,b), data = data, start = c(a=0.9, b=0.6)) 

내가

a <- sum(residuals(a1)^2) 
b <- sum((y - mean(y))^2) 
1 - (a/b) 
#[1] 0.8198396 
a <- sum(residuals(a2)^2) 
b <- sum((y - mean(y))^2) 
1 - (a/b) 
#[1] 0.9066859 

하지만 난 할 경우 무슨 일이 (20 개) 모델 말을 사용 detetermination의 두 계수를받을 수 있나요?

나는주기가 for인데, 그 이유는 클래스가 nls이기 때문에 벡터 나 매트릭스가 아니기 때문에 나에게 효과가 없었기 때문이다.

답변

2

사용 후 모든 결과의 list과에 함수를 적용

results <- list(a1,a2) 

b <- sum((y - mean(y))^2) 
1 - (sapply(results,function(x) sum(residuals(x)^2))/b) 
#[1] 0.8198396 0.9066859 
관련 문제