2013-12-18 2 views
0

나는 비선형 회귀의 시작 값을 찾으려고 아래 루프를 사용하는 함수를 작성했습니다. 루프의 결과를 전체 목록에서 검색하고 가장 작은 RSS를 생성하는 매개 변수 집합을 찾는 절차가 있는지 궁금합니다.R 가장 작은 RSS를 가진 목록 회원을 찾습니다

for (c1 in seq(0.95*min(trans), 0.95*max(trans), mean(trans)/10)){ 
for (gamma in seq(1,100,1)) { 

    lin_eq  <- paste0("lag_0 ~", paste(paste(colnames(linear_dat)[-1]), sep="",collapse='+'))  
    nonlin_eq <- paste0("transition + ",paste("I(transition*",paste(colnames(nonlinear_dat),")"), sep="",collapse='+')) 

    transition <- (1+exp(-(gamma/scale)*(trans-c1)))^-1 

    grid.regre <-lm(paste0(lin_eq,"+",nonlin_eq),data=data.frame(linear_dat,nonlinear_dat,trans)) 

    coef <- grid.regre$coefficients 
    RSS <- sum(grid.regre$residuals^2) 
    grid[[length(grid)+1]] <- c(RSS,gamma,c1,coef) 
} 

}

감사합니다 만.

답변

1
num <- which.min(sapply(grid, "[[", 1)) # the item number with min RSS 
grid[[num]] # the whole list entry 
+0

"RSS"를 1로 대체하여 목록의 모든 구성원의 첫 번째 요소를 추출하려고했습니다. 그것은 완벽하게 작동합니다. 고맙습니다! – Javier

+0

아, 네 말이 맞아. 목록 요소의 이름을 지정하지 않았다는 것을 나는 눈치 채지 못했습니다. –