2015-03-09 3 views
0

Я пытаюсь соответствовать моей модели y~exp((a*x1+b*x2+c)^d)+f, но я получаю сообщение об ошибке, как я не знаю, как включить mapply with nlsLM из пакета: minpack.lmКак включить mapply с nlsLM в R?

ОШИБКА:

 Error in fn(par, ...) : 
     unused arguments (x1 = c(0.203114295490632, -0.16516023916803, 
      0.0870323364177826, 

Более объяснение с различной структурой из данные:

Так первый вызов весело должен быть: y[1,1,],x1[1,1,],x2[1,1,]: подходят модели с использованием этого значения и дать results.then перейти на следующий вызов и сделать то же самый: y[1,2,],x1[1,2,],x2[1,2,] ... и т.д.

+0

ли 'прикольных (x1 = x1, x2 = x2, y = y) 'работает? – germcd

+0

Если 'y' - это список, выберите элемент, содержащий то, что вы хотите, например. 'У [[1]]'. –

+0

Где в документах для 'nlsLM' говорится, что он принимает аргументы с именами' x1', 'x2' и' y'? – r2evans

ответ

1

Я не пробовал, но это выглядит как nlsLM требует data.frame для аргумента данных (что более соответствует модели фитинга), попробуйте:

fun <- function(x1, x2, y) { 
     out <- nlsLM(y~exp((a*x1+b*x2+c)^d)+f, data = data.frame(x1=x1,x2=x2,y=y), 
      start = list(a = 3, b = 0.1, c=0.02,d = 1,f=0.02)) 
    } 
out=mapply(fun, x1=x1, x2=x2, y=y) 
+0

Я получаю две ошибки с этим: 'lmdif: info = 0. Неправильные входные параметры' и' Недостающее значение или бесконечность, возникающие при оценке модели'. – r2evans

Смежные вопросы