在 Poisson GLM R 中更改 Y 截距
Change Y intercept in Poisson GLM R
背景:我有以下数据运行一个glm
函数:
location = c("DH", "Bos", "Beth")
count = c(166, 57, 38)
#make into df
df = data.frame(location, count)
#poisson
summary(glm(count ~ location, family=poisson))
输出:
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.6376 0.1622 22.424 < 2e-16 ***
locationBos 0.4055 0.2094 1.936 0.0529 .
locationDH 1.4744 0.1798 8.199 2.43e-16 ***
问题: 我想更改 (Intercept)
以便我可以获得相对于 Bos
的所有值
我看了Change reference group using glm with binomial family and How to force R to use a specified factor level as reference in a regression?。我尝试了那里的方法,但它没有用,我不确定为什么。
尝试过:
df1 <- within(df, location <- relevel(location, ref = 1))
#poisson
summary(glm(count ~ location, family=poisson, data = df1))
期望输出:
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) ...
locationBeth ...
locationDH ...
问题:如何解决这个问题?
我认为你的问题是你正在修改数据框,但在你的模型中你没有使用数据框。在模型中使用 data
参数来使用数据框中的数据。
location = c("DH", "Bos", "Beth")
count = c(166, 57, 38)
# make into df
df = data.frame(location, count)
请注意 location
本身就是一个 character
向量。 data.frame()
默认情况下在数据框中将其强制为 factor
。这样转换之后,我们就可以用relevel
来指定参考水平了。
df$location = relevel(df$location, ref = "Bos") # set Bos as reference
summary(glm(count ~ location, family=poisson, data = df))
# Call:
# glm(formula = count ~ location, family = poisson, data = df)
# ...
# Coefficients:
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) 4.0431 0.1325 30.524 < 2e-16 ***
# locationBeth -0.4055 0.2094 -1.936 0.0529 .
# locationDH 1.0689 0.1535 6.963 3.33e-12 ***
# ...
背景:我有以下数据运行一个glm
函数:
location = c("DH", "Bos", "Beth")
count = c(166, 57, 38)
#make into df
df = data.frame(location, count)
#poisson
summary(glm(count ~ location, family=poisson))
输出:
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.6376 0.1622 22.424 < 2e-16 ***
locationBos 0.4055 0.2094 1.936 0.0529 .
locationDH 1.4744 0.1798 8.199 2.43e-16 ***
问题: 我想更改 (Intercept)
以便我可以获得相对于 Bos
我看了Change reference group using glm with binomial family and How to force R to use a specified factor level as reference in a regression?。我尝试了那里的方法,但它没有用,我不确定为什么。
尝试过:
df1 <- within(df, location <- relevel(location, ref = 1))
#poisson
summary(glm(count ~ location, family=poisson, data = df1))
期望输出:
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) ...
locationBeth ...
locationDH ...
问题:如何解决这个问题?
我认为你的问题是你正在修改数据框,但在你的模型中你没有使用数据框。在模型中使用 data
参数来使用数据框中的数据。
location = c("DH", "Bos", "Beth")
count = c(166, 57, 38)
# make into df
df = data.frame(location, count)
请注意 location
本身就是一个 character
向量。 data.frame()
默认情况下在数据框中将其强制为 factor
。这样转换之后,我们就可以用relevel
来指定参考水平了。
df$location = relevel(df$location, ref = "Bos") # set Bos as reference
summary(glm(count ~ location, family=poisson, data = df))
# Call:
# glm(formula = count ~ location, family = poisson, data = df)
# ...
# Coefficients:
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) 4.0431 0.1325 30.524 < 2e-16 ***
# locationBeth -0.4055 0.2094 -1.936 0.0529 .
# locationDH 1.0689 0.1535 6.963 3.33e-12 ***
# ...