在R中拟合多维平面

在R中拟合多维平面,r,geometry,plane,R,Geometry,Plane,我有多维(100+变量)数据,我希望其中的子集或多或少符合一个平面。 将平面拟合到R中的子集的最佳方法是什么 我想用这个平面来计算其他点到它的距离,并画出它的一些尺寸。主成分可以帮你解决这个问题。假设您的数据确实与平面匹配,那么前两个主成分应该能够很好地描述该平面 您没有提供任何示例数据,因此我将用一些人工数据进行说明。我的数据是十维的,但所有的点都靠近一个平面(在其他八个方向上有一些误差) 由于所有变量都是x和y的线性组合(加上一个小误差),因此数据仅为二维数据,并且位于x-y平面附近。这里我

我有多维(100+变量)数据,我希望其中的子集或多或少符合一个平面。 将平面拟合到R中的子集的最佳方法是什么


我想用这个平面来计算其他点到它的距离,并画出它的一些尺寸。

主成分可以帮你解决这个问题。假设您的数据确实与平面匹配,那么前两个主成分应该能够很好地描述该平面

您没有提供任何示例数据,因此我将用一些人工数据进行说明。我的数据是十维的,但所有的点都靠近一个平面(在其他八个方向上有一些误差)

由于所有变量都是x和y的线性组合(加上一个小误差),因此数据仅为二维数据,并且位于x-y平面附近。这里我把x和y当作潜变量。它们不会出现在数据中,而是驱动所有其他变量的行为

## Principal Components Analysis
PCA = prcomp(MyData)
plot(PCA)

是的,数据看起来基本上是二维的。剩下的就是得到前两个主成分。它们存储在从
prcomp
返回的结构中

PCA$rotation[,1:2]
            PC1          PC2
V1   0.42752681 -0.204894748
V2  -0.64546573 -0.056503044
V3   0.04606707 -0.009614603
V4   0.01956126 -0.539070667
V5   0.15987617  0.600122935
V6  -0.06255399  0.054053476
V7   0.26497132  0.388920891
V8   0.21645814 -0.366709584
V9   0.49363625 -0.116954131
V10  0.08874645  0.040656622
我们正在寻找的平面是由这两个向量所跨越的平面

PCA$rotation[,1:2]
            PC1          PC2
V1   0.42752681 -0.204894748
V2  -0.64546573 -0.056503044
V3   0.04606707 -0.009614603
V4   0.01956126 -0.539070667
V5   0.15987617  0.600122935
V6  -0.06255399  0.054053476
V7   0.26497132  0.388920891
V8   0.21645814 -0.366709584
V9   0.49363625 -0.116954131
V10  0.08874645  0.040656622