2013-03-14 4 views
1

나는 다음과 같은 문제의 해결책 찾으려고 노력 해요 : reproducability에 대한Optim을()와 R의 대각 행렬 (피팅 인수 오류)를 해결

임의 값 : I 입력

AZ2k <- seq(1:14) 
noAZ2k <- matrix(seq(1:25), 14, 50) 
par <- rep(0.02 , 50) 


vw <- function(w) 
{ 

    t(AZ2k - noAZ2k %*% par)%*%w%*%(AZ2k - noAZ2k %*% par) 

} 


vweights <- optim(diag(1,14), vw, gr = NULL, 
    method = c("L-BFGS-B"), 
    lower = 0, upper = 10000,control = list(factr = 1e4, maxit = 1000, pgtol = .01), 
    hessian = FALSE) 

t(AZ2k - noAZ2k %*% par)%*%diag(1,14)%*%(AZ2k - noAZ2k %*% par) 

에서 나는 결과를 얻을, 나는 그것이 값이 나에게 놀라운 일이다 피팅 수없는 것을 말한다 최적화를 실행하려고하지만 경우.

나는 완전히 명백한 것이 빠졌을 것입니다. 그러나 optim이 사용하기에는 틀린 함수가 아니라면, 내가 잘못한 부분을 찾을 수는 없지만 적절한 대안을 찾을 수는 없습니다.

답변

0

귀하 w 매개 변수는 벡터로 변환됩니다, 그래서 당신은 바로 크기와 매트릭스에 강요 할 필요가 : 나는 시도 것을주지,

vw <- function(w){ 
    w <- matrix(w,nrow=14,ncol=14,byrow=T) 
    t(AZ2k - noAZ2k %*% par)%*%w%*%(AZ2k - noAZ2k %*% par) 
} 
+0

감사 – Julius