如何对不同流量站点执行主成分分析(PCA)
问题核心原因
你当前直接打印prcomp返回对象输出的是标准差与载荷矩阵(旋转矩阵),你同事要求的按年份对应主成分的结果是主成分得分,存储在prcomp返回结果的x属性中,不需要调整原始数据结构或改核心参数,只要提取对应属性拼接年份列即可。
实现代码
# 原有PCA计算逻辑 pca <- prcomp(df[-5]) # 拼接年份与主成分得分,得到目标格式 pca_result <- cbind.data.frame(Year = df$Year, pca$x) # 打印验证结果 print(pca_result)
补充说明
如果各站点流量量级差异大,建议在调用prcomp时增加scale. = TRUE参数对变量做标准化后再做PCA,避免量级大的变量主导结果。prcomp返回结果的三个核心属性含义:
pca$sdev:各主成分的标准差,平方后可计算各主成分的方差贡献率pca$rotation:载荷矩阵,行对应原始站点变量,列对应主成分,值代表站点对对应主成分的贡献程度pca$x:主成分得分矩阵,行对应原始年份样本,列对应主成分,即你需要的目标结果
内容的提问来源于stack exchange,提问作者Sayantan4796
相关产品推荐
相关产品推荐

