合适的正交回归使用主成分分析
这个例子展示了如何使用主成分分析(PCA)适合线性回归。PCA的垂直距离最小化数据拟合模型。这是线性的情况被称为正交回归或总体最小二乘法,并适当在没有自然区分预测和响应变量,或者当所有变量测量误差。这与通常的回归假设预测变量测量准确,并只响应变量有一个错误组件。
例如,给定两个数据向量x和y,可以符合一条线,最大限度地减少垂直距离的每一个点(x(我),(我)线。更普遍的是,与p观察到的变量,你可以适应一个r-dimensional p-dimensional空间中的超平面(r < p)。选择相当于选择组件的数量保持在PCA。可能是基于预测误差,也可能仅仅是一个务实的选择,以减少数据可控数量的维度。
在这个例子中,我们通过一些适合一个平面和一行三个观测变量数据。很容易为任意数量的变量做同样的事情,任何尺寸的模型,虽然可视化适合高维显然并不简单。
拟合平面三维数据
首先,我们生成一些小正常数据的例子。的两个变量是相当强烈相关。
rng (5“旋风”);X = mvnrnd ([0 0 0], [1。2。7;2 1 0;1:8 0 1],50);plot3 (X (: 1) X (:, 2), X (:, 3),“波”);网格在;maxlim = max (abs (X (:))) * 1.1;轴([-maxlim maxlim -maxlim maxlim -maxlim maxlim]);轴广场视图(9、12);
接下来,我们使用PCA适合飞机的数据。前两个主分量的系数定义平面的向量形式的基础。第三个人电脑是前两个正交,及其系数定义平面的法向量。
[多项式系数,分数,根]= pca (X);基础=多项式系数(:1:2)
基础=3×20.6774 -0.0790 0.2193 0.9707 0.7022 -0.2269
正常=多项式系数(:3)
正常=3×10.7314 -0.0982 -0.6749
这就是所有。但让我们深入了解一下结果,画出合适的数据。
因为前两个组件解释的方差两个维度的数据是可能的,飞机是最好的二维线性近似的数据。同样,第三个组件解释了最少的变化数据,误差项的回归。PCA的潜在根源(或特征值)定义解释方差为每个组件的数量。
pctExplained =根”。/(根)和
pctExplained =1×30.6226 0.2976 0.0798
第一主成分得分的两个坐标给每个点到平面的投影,坐标系的平面。得到的坐标拟合点的原始坐标系统,我们每个电脑系数向量乘以相应的分数,并添加数据的均值。残差只是原始数据减去安装点。
(氮、磷)= (X)大小;meanX =意味着(X, 1);Xfit = repmat (meanX n 1) +得分(:1:2)*多项式系数(:,1:2)”;残差= X - Xfit;
拟合平面的方程,满足每一个安装点Xfit
,是(((x1, x2) x3) - meanX) *正常= 0
。飞机穿过点meanX
,它的垂直距离原点meanX *正常
。每个点的垂直距离X
飞机,即。,the norm of the residuals, is the dot product of each centered point with the normal to the plane. The fitted plane minimizes the sum of the squared errors.
错误= abs ((X - repmat (meanX n 1)) *正常);上交所=总和(错误。^ 2)
上交所= 15.5142
符合形象化,我们可以画出平面,原始数据,投影到平面上。
[xgrid, ygrid] = meshgrid (linspace (min (X(: 1))马克斯(X (: 1)), 5),…linspace (min (X(:, 2))马克斯(X (:, 2)), 5));zgrid =(1 /正常(3))* (meanX *正常——(xgrid。*正常(1)+ ygrid。*正常(2)));h =网(xgrid ygrid zgrid,“EdgeColor”(0 0 0),“FaceAlpha”,0);持有在以上= (X-repmat (meanX n 1)) *正常< 0;下面= ~以上;nabove =(上图)之和;X1 = [X(上图,1)Xfit(上图,1)南*的(nabove 1)];X2 = [X(上图,2)Xfit(上图,2)南*的(nabove 1)];X3 = [X(上图,3)Xfit(上图,3)南*的(nabove 1)];plot3 (X1, X2, X3 ',“- - -”X(上图,1)X(上图,2),X(上图,3),“o”,“颜色”,[0 0]);nbelow =(下图)之和;X1 = [X(下图1)Xfit(低于1)南*的(nbelow 1)];X2 = [X(下图2)Xfit(下面,2)南*的(nbelow 1)];X3 = [X(下面,3)Xfit(低于3)南*的(nbelow 1)];plot3 (X1, X2, X3 ',“- - -”X(下图1)X(下面,2),X(下面,3),“o”,“颜色”,(1 0 0));持有从maxlim = max (abs (X (:))) * 1.1;轴([-maxlim maxlim -maxlim maxlim -maxlim maxlim]);轴广场视图(9、12);
绿点在平面之上,红点所示。
拟合直线三维数据
拟合直线的数据更简单,因为PCA的嵌套属性,我们可以使用的组件已经被计算。方向向量定义的线是第一主成分系数。第二个和第三个pc是正交的第一个,和他们的系数定义方向垂直于线。最简单的方程来描述线路meanX + t * dirVect
,在那里t
参数化的位置。
dirVect =多项式系数(:1)
dirVect =3×10.6774 0.2193 0.7022
主成分得分的第一个坐标给每个点到线的投影。与二维,PC系数向量乘以分数给原始坐标系统的安装点。
Xfit1 = repmat (meanX n 1) +得分(:1)*多项式系数(:1)';
情节,原始数据,直线的投影。
t = [min(分数(:1))。2,马克斯(得分(:1))+ 2];endpts = [meanX + t (1) * dirVect ';meanX + t (2) * dirVect '];plot3 (endpts (: 1) endpts (:, 2), endpts (:, 3),“k -”);X1 = [X (: 1) Xfit1(: 1)南*的(n - 1)];X2 = [X (:, 2) Xfit1(:, 2)南*的(n - 1)];X3 = [X (:, 3) Xfit1(:, 3)南*的(n - 1)];持有在plot3 (X1, X2, X3 ',“b -”X (: 1) X (:, 2), X (:, 3),“波”);持有从maxlim = max (abs (X (:))) * 1.1;轴([-maxlim maxlim -maxlim maxlim -maxlim maxlim]);轴广场视图(9、12);网格在
虽然看起来很多预测的情节不垂直于线,那只是因为我们绘制3 d数据在二维空间中。在一个生活MATLAB®
图窗口中,您可以交互式地旋转不同角度的情节,验证预测的确是垂直的,和得到更好的感觉如何与数据的吻合程度。