gpt4 book ai didi

r - 回归中的 POSIXct 作为连续变量?

转载 作者:行者123 更新时间:2023-12-02 00:01:51 24 4
gpt4 key购买 nike

我正在尝试将一天中的时间作为连续预测变量和二元 TRUE/FALSE 结果进行回归。

我的时间变量如下所示:

> class(sched_SMS_time)
[1] "POSIXct" "POSIXt"
> head(sched_SMS_time)
[1] NA "2014-01-01 11:15:00 EST" "2014-01-01 11:30:00 EST"

我的问题是 R 一直在分类意义上处理它(即作为一个因素),并把我的回归模型扔掉了。

我能想到(并找到了 elsewhere on the stack exchange site )的唯一方法似乎是将 POSIXct 对象转换为对应的十进制数字,即

as.numeric(str_sub(gsub(":", ".", bob_os_ten$sched_SMS),1,-4))
head(sched_SMS_time_conv)
[1] NA 11.15 11.30 11.45 12.15 13.00

将它重新插入我希望运行的模型中,这似乎给出了合理的结果......

但是,我意识到这会丢失更细粒度的信息。 (即,无法区分星期一的 9 点和星期二的 9 点)。

因此我的问题是:

1) 是否有一种方法允许 POSIXct 对象在连续意义上直接用于回归(包括基本内容,以及用于多级数据的 lme4)

2) 如果答案为“否”,上述解决方法是否是最佳替代方案?

最佳答案

其实,一个POSIXct次的向量(假设它叫tt)可以直接使用,它会被当作as.numeric(tt)来处理,也就是说,就好像它是自格林威治标准时间 1970-01-01 00:00:00 以来的秒数。这是一个例子:

# set up inputs
set.seed(123)
n <- 100 # must be even as n/2 is used below
y <- rbinom(n, 1, .5) == 1
tt <- seq(as.POSIXct("2004-01-01"), length = n, by = "day")

# run a glm regression
glm(y ~ tt, family = binomial)

# and an lme4 example
library(lme4)
g <- gl(2, n/2)
glmer(y ~ tt + (1 | g), family = binomial)

添加:新答案。正如@jlhoward 所指出的那样,将线性回归更改为逻辑回归。添加了 lme4 示例。

关于r - 回归中的 POSIXct 作为连续变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20865224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com