Main Content


Merge estimated models


m = merge(m1,m2,....,mN)
[m,tv] = merge(m1,m2)


m = merge(m1,m2,....,mN) merges estimated models. The models m1,m2,...,mN must all be of the same structure, just differing in parameter values and covariance matrices. Then m is the merged model, where the parameter vector is a statistically weighted mean (using the covariance matrices to determine the weights) of the parameters of mk.

[m,tv] = merge(m1,m2) returns a test variable tv. When two models are merged,

[m, tv] = merge(m1,m2)

tv is χ2 distributed with n degrees of freedom, if the parameters of m1 and m2 have the same means. Here n is the length of the parameter vector. A large value of tv thus indicates that it might be questionable to merge the models.

For idfrd models, merge is a statistical average of two responses in the individual models, weighted using inverse variances. You can only merge two idfrd models with responses at the same frequencies and nonzero covariances.

Merging models is an alternative to merging data sets and estimating a model for the merged data.

load iddata1 z1;
load iddata2 z2;
m1 = arx(z1,[2 3 4]);
m2 = arx(z2,[2 3 4]);
ma = merge(m1,m2);


mb = arx(merge(z1,z2),[2 3 4]);

result in models ma and mb that are related and should be close. The difference is that merging the data sets assumes that the signal-to-noise ratios are about the same in the two experiments. Merging the models allows one model to be much more uncertain, for example, due to more disturbances in that experiment. If the conditions are about the same, we recommend that you merge data rather than models, since this is more efficient and typically involves better conditioned calculations.

Version History

Introduced in R2007a

See Also