R公式“y~1”中的“1”是什么意思?

机器算法验证 r 回归
2022-03-15 22:36:55

我正在尝试理解以下讨论中编写的代码(请参阅链接):

library(boot) 
library(reshape) 
dataset <- data.frame(Person = c(rep("A", 20), rep("B", 10)), Success = c(rbinom(20, 1, 0.25), rbinom(10, 1, 0.75))) 
Aggregated <- cast(Person ~ ., data = dataset, value = "Success", fun = list(mean, length)) 

m0 <- glm(Success ~ 1, data = dataset, family = binomial) 
m1 <- glm(mean ~ 1, data = Aggregated, family = binomial, weights = length) 

inv.logit(coef(m0)) 
inv.logit(coef(m1)) 

1对公式中的Success ~ 1含义感到困惑。在公式的文档中,公式中有特殊符号的描述,.但没有 的描述1,除了y ~ x - 1表示通过原点的线。

2个回答

在大多数 R 回归包中,意味着“y ~ 1适合截距”。

所以在线性回归的情况下,这与mean(y). 对于 glm,它取决于链接功能。

此外,y ~ x - 1表示“在 y 上回归 x,但忽略截距”。

这意味着仅拦截模型。您可以使用model.matrix来查找。尝试以下代码:

library(boot) 
library(reshape) 
dataset <- data.frame(Person = c(rep("A", 20), rep("B", 10)), Success = c(rbinom(20, 1, 0.25), rbinom(10, 1, 0.75))) 
Aggregated <- cast(Person ~ ., data = dataset, value = "Success", fun = list(mean, length)) 

m0 <- glm(Success ~ 1, data = dataset, family = binomial) 
model.matrix(Success ~ 1, data = dataset)