我使用的是R中的momentuHMM包,它使用隐马尔可夫模型分析数据。但是,系数估计是使用线性回归计算的。
如果我想使用Hour (格式: 24小时)作为给定Y因变量的预测变量,我应该指定Y ~ cosinor(Hour, period = 24)。余弦函数自动合并sin()和cos()以及它们之间的交互。
我想知道如果我使用变量cosinor(),我应该在前面提到的函数sun_altitude的period中指定哪个值,值的范围在-1.3 (夜间)到1.2 (中午)之间。我应该在period?2.5中指明什么?我之所以怀疑,是因为Hour和sun_altitude的不同之处在于,对于Hour,在值23之后,下一个值是00,因此此预测值的最大值和最小值更接近,例如,00和12。但是,这与sun_altitude不同,因为0的值和1.2的值比1.2和-1.2之间的值更接近。也就是说,对于sun_altitude,变量的最大值和最小值之间的距离并不比最小值和中值之间的距离更近。
在指定period时是否应该考虑这一点
下面我展示了一些使用sun_altitudes创建数据帧的代码,以防有人想看一下:
df <- seq(as.POSIXct("2016-07-29 00:00:00", format="%Y-%m-%d %H:%M:%S",tz="UTC"), as.POSIXct("2016-07-31 23:45:00", format="%Y-%m-%d %H:%M:%S",tz="UTC"), "15 min")
df<- as.data.frame(df)
colnames(df)<- c("Round_datetime15")
df[2]<-getSunlightPosition(date=df$Round_datetime15, lat= 37.6, lon=-0.65, keep = ("altitude"))[4]
range(df$altitude)注:太阳高度的最大值和最小值不是在一天内达到的。太阳的最大值在夏天,最小值在冬天。
发布于 2021-02-17 17:09:02
我没有足够的声誉来发表评论,所以我把这篇文章作为一个答案。
我不清楚为什么你会在这种情况下包括太阳高度的周期性影响。正如您在一天中提到的时间,当两端需要匹配时,应该考虑周期性影响(例如,一天中的时间在23:59和00:00的影响应该非常相似)。从您所写的内容来看,太阳高度的影响不应该在-1.3和1.2之间匹配,所以我认为您不需要cosinor函数。
所以,我认为你可以在你的公式中包含协变量,也就是~ sun_altitude。
https://stackoverflow.com/questions/64238447
复制相似问题