我的目标是对数据使用nsprcopm()
(版本0.5.1.2 )进行非负 PCA,并提取PC的值。我在 R 3.5.0版中按如下方式进行操作:
nnpca <- nsprcomp(mydata[,10:16], center = T, scale. = T, nneg = T)
关键是我需要强制执行非负性(因为在下一步中,我将使用glm(..., family = Gamma())
,而glm
不会接受Gamma的负值)
问题是nsprcopm()
为PC产生负值。这是nnpca$x
的快照:
有什么想法吗?!这是nsprcomp()
的错误还是什么?我想念什么吗?!
答案 0 :(得分:0)
我找到了这个问题,如果有人遇到类似的问题,请把它放在这里以供将来参考:
问题来自参数df %>% filter(., ave(seq_len(nrow(.)), dob, lname, FUN = length) > 1)
。当center = T
时,True
尝试移动所有PC,使其位于坐标中心附近。这将不可避免地使某些PC变成负数(即使原始值是正数)。
nsprcomp