【问题标题】:Circular-linear regression with covariates in RR中带有协变量的循环线性回归
【发布时间】:2014-05-08 17:03:14
【问题描述】:

我有数据显示动物何时来到调查站。 example csv file here前几行数据是这样的:

Site_ID   DateTime            HourOfDay MinTemp LunarPhase       Habitat
F1        6/12/2013 14:01:00  14             -1       0           river
F1        6/12/2013 14:23:00  14             -1       0           river
F2        6/13/2013 1:21:00   1               3       1           upland
F2        6/14/2013 1:33:00   1               4       2           upland
F3        6/14/2013 1:48:00   1               4       2           river
F3        6/15/2013 11:08:00  11              0       0           river

我想在 R 中执行循环线性回归以确定峰值活动时间。因变量可以是 DateTime 或 HourOfDay,以较容易者为准。我想将协变量 Site_ID(随机效应)以及 MinTemp、LunarPhase 和 Habitat 合并到一个混合效应模型中。

我尝试过使用程序循环的lm.circular函数,代码如下:

data<-read.csv("StackOverflowExampleData.csv")
data$DateTime<-as.POSIXct(as.character(data$DateTime), format = "%m/%d/%Y %H:%M:%S") 
data$LunarPhase<-as.factor(data$LunarPhase)
str(data)

library(circular)

y<-data$DateTime
y<-circular(y, units ="hours",template = "clock24",rotation = "clock")
x<-data[,c(1,4,5,6)]
lm.circular(y=y, x=x, init=c(1,1,1,1), type='c-l', verbose=TRUE)

我不断收到错误:

Error in Ops.POSIXt(x, 12) : '/' not defined for "POSIXt" objects

显然这是一个已知的错误,但我被this threat about it 弄糊涂了,无法确定合适的解决方法。有什么建议吗?

此外,我对这些数据的最终目标是运行 glm 的循环线性版本,然后使用 AIC 或其他信息理论方法对多个模型进行测试。我正在寻找的模型将是这样的圆形线性版本:

glmer(HourOfDay~MinTemp+LunarPhase+Habitat+(1|Site_ID),family=binomial,data=data)

也许这是循环包的不恰当应用。如果是这样,我对模型和/或图形的其他建议持开放态度,这些建议将使用数据和协变量调查峰值活动。

注意:我确实搜索了相关讨论并找到了this somewhat relevant thread,但从未得到答复,没有在R中请求解决方案,并且属于不同的范围。

【问题讨论】:

  • 特别是如果你想为这个模型添加一个随机效应项,我认为你必须使用类似AD Model Builder 的东西,可能通过 R2admb 包......

标签: r regression


【解决方案1】:

具体问题是conversion.circular引起的。在那里,POSIXlt 对象除以 12。这是一个具有未定义结果的操作:

> as.POSIXlt('2005-07-16') / 2
Error in Ops.POSIXt(as.POSIXlt("2005-07-16"), 2) : 
  '/' not defined for "POSIXt" objects

因此,您似乎不能将此类的数据用作circular 包的输入。我在示例中找不到任何提及 POSIXlt 数据的内容。也许您需要将时间戳简单地指定为数字,而不是 POSIXlt 对象。

【讨论】:

    猜你喜欢
    • 2012-10-29
    • 2023-03-11
    • 2021-07-02
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多