如何使用带有FrF2函数的predict包或使用broom包预测R中中心点的阶乘实验中的值?
我的代码:
library(FrF2)
plan.person = FrF2(nfactors = 5, resolution = 5, replications = 2,
ncenter = 1, randomize = FALSE,
factor.names = list(
A = c(8, 5),
B = c(70, 30),
C = c(0.5, 0),
D = c(1000, 700),
E = c(70, 10)))
resp <- c(84.55, 66.34, -1, 69.18, 73.01, 64.52, 0.73, 47.61, 68.18, 59.87,
26, 72.57, 78.08, 73.81, 26, 59.38, 71.41, 88.64, 64.92, 4, 68.81,
80, 69.66, -1.36, 54.50, 79.24, 78.53, -1, 72.63, 89.97, 87.98,
-11, 65.68, 82.46)
newplan <- add.response(design = plan.person, response = resp)
model <- lm(newplan, use.center = T)
# summary(model)
d <- within(newplan, {
A <- as.numeric(as.character(A))
B <- as.numeric(as.character(B))
C <- as.numeric(as.character(C))
D <- as.numeric(as.character(D))
E <- as.numeric(as.character(E)) })
A = seq(5, 8, 1)
B = seq(30, 70, length.out = length(A))
C = seq(0, 0.5, length.out = length(A))
D = seq(700, 1000, length.out = length(A))
E = seq(10, 70, length.out = length(A))
data <- expand.grid(A = A, B = B,
C = C, D = D,
E = E)
dados$p <- predict(model, newdata=data)由于中心点,将出现以下消息。
model.frame.default中的错误(术语、新数据、na.action = na.action、xlev =对象$xlevel):变量的基本长度不同(在“中心”中找到)
发布于 2018-06-29 21:06:15
如果删除中心值,则可以在model <- lm(newplan, use.center = T)之后这样做:
1-过滤p值< 0.05
coe <- broom::tidy(model) %>%
slice(-7) %>% #remove center
filter(p.value < 0.05)
m_beta <- coe$estimate2-建立一个网格:
A = seq(5, 8, 0.5)
B = seq(30, 70, length.out = length(A))
exp <- expand.grid(A = A, B = B) %>%
mutate(bo = as.numeric(1)) %>%
mutate(ult = A*B) %>%
select(bo, A, B, ult) %>%
as.matrix()3:做一个回归:
reg <- t(m_beta %*% t(exp))
exp <- cbind(exp, reg) %>%
as.data.frame() %>%
rename(reg = V5)但我相信这只是解决了计算问题或简化了它。我认为线性回归也应该重新进行。但是有了这段代码,您就可以了解并查看存在哪些其他错误。
发布于 2018-06-28 14:01:44
带中心点的两级实验可以检测二次效应,但不适合。(https://www.itl.nist.gov/div898/handbook/pri/section3/pri336.htm)
也就是说,R不能预测这些值,因为您需要对曲线的外观进行额外的假设,以预测点,而不是在设计点。
注意,在计算上,您可以通过添加一个center项来使软件工作。这个错误是因为这个术语在回归中,而不是在数据集中。您可以在data$center <- FALSE中添加一个点(因为data中没有一个点位于中心),但是这不会做正确的事情,因为在预测非中心点时,它不会考虑到潜在的曲率,它只是预测中心有一个凸起点的扭曲平面(即线性与相互作用)。
当然,它也等同于用use.center=FALSE来拟合模型,因为中心点不影响其他点的拟合。
https://stackoverflow.com/questions/51071918
复制相似问题