我是 PLSR 的新手,并且正在自学。
我目前拥有一种生物标志物的 6 种浓度的光谱数据,以 1015 个频率测量。这对于每个浓度水平重复四次。我通过对每个频率的重复数据取平均强度来汇总每个浓度的数据。
所以我的数据有
- 结果中有 6 个观察结果,并且,
- 具有 6 行(对应于结果中的值)和 1015 列的预测矩阵。
从这个线程中获取假数据模拟代码,一个模拟示例将是:
obs_no <- 6
col_no <- 1015
datasetpH <- data.frame(pH=rnorm(obs_no,5,1),
ref=I( matrix(data=rnorm(obs_no*col_no),nrow = obs_no, ncol = col_no) )
)
pls::plsr(pH ~ ref, ncomp = 10, data=datasetpH, method="kernelpls")
这给了我以下错误:
Error in pls::mvr(pH ~ ref, ncomp = 10, data = datasetpH, method = "kernelpls") :
Invalid number of components, ncomp
如果我在模拟示例中更改为 ncomp=5,则模型运行。
- 为什么在上面的模拟示例中 ncomp 限制为 5?
- 对于重复,是否应该对每个浓度和频率值的数据进行平均?或者,我可以在数据中保留重复数据并在结果中有 6*4 = 24 个浓度观察值(具有重复值)和一个对应的 24 行和 1015 列的预测矩阵?
我非常感谢您对上述内容的任何建议/指导 - 谢谢!