MATLAB Answers

ftlim multiple regression with interaction term

29 ビュー (過去 30 日間)
Aoife
Aoife 2014 年 10 月 2 日
編集済み: Sven 2018 年 4 月 11 日
Hi, I am trying to use ftlim to carry out multiple regression with an interaction term. I have looked at the example in mathworks and copied the example into my comand window. However, I keep getting an error "Predictor and response variables must have the same length". I have had the same problem with my own data. I am usin gMatlab R2013b. This is the example: http://www.mathworks.co.uk/help/stats/group-comparisons-using-categorical-arrays.html?refresh=true#zmw57dd0e3149 Can anyone help?
Thanks in advance.
  4 件のコメント
the cyclist
the cyclist 2014 年 10 月 3 日
Glad it worked out.

サインインしてコメントする。

回答 (1 件)

Sven
Sven 2018 年 4 月 11 日
編集済み: Sven 2018 年 4 月 11 日
It's a few years late but I think I've discovered the bug that may have been your problem (or at least generates a similar error that others might find via a search):
Linear regression (specifically the fitlm() method) fails when using a table as first input AND when that table contains a variable with 3 or more dimensions. This failure occurs even when that variable is not included as a term in the fit.
Bug is reproducible via the following, showing a fit working with minimal variables, still working with an unused 2d variable, and then failing with an unused 3d variable:
% Make a table
X = load('carsmall')
cars = table(X.MPG,X.Weight,nominal(X.Model_Year),'Var',{'MPG','Weight','Model_Year'})
% Show that fitlm works
fitRunsOk = fitlm(cars,'MPG~Weight*Model_Year')
cars.unused2dVar = rand(size(cars,1),5)
fitStillOk = fitlm(cars,'MPG~Weight*Model_Year')
% But it fails when an irrelevant variable is added that happens to be 3d
cars.unused3dVar = rand(size(cars,1),5,5)
fitFAILS = fitlm(cars,'MPG~Weight*Model_Year')
>> Error using classreg.regr.FitObject/assignData (line 134)
Predictor and response variables must have the same length.
The workaround until fixed (I've submitted a bug report) will be to make a temporary copy of your table that omits any variables with 3 or more dimensions.

Community Treasure Hunt

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

Start Hunting!

Translated by