оптимизация с использованием "nlminb" - PullRequest
0 голосов
/ 26 июня 2011

я сейчас выполняю модель местоположения с использованием непараметрического сглаживания для оценки параметров ..... одним из сглаженных параметров является lamdha, который я должен оптимизировать ...

, поэтому в этом случае ярешите использовать "функцию nlminb" для достижения этого .....

однако, мое программирование дает мне то же самое значение "$ par", даже если оно повторялось 150 раз и делало 200 вычислений (по умолчанию)..... что значит выбрать "начальное значение как $ par" (то есть 0,000001 ...... я думаю, что-то не так с моей написанной программой ....

мое программированиевыглядят так: - (примечание: w - это параметр, который я хочу оптимизировать, а LOO - это один-единственный выход

BEGIN

Myfunc <- function(w, n1, n2, v1, v2, g)
{  ## open  loop for main function

## DATA generation
        # generate data from group 1 and 2
        # for each group: discretise the continuous to binary
        # newdata <- combine the groups 1 and 2

## MODEL construction
     countError <- 0
        n <- nrow(newdata)

       for (k in 1:n)
       {# open loop for leave-one-out
             # construct model based on n-1 object using smoothing method
                 # classify omitted object
                countError <- countError + countE
       }   # close loop for LOO process

          Error <- countError / n     # error rate counted from LOO procedure 

     return(Error)           # The Average ERROR Rate from LOO procedure 

}       # close loop for Myfunc

library(stats)
  nlminb(start=0.000001, Myfunc, lower=0.000001, upper=0.999999, 
                 control=list(eval.max=100, iter.max=100))

END

можеткто-нибудь, помогите мне ......

ваши проблемы и указания высоко ценятся и действительно нужны 100 ... ...... 1016 *

Хашиба, студент-аспирант по статистике

1 Ответ

3 голосов
/ 26 июня 2011

В вашем вопросе укажите nlminb с одномерным начальным значением.Если вы делаете одномерную оптимизацию, возможно, стоит взглянуть на optimize.Если ваша функция многомерная , то вам нужно вызвать nlminb немного по-другому.

Вам необходимо определить целевую функцию так, чтобы вы предоставили параметры для оптимизации как вектор, который является первым аргументом.Другие входные данные для целевой функции должны быть предоставлены в качестве последующих аргументов.

Например (изменено со страницы справки nlminb):

X <- rnbinom(100, mu = 10, size = 10)
hdev <- function(par, x) {
 -sum(dnbinom(x, mu = par[1], size = par[2], log = TRUE))
}
nlminb(start = c(9, 12), hdev, x = X)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...