[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fitting multiple datasets to "partially" the same model (global fit
From: |
Oliver Heimlich |
Subject: |
Re: Fitting multiple datasets to "partially" the same model (global fit with shared parameters) |
Date: |
Mon, 7 Dec 2015 17:47:42 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.4.0 |
On 07.12.2015 16:27, JokerOne wrote:
> Yes, my explanation was not precise.
>
> Indeed, the knowledge I was talking about is about the *values* of the
> parameters.
>
> So, indeed, the model function(s) for the dataset 1 to n should be noted, in
> my example, like:
>
> F_1(x) = (a0_1*ln(x)) * (b1 + b2*x) for dataset 1
> F_2(x) = (a0_2*ln(x)) * (b1 + b2*x) for dataset 2
> ...
> F_n(x) = (a0_n*ln(x)) * (b1 + b2*x) for dataset n
>
> With "unique" a0_i for all datasets and common parameters b1, b2. Now, the
> fitting procedure could be performed simultaneously, I guess. At least, if
> this should be of some use?
>
> I hope that clarifies my question.
Maximilian,
this functionality is going to be part of the upcoming interval package
release, which is planned for December or January.
With the interval package you will be able to define a function, which
maps from your parameter space into your dataset space, and do a set
inversion for your constraints on the observed datasets. This sounds
more complicated than it is!
You will do the following:
function y = F (b1, b2)
A = [a_1; a_2; ...; a_n];
X = [x_1; x_2; ...; x_n];
y = A .* log (X) .* (b1 + b2 .* X);
endfunction
Y = [y_1; y_2; ...; y_n];
fsolve (@F, infsup ("[-10, 10] [-10, 10]"), Y)
Here I assume that you have datasets [x_1, y_1], ... [x_n, y_n], which
may either be exact values or ranges of values. Parameters a_1, ..., a_n
are assumed to be known and constant values or constant ranges
(otherwise you would have to add a to your parameter space, which only
contains b at the moment). The parameters b1 and b2 are searched for in
the interval [-10, 10]. The return value of fsolve will be an enclosure
of possible values for b1 and b2.
It is also possible to plot the possible values from the parameter
space. For example, the attachement shows a set inversion for the
dataset hypot (b1, b2) ∈ [0.5, 2].
The details will be explained in the documentation of the upcoming release.
Best regards
Oliver
fsolve_set_inversion.png
Description: PNG image