Curve fitting: seversl curves to one
Show older comments
Hi,
I have quite a special demand: I have a curve for number of housholds for the years of 1960-2020 and want to create a relationship of several economic and demographic curves/datapoints. I want to have the combination of those datasets (demographic ones) to fit to the number of households. Is there a sort of fitting tool integrated, combining the different datasets?
4 Comments
Image Analyst
on 12 Apr 2020
What does your curve represent? What do the other economic and demo data represent? Let's say you have, for each household, the household income, the race, the city, and the ages of the oldest and youngest occupant. Now let's say you have that data for 1000 households in dataset #1, 600 households in dataset #2, and 3000 households in dataset #3. Now what? How was this curve you mentioned created from that data? It would be best if you attached your actual data so we could talk about the exact features/attributes of the households.
And I have no idea what "to fit the best the number of households" means. I don't even understand the grammar. What is being fit to what?
Image Analyst
on 12 Apr 2020
Edited: Image Analyst
on 12 Apr 2020
Make up some dummy data sets in tables, or separate variables, and upload them so we have something to work with. Make it easy for us to help you, not hard.
Also, there are probably lots of models that could be fit using those 4 vectors. Do you want the product like you suggested, or perhaps a weighted sum, or Principal Components Analysis, or LDA? Or has anyone ever come up with some sort of formula that we can use?
Redstein
on 12 Apr 2020
Answers (2)
Rajani Mishra
on 16 Apr 2020
0 votes
What I understand from your question and following comments is that you have dataset of Household, Population, GDP, Taxes, Mean Income and you want to find the values of a,b,c and d for the equation you have provided.
In that case you can make a combined data set having each data set as a column and use function nlinfit, you can read more about the function here.
refer to the similar question I came across:
Tom Lane
on 23 Apr 2020
0 votes
If you want
nhh = a * (n1^b) * (n2^c) * (n3^d)
consider taking logs
log(nhh) = log(a) + b*log(n1) + c*log(n2) + d*log(n3)
You can use any least squares feature in MATLAB, Statistics and Machine Learning Toolbox, or Optimization Toolbox. Pass in the log values as data. You'd get back estimates of log(a), b, c, and d.
Categories
Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!