【发布时间】:2015-11-21 20:44:48
【问题描述】:
我有一个长格式的数据框,我正在对它执行泊松回归。
'data.frame': 20000 obs. of 6 variables:
$ cal_y : int 2008 2008 2008 2008 2008 ...
$ age_y : int 0 0 0 0 0 0 0 0 0 0 ...
$ gender : Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ...
$ cal_m : int 9 7 8 1 6 11 2 10 3 4 ...
$ n_outcome: int 276 187 164 352 229 250 332 267 348 291 ...
$ n_atrisk : int 4645 4645 4645 4645 4645 4645 4645 4645 4645 4645 ...
glm(n_outcome ~ factor(cal_y) + factor(cal_m) + gender + offset(log(n_atrisk)),
data = df, family =poisson)
我想知道每个 age_y 的结果 n_outcome 的曝光 cal_y 系数,并且最好能够将这些信息汇总到一个 df 中。
我已经尝试了几个错误的 lapply() 和 tapply() 版本。目前,我最好的解决方案是手动完成:
glm(n_outcome ~ factor(cal_y) + factor(cal_m) + gender + offset(log(n_atrisk)),
data = filter(df, age_y >= 0, age_y <1), family =poisson)
但这既乏味(范围(age_y)= 0 105),结果也不容易合并到新的df中,我不确定在执行回归之前对数据进行子集化在统计上是否正确。
感谢任何指针、cmets 或帮助。
【问题讨论】:
-
您究竟为什么要进行子集回归而不是单次回归?
-
@Alex 我正在尝试确定曝光对计数结果 (n_outcome) 的影响,在本例中为日历年 (cal_y)。我都有理由相信,效果会因年龄(age_y)而有很大差异,而且这种变化的程度对于我的研究方向非常有趣。更准确地说,我想知道每个age_y 的相对风险。如果有更好的方法,我非常愿意接受建议
-
是的,但是使用 subsets 的原因是什么? IE- 你为什么不把
age_y作为一个自变量呢? -
@Alex 如果我将 age_y 作为自变量包含在内,系数输出描述了 age_y = (1, 2, 3, ... , 100) 与 age_y = 0 相比的 n_outcome 差异。我会想知道每个age_y 的cal_y 的n_outcome 差异系数。实际上,我会将 age_y 聚合到 age_brackets 中,但为简单起见,我忽略了在问题词干中提及这一点。
-
@Alex 这是一种有缺陷的思维方式吗?