selectmodel¶
Selection of an optimal parametric model
Syntax¶
opt = selectmodel(models,V,r,K,'method')
[opt,f,param,paramcis] = selectmodel(models,V,r,K,'method')
[opt,f,param,paramcis] = selectmodel(models,{V1,V2,___},r,{K1,K2,___},'method')
[opt,f,param,paramcis] = selectmodel(models,V,r,K,{'method1','method2',___})
[opt,f,param,paramcis] = selectmodel(models,V,r,K,'method',param0)
[opt,f,param,paramcis] = selectmodel(models,V,t,'method')
[opt,f,param,paramcis] = selectmodel(models,{V1,V2,___},{t1,t2,___},'method')
[opt,f,param,paramcis] = selectmodel(models,V,t,'method',param0)
[opt,f,param,paramcis] = selectmodel(___,'Property',Value)
- Parameters
models- Input parametric models (cell array of function handles)V- Input signal (N-element array)r- Distance axis (N-element array), in nanometersK- Dipolar kernel (NxM-element array)t- Time axis (N-array), in microsecondsmethod- Model selection type(s) (string or cell array of strings)param0- Initial parameter values for each model (cell array of numerical vectors)
- Returns
opt- Index of optimal parametric model (scalar)f- Evaluated model selection functionals (cell array)param- Fitted parameters for each evaluated model (cell array)paramcis- Confidence intervals for the fitted parameters for each evaluated model (cell array)
Description¶
opt = selectmodel({@model1,@model2,___,@modelN},V,r,K,{'aic',___})
Fits the distance distribution models model1, …, modelN to a signal V, using the dipolar kernel K and distance axis r. The models must be passed as a cell array of function handles. The fits are then evaluated according to the model selection criteria specified in the last input argument:
'aic'- Akaike information criterion'aicc'- Corrected Akaike information criterion'bic'- Bayesian information criterion'rmsd'- Root mean square deviation
The function returns an array containing the optimal model for each selection method.
opt = selectmodel({@model1,@model2,___,@modelN},V,t,{'aic',___})
Fits the time-domain parametric models model1, …, modelN to a signal V defined over the time axis t.
opt = selectmodel(models,{V1,V2,___},r,{K1,K2,___})
opt = selectmodel(models,{V1,V2,___},r,{K1,K2,___},param0)
Passing multiple signals/kernels enables distance-domain global fitting of the parametric models to single distributions. The global fit weights are automatically computed according to their contribution to ill-posedness. The multiple signals are passed as a cell array of arrays of sizes N1, N2,… and a cell array of kernel matrices with sizes N1xM, N2xM, … must be passed as well.
opt = selectmodel(models,{V1,V2,___},{t1,t2,___})
opt = selectmodel(models,{V1,V2,___},{t1,t2,___},param0)
Similarly, time-domain global fitting can be used when passing time-domain models and the model time axes {t1,t2,___} of the corresponding signals.
opt = selectmodel(models,V,r,K,{'aic',___},{par1,___,parN})
opt = selectmodel(models,V,t,{'aic',___},{par1,___,parN})
The initial guess values for the parameters of each model can be passed as a cell array {par1,___,parN} of value vectors.
[opt,f,param,paramcis] = selectmodel(___)
Additional outputs include: the evaluated method selection functionals f for the different methods, a cell array params with the fitted parameters for each of the evaluated models, as well as their confidence intervals paramcis.
Additional Settings¶
Additional settings can be specified via name-value pairs. All property names are case insensitive and the property-value pairs can be passed in any order after the required input arguments have been passed.
opt = selectmodel(___,'Property1',Value1,'Property2',Value2,___)
'Upper'- Parameter upper bound constraintsCell array containing the upper bound values for the parameters of the evaluated parametric models.
Default: [empty] - Uses the model’s default upper bound values
Example:
opt = selectmodel({@dd_gauss,@dd_rice},V,r,K,'aicc','Upper',{[10 1],[10 2]})
'Lower'- Parameter lower bound constraintsCell array containing the lower bound values for the parameters of the evaluated parametric models.
Default: [empty] - Uses the model’s default lower bound values
Example:
opt = selectmodel({@dd_gauss,@dd_rice},V,r,K,'aicc','Lower',{[1 0.1],[10 0.2]})
See fitparamodel for a detailed list of other name-value pairs accepted by the function.