how to run multiple number of regressions?

I have table T with
Date Location Sales Visitors
1/1 NY 10 5
1/1 LA 7 3
1/2 NY 9 5
1/2 LA 4 1
Then I want to run regressions
(sales)=a_i*(visitor)+b_i
for each i = {NY, LA}. Is there any simpler way to do this?

 Accepted Answer

tRegress=rowfun(@(x,y)polyfit(x,y,1),T,'GroupingVariables',{'Location'}, ...
'InputVariables',{'Visitors','Sales'}, ...
'NumOutputs',1, ...
'OutputVariableNames',{'Coefficients'});

3 Comments

can one run on fitlm? It is because the actual data is more complex than the example above.
tRegress=rowfun(@(x,y)fitlm(x,y,'linear'),T,'GroupingVariables',{'Location'}, ...
'InputVariables',{'Visitors','Sales'}, ...
'NumOutputs',1, ...
'OutputVariableNames',{'Model'}, ...
'OutputFormat',"cell");
If it gets too much more complicated may have to use an m-file for the function instead of anonymous function...also have to switch to a cell output to catenate the model outputs instead of table.
alpedhuez
alpedhuez on 30 Jul 2021
Edited: alpedhuez on 30 Jul 2021
Let me work on it.

Sign in to comment.

More Answers (0)

Products

Release

R2020b

Tags

Asked:

on 29 Jul 2021

Edited:

on 30 Jul 2021

Community Treasure Hunt

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

Start Hunting!