【发布时间】:2016-04-29 03:01:12
【问题描述】:
我有一个逻辑回归来估计巢成功,你会在这个链接中找到一些数据:
https://www.dropbox.com/s/okp2iudnace6fha/data1.csv?dl=0
我所有的解释变量都是连续的以获得线性趋势。我想分析一下巢生存的季节性变化是否会随着时间的推移而发生变化:
年(如 0,1,2,3...)
产卵日期(LD)
筑巢时代
这是我的模型:
glm(survive~LD+yr+yr^2+LD:yr+LD:yr^2+NestAge,family=binomial(link=logexp(data1$exposure)), data=data1)
这是我正在使用的链接曝光:
library(MASS)
logexp <- function(exposure = 1)
{
linkfun <- function(mu) qlogis(mu^(1/exposure))
## FIXME: is there some trick we can play here to allow
## evaluation in the context of the 'data' argument?
linkinv <- function(eta) plogis(eta)^exposure
mu.eta <- function(eta) exposure * plogis(eta)^(exposure-1) *
.Call(stats:::C_logit_mu_eta, eta, PACKAGE = "stats")
valideta <- function(eta) TRUE
link <- paste("logexp(", deparse(substitute(exposure)), ")",
sep="")
structure(list(linkfun = linkfun, linkinv = linkinv,
mu.eta = mu.eta, valideta = valideta,
name = link),
class = "link-glm")
}
为了获得系数,我创建了一个循环来提取但它不起作用。
a<-as.matrix(coef(model))
intercept<-a[1,]
slope<-a[2,]
for (i in 1:6) {
i<-as.numeric(i)
sub<-subset(data1,data1$yr==i )
g<- intercept + slope*sub$yr[i]
dsr <-exp(g)/ (1+ exp(g))
}
你能帮我解决它吗?提前谢谢你。
【问题讨论】:
-
行中的 yra 指的是什么:
sub<-subset(data1,data1$yra==i )?它不是 data1 上的变量之一。 -
当数据集中的变量都不包含 26 个因子水平时,为什么还要循环 i 26 次。与
sapply(names(data1), function(x)table(data1[,x]) %>% length)核对,它给出了年、巢、年、曝光、生存、命运、LD 和 NestAge 的级别,长度分别为 6、699、6、30、2、2、33、33。 -
这是真的!对不起,谢谢你告诉我,我已经编辑了我的代码。它是 26,因为它是完整的数据集(我想将数据示例保存在我的 Dropbox 中)。
标签: r for-loop glm logistic-regression coefficients