Документация Engee

Начало работы

Сначала импортируйте пакет.

julia> using LsqFit

Определите модель экспоненциального спада с двумя параметрами, где  — одноэлементная независимая переменная, а и  — параметры.

Функция модели имеет следующий вид:

julia> # t: массив независимой переменной
julia> # p: массив параметров модели
julia> model(t, p) = p[1] * exp.(-p[2] * t)

Для иллюстрации мы сгенерируем фиктивные данные.

julia> # tdata: данные независимой переменной
julia> # ydata: данные зависимой переменной
julia> tdata = range(0, stop=10, length=20)
julia> ydata = model(tdata, [1.0 2.0]) + 0.01*randn(length(tdata))

Перед подгонкой данных требуются также начальные значения параметров для curve_fit().

julia> p0 = [0.5, 0.5]

Выполните curve_fit(), чтобы подогнать данные и получить оценочные параметры.

julia> fit = curve_fit(model, tdata, ydata, p0)
julia> param = fit.param
2-element Array{Float64,1}:
 1.01105
 2.0735

В LsqFit.jl также есть функции для анализа качества соответствия p0 = [0.5, 0.5]. vcov(fit) вычисляет оценочную ковариационную матрицу.

julia> cov = vcov(fit)
2×2 Array{Float64,2}:
 0.000116545  0.000174633
 0.000174633  0.00258261

stderror(fit) возвращает среднеквадратичную погрешность каждого параметра.

julia> se = stderror(fit)
2-element Array{Float64,1}:
 0.0107956
 0.0508193

Чтобы получить доверительный интервал на уровне значимости 10 %, выполните вызов confint(fit; level=0.9), который, по сути, вычисляет the estimate parameter value ± (standard error * critical value from t-distribution).

julia> confidence_interval = confint(fit; level=0.9)
2-element Array{Tuple{Float64,Float64},1}:
 (0.992333, 1.02977)
 (1.98537, 2.16162)

Дополнительные сведения о пакете LsqFit.jl см. в руководстве и справке по API.