偏最小二乘法拟合

 

偏最小二乘回归提供一种多对多线性回归建模方法,特别当两组变量的个数很多,且都存在多重相关性,而观测数据的样本量又较少时,用偏最小二乘法回归建立的模型具有传统的经典回归分析等方法多没有的有点。

例如下图是关于体能训练的数据,被测变量分为两组。第一组是身体特征指标X,包括体重(x1)、腰围(x2)、脉搏(x3)。第二组变量是训练结果指标Y,包括单杠(y1)、弯曲(y2)、跳高(y3)。通过偏最小二乘法建立Y 和 X 之间的回归模型。

..


A

1

=file("plsdata.xlsx").xlsimport@w()

2

=transpose(A1.to(2:)).to(2:)

3

=transpose(A2.to(:3))

4

=transpose(A2.to(4:))

5

=pls(A3,A4,3)

6

=transpose(pls(A3,A5))

7

=canvas()

8

=A7.plot("NumericAxis","name":"y_pre","title":"prediction data")

9

=A7.plot("NumericAxis","name":"y","location":2,"title":"observation data ","titleAngle":270)

10

=A7.plot("Dot","lineWeight":0,"lineColor":-16776961,"markerWeight":1,"axis1":"y_pre","data1":A6(1),"axis2":"y","data2": A2(4))

11

=to(20)

12

=A7.plot("Line","markerStyle":0,"axis1":"y_pre","data1":A11,"axis2":"y", "data2":A11)

13

=A7.plot("Legend","legendText":"Horizontalbarprediction","iconWidth":0)

14

=A7.draw(600,600)

A1 导入数据,读成二级序列

A2去掉序号和标题,选出数据矩阵

A3 选出自变量数据X

A4选出因变量数据Y

A5 采用偏最小二乘法进行拟合,返回拟合模型表达式系数

..

比如数据的第一列表示:

y1=47.9684+0.0788x1-1.4558x2-0.0190x3

A6 传入要预测的数据,和A5建好的模型,进行预测,返回预测结果。即y1y2y3的值。

..

A7-A14 以单杠y1为例画图,评估模型效果。横轴表示每个样本单杠数据的预测值,纵轴表示观测数据真实值。如果所有点都能在对角线附近均匀分布,则方程的拟合值与原值差异很小,方程的拟合效果就好。同理可画出y2y3的预测效果图。

..

A7 生成画布

A8 绘制横轴,预测数据

A9 绘制纵轴,观测数据真实值

A10 绘制点图元,横轴取单杠的预测值,纵轴取单杠的真实值

A11[1,20]的固定区间

A12 绘制线图元,y=x

A13 绘制图例

A14画图