Error combining splitapply and regress

Hello,
I have a table named 'T' containing a set of stock returns for different stocks as well as the market return for all days the stock returns are presented. I have divided my table into groups based on the stock and now I am trying to create a regression that uses the stock return as the dependant variable and a constant and the market return as the independant/explainatory variables, however I get the error message 'Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.'
I used the code as follow:
T.Groups = findgroups(T.Numero)
T.Ones = ones(length(T.MarketReturn),1);
X = splitapply(@regress(T.StockReturn,[T.Ones T.MarketReturn]),T,T.Groups);

 Respuesta aceptada

dpb
dpb el 27 de Abr. de 2020
First argument is just a function handle or an anonymous function -- you mixed metaphors by trying to call a function and call that a handle...
X = splitapply(@(x1,x2,y) regress(y,[x1 x2]),T.Ones,T.MarketReturn,T.StockReturn,T.Groups);

3 comentarios

Nabil Benhadda
Nabil Benhadda el 28 de Abr. de 2020
Thank you a lot ! However now I get the following error message:
Error using splitapply (line 132)
The function '@(x1,x2,y)regress(y,[x1,x2])' returned a non-scalar value when applied to the 1st group of data.
To compute nonscalar values for each group, create an anonymous function to return each value in a scalar cell:
@(x1,x2,y){regress(y,[x1,x2])}
Error in BeginWork (line 20)
X = splitapply(@(x1,x2,y) regress(y,[x1 x2]),Work.Ones,Work.MarketReturn,Work.StockReturn,Work.Groups);
dpb
dpb el 28 de Abr. de 2020
Oh, yeah. splitapply doesn't automagically use a cell array when need.
Did you try the advice given in the error message? It shows exactly how to write for purpose; simply add the {} to return cell.
Nabil Benhadda
Nabil Benhadda el 29 de Abr. de 2020
Thank you again !

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Versión

R2018b

Preguntada:

el 27 de Abr. de 2020

Comentada:

el 29 de Abr. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by