用for循环从Logistic回归中提取系数

时间:2016-04-29 03:01:12

标签: r for-loop glm logistic-regression coefficients

我有一个逻辑回归来估计嵌套成功,你会在这个链接中找到一些数据:

https://www.dropbox.com/s/okp2iudnace6fha/data1.csv?dl=0

我所有的解释变量都是连续的,以获得线性趋势。我想分析一下巢生存的季节性变化是否随时间发生变化:

年(如0,1,2,3 ......)

产蛋日期(LD)

NestAge

这是我的模特:

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))
}
你能帮我解决一下吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

现在有效:

dsr=0
for (i in 1:6) { 
  i<-as.numeric(i)
  sub<-subset(data1,data1$yr==i )
  g<- intercept + slope*sub$yr[i]
  dsr [i]<-plogis(g)
}