现有PCA模型的新数据点

时间:2017-05-20 17:28:01

标签: r pca confidence-interval

我已按照this教程创建并可视化PCA。我特别感兴趣的部分是向现有模型添加新数据点。

正如教程所示,人们会使用predict(ir.pca,newdata = tail(log.ir,2))来预测新的PC。但是,如何将这些新观察结果添加到现有情节中呢?它看起来不像预测函数返回与ggplot函数中使用的ir.pca相同的对象。

我发现了类似的问题herehere,但这些问题正在计算新的PCA分数,并将它们添加到方差图中(如果我理解正确的话)。

最终我要看的是新点是否属于使用初始数据集定义/导出的置信椭圆内。

我在教程中使用的代码:

sed

正如教程所示,我想添加新数据,这些数据来自用ggplot可视化的现有情节

由于

1 个答案:

答案 0 :(得分:1)

当我们检查ggplot对象时,我们发现它有一个名为data的元素:

str(g)
# List of 9
#  $ data       :'data.frame':  150 obs. of  3 variables:
#   ..$ xvar  : num [1:150] -2.41 -2.22 -2.58 -2.45 -2.54 ...
#   ..$ yvar  : num [1:150] -0.397 0.69 0.428 0.686 -0.508 ...
#   ..$ groups: Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
#  $ layers     :List of 5
#  <snip>

因此我们可以将新数据点添加到data数据帧。假设来自iris的这10个观察结果是我们的&#34;新的&#34;观察,我们预测他们的PC值:

set.seed(123)
x <- sample(seq_len(nrow(iris)), 10)
predicted <- predict(ir.pca, newdata = log.ir[x, ])

我们可以将这些预测值添加到data数据框

g$data <- rbind(g$data, 
  data.frame(
    xvar = predicted[, "PC1"],
    yvar = predicted[, "PC2"],
    groups = "new"
  )
)

以便print(g)收益 enter image description here

相关问题