cancel
Showing results for 
Search instead for 
Did you mean: 

SAP HANA Predictive Analysis Library (PAL) Multiple Linear Regression Issue

Former Member
0 Kudos

Hello, HANA Experts!

I'm implementing a multiple linear regression model according to SAP PAL guide and I am getting an error:

Could not execute 'CALL _SYS_AFL.palLR(PAL_MLR_DATA_TBL, "#PAL_CONTROL_TBL", PAL_MLR_RESULTS_TBL, PAL_MLR_FITTED_TBL, ...' in 218 ms 172 µs .

SAP DBTech JDBC: [2048]: column store error: search table error:  [2620] _SYS_AFL.AFLPAL:LRREGRESSION: AFLFunctionFatal exception: PAL error[73001250]:Input data is not suitable for LU decomposition

SQLScript file attached and looks exactly as in PAL guide.

It happens when the number of independent regression variables is 8 or more. If it is 7 or less it works fine.

Is it a limitation of this library?

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hello,

This is due to the input columns are linear dependent so that it is difficult to get the result.

It is called multicollinearity:

http://en.wikipedia.org/wiki/Multicollinearity

Before running the regression model you can check the correlation matrix for the independent variables – this feature will be in PAL SPS07.

Former Member
0 Kudos

Hi Xiaowei, thanks for your explanation! This helped me get past an error I was seeing with coming up with bogus test data where I did linearly increment values in independent columns. I mixed it up a little and was able to get past this error:


Could not execute 'CALL _SYS_AFL.PAL_LR_PROC_V2(PAL_MLR_DATA_TBL, "#PAL_CONTROL_TBL", PAL_MLR_RESULTS_TBL, ...' in 252 ms 611 µs .

SAP DBTech JDBC: [2048]: column store error: search table error:  [2620] _SYS_AFL.AFLPAL:LRREGRESSION: [135] (range 2) AFLFunctionFatal exception: PAL error[73001250]:Input data is not suitable for LU decomposition

Originally, my test data looked like:


DROP TABLE PAL_MLR_DATA_TBL;

CREATE COLUMN TABLE PAL_MLR_DATA_TBL ( "ID" INT,"Y" DOUBLE,"INDEPENDENTKF1" DOUBLE, "INDEPENDENTKF2" DOUBLE, "INDEPENDENTKF3" DOUBLE, "INDEPENDENTKF4" DOUBLE, "INDEPENDENTKF5" DOUBLE, "INDEPENDENTKF6" DOUBLE, "INDEPENDENTKF7" DOUBLE, "INDEPENDENTKF8" DOUBLE);

INSERT INTO PAL_MLR_DATA_TBL VALUES (0,0.50,0.13,0.33, 1.30, 1.40, 1.50, 1.60, 1.70 ,1.80);

INSERT INTO PAL_MLR_DATA_TBL VALUES (1,0.15,0.14,0.34, 1.31, 1.41, 1.51, 1.61, 1.71 ,1.81);

INSERT INTO PAL_MLR_DATA_TBL VALUES (2,0.25,0.15,0.36, 1.32, 1.42, 1.52, 1.62, 1.72 ,1.82);

INSERT INTO PAL_MLR_DATA_TBL VALUES (3,0.35,0.16,0.35, 1.33, 1.43, 1.53, 1.63, 1.73 ,1.83);

INSERT INTO PAL_MLR_DATA_TBL VALUES (4,0.45,0.17,0.37, 1.34, 1.44, 1.54, 1.64, 1.74 ,1.84);

INSERT INTO PAL_MLR_DATA_TBL VALUES (5,0.55,0.18,0.38, 1.35, 1.45, 1.55, 1.65, 1.75 ,1.85);

INSERT INTO PAL_MLR_DATA_TBL VALUES (6,0.65,0.19,0.39, 1.36, 1.46, 1.56, 1.66, 1.76 ,1.86);

INSERT INTO PAL_MLR_DATA_TBL VALUES (7,0.75,0.19,0.31, 1.37, 1.47, 1.57, 1.67, 1.77 ,1.87);

INSERT INTO PAL_MLR_DATA_TBL VALUES (8,0.85,0.11,0.32, 1.38, 1.48, 1.58, 1.68, 1.78 ,1.88);

INSERT INTO PAL_MLR_DATA_TBL VALUES (9,0.95,0.12,0.33, 1.39, 1.49, 1.59, 1.69, 1.79 ,1.89);

So, like I said, I mixed it up a bit, and then I no longer received this error when calling my wrapper stored procedure to 'LRREGRESSION'.


INSERT INTO PAL_MLR_DATA_TBL VALUES (0,0.50,0.13,0.33, 1.30, 1.40, 1.50, 1.60, 1.70 ,1.80);

INSERT INTO PAL_MLR_DATA_TBL VALUES (1,0.15,0.14,0.34, 1.31, 1.41, 1.51, 1.61, 1.71 ,1.81);

INSERT INTO PAL_MLR_DATA_TBL VALUES (2,0.25,0.15,0.36, 1.32, 1.42, 1.52, 1.62, 1.72 ,1.82);

INSERT INTO PAL_MLR_DATA_TBL VALUES (3,0.35,0.16,0.35, 1.33, 1.43, 1.53, 1.63, 1.73 ,1.83);

INSERT INTO PAL_MLR_DATA_TBL VALUES (4,0.45,0.17,0.37, 1.34, 1.44, 1.54, 1.64, 1.74 ,4.84);

INSERT INTO PAL_MLR_DATA_TBL VALUES (5,0.55,0.18,0.38, 1.35, 1.45, 1.55, 1.65, 5.75 ,1.85);

INSERT INTO PAL_MLR_DATA_TBL VALUES (6,0.65,0.19,0.39, 1.36, 1.46, 1.56, 6.66, 1.76 ,1.86);

INSERT INTO PAL_MLR_DATA_TBL VALUES (7,0.75,0.19,0.31, 1.37, 1.47, 7.57, 1.67, 1.77 ,1.87);

INSERT INTO PAL_MLR_DATA_TBL VALUES (8,0.85,0.11,0.32, 1.38, 8.48, 1.58, 1.68, 1.78 ,1.88);

INSERT INTO PAL_MLR_DATA_TBL VALUES (9,0.95,0.12,0.33, 9.39, 1.49, 1.59, 1.69, 1.79 ,1.89);

Is this feature you mentioned for checking the correlation matrix available now?