2014-12-30 3 views
0

Я пытаюсь оптимизировать функцию в Julia, используя следующий код, но получая LoadError. может ли кто-нибудь сказать мне, в чем проблема в моем коде?Ошибка при оптимизации с помощью Julia Optim

data = readdlm("RGPSLessData.csv", ';') 
using Optim 
function f(x::Vector,n11,E) 
    return sum(-log((x[5] * dnbinom(n11, x[1], x[2]/(x[2]+E)) + (1-x[5]) * dnbinom(n11, x[3], x[4]/(x[4]+E))))) 
end 
res = optimize(x -> f(x,data[:,1],data[:,2]),[0.2,0.06,1.4,1.8,0.1]) 
+0

Посмотрите на [newton.jl тест из пакета Optim.jl] (https://github.com/JuliaOpt/Optim.jl/ блоб/ведущий/тест/newton.jl). – rickhg12hs

+0

@ rickhg12hs, спасибо, что ответили. Я новичок во всем этом. можете ли вы сказать мне, что все изменения мне нужно сделать? заранее спасибо – Kushal

+0

Мне непонятно, что вы хотите сделать, учитывая, что примеры методов 'newton' настолько сильно отличаются от вашего кода примера. – rickhg12hs

ответ

0

dnbinom не является функцией в Джулии (в комментариях это, кажется, из R). Распределение вероятностей обеспечивается пакетом Distributions.jl. Вместо

dnbinom(n11, x[1], x[2]/(x[2]+E)) 

Вы можете использовать

pdf(NegativeBinomial(x[1], x[2]/(x[2]+E)), n11) 
Смежные вопросы