假设我有 3 个虚拟模型(下图)和一组跨时间点 A、B、C 的数据,我想做一个测试,看看每组测量值与 3 个模型中的每一个模型的拟合程度如何,从而得出一个指标适用于型号 1、2、3。
我该如何在 R 中做到这一点?
dummy.df <- data.frame(S = c(0.8, 0.4, 0.1),
P = c(0.4, 0.5, 0.3),
R = c(0.1, 0.35, 0.9),
row.names = LETTERS[1:3])
random.df <- as.data.frame(matrix(runif(5*3),
nrow = 5,
ncol = 3,
dimnames = list(1:5, LETTERS[1:3])))
假设 random.df 是数据,dummy.df 是模型值,我们可以比较残差平方和,其中越低意味着拟合效果越好。对于末尾注释中的数据,P 的残差平方和最小。
s <- stack(random.df); s
colSums((s$values - dummy.df[s$ind, ])^2)
## S P R
## 2.268878 1.765409 3.389199
dummy.df <- data.frame(S = c(0.8, 0.4, 0.1),
P = c(0.4, 0.5, 0.3),
R = c(0.1, 0.35, 0.9),
row.names = LETTERS[1:3])
set.seed(123)
random.df <- as.data.frame(matrix(runif(5*3),
nrow = 5,
ncol = 3,
dimnames = list(1:5, LETTERS[1:3])))