Fitting two data sets with one curve

3 vues (au cours des 30 derniers jours)
Robert Rehammar
Robert Rehammar le 28 Déc 2011
Hi folks,
I have two data sets, S = (Vs, Is) and P = (Vp, Ip) which I would like to model using a function with one common parameter and one that depends on the dataset, like: f(V,param) = a(param)*V^b, and para = p or s.
Is there some easy wasy to do this using CFT?
Best, Robert

Réponse acceptée

the cyclist
the cyclist le 28 Déc 2011
I don't really have any experience with the curve fitting tool, but the way to do this in general is to use a dummy variable (value = 0 or 1) that you set to 0 for one set of data, and 1 for the other set of data. You could use nlinfit() from the Statistics Toolbox to do this kind of fit.
I could probably cobble together a simple example if it is not clear what I mean.
EDIT: Added example below in response to later comment.
% Some pretend explanatory data
x = [1:10,1:10]'; % Some explanatory variable (e.g. values 1-10 for each group might be grades 1-10)
g = [zeros(1,10),ones(1,10)]'; % Dummy variable, indicating two different groups (e.g. 0=boys,1=girls)
% Some pretend output or "response" variable
% I deliberately create it like this, to be well fit by a model,
% so that you can see what is going on
A = 3; % Fixed level
B = 4; % Coefficient of dependency on x
C = 10; % Effect of the group
R = 2; % Some randomness so we don't get a perfect fit
% The response
y = A + B*x + C*g + R*randn(20,1);
% Fit a linear model to the data
[b,bint,r,rint,stats] = regress(y,[ones(20,1) x g]); % Need to include a column of ones. (See "doc regress")
% Calculate the fitted value of y, for each value of x,g
yFit = [ones(20,1) x g] * b;
% Display a comparision between data and fitted values
figure
plot(x,y,'bo',x,yFit,'rx')
legend({'Data','Fitted value'},'Location','NorthWest')
  1 commentaire
Robert Rehammar
Robert Rehammar le 28 Déc 2011
Thanks! This was exactly what I was looking for, no need for an example.

Connectez-vous pour commenter.

Plus de réponses (1)

Navneet Viswan
Navneet Viswan le 7 Mar 2012
@ the cyclist Hey, even i'm struck in the same problem. Seems your solution will work for me. Can you help me out with an example to understand it better?
VJ
  1 commentaire
the cyclist
the cyclist le 7 Mar 2012
Edited my answer to include an example.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by