Kas*_*sen 1 statistics regression r linear-regression
我正在尝试使用lm和glm函数在R中进行回归.
我的因变量是基于在给定时间段内非事件的事件比例的logit变换数据.所以我的因变量是连续的,而我的自变量是因子变量或虚拟变量.
我有两个可以取值的自变量
- 年份i到年份m,我的YEAR变量
- 月j到月n,我的MONTH变量
问题是每当我运行我的模型作为摘要时,结果4月(月份指数1)和1998年(年份指数1)不在结果范围内......如果我改变4月份让我们说"foo_bar",8月将是失踪...
请帮忙!这令我感到沮丧,我根本不知道如何寻找问题的解决方案.
如果R要为因子中的每个级别创建一个虚拟变量,则得到的变量集将是线性相关的(假设还有一个截距项).因此,选择一个因子水平作为基线并且没有为其生成虚拟.
为了说明这一点,让我们考虑一个玩具示例:
> data <- data.frame(y=c(2, 3, 5, 7, 11, 25), f=as.factor(c('a', 'a', 'b', 'b', 'c', 'c')))
> summary(lm(y ~ f, data))
Call:
lm(formula = y ~ f, data = data)
Residuals:
1 2 3 4 5 6
-0.5 0.5 -1.0 1.0 -7.0 7.0
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.500 4.093 0.611 0.5845
fb 3.500 5.788 0.605 0.5880
fc 15.500 5.788 2.678 0.0752 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 5.788 on 3 degrees of freedom
Multiple R-squared: 0.7245, Adjusted R-squared: 0.5409
F-statistic: 3.945 on 2 and 3 DF, p-value: 0.1446
Run Code Online (Sandbox Code Playgroud)
如您所见,有三个系数(与因子中的级别数相同).这里,a已被选作基准,因此(Intercept)指的是其中数据的子集f是a.b和c(fb和fc)的系数是基线截距和两个其他因子水平的截距之间的差异.因此截距为bis 6(2.500+3.500),截距为cis 19(2.500+15.500).
如果您不喜欢自动选择,您可以选择另一个级别作为基线:如何强制R在回归中使用指定的因子级别作为参考?
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |