gpt4 book ai didi

r - R中每个ID的互相关(CCF)/按ID

转载 作者:行者123 更新时间:2023-12-04 10:53:30 24 4
gpt4 key购买 nike

我对 R 很陌生。我的数据看起来(简化)如下:

ID <- c(1,1,1,1,2,2,3,3,3,3,4,4,4)
Affect <- c(0.8, 0.5, NA, 0.8, 0.2, 0.1, 0.7, 1.1, 0.9, 0.5, 0.3, NA, 0.9)
Paranoia <- c(0.9, 0.6, 0.4, 0.2, 0.1, NA, 0.3, 0.1, 0.9, 1.5, 0.4, 0.1, 0.6)
df <- cbind(ID, Affect, Paranoia)

我想要计算 R 中的互相关以找出影响是否先于偏执或相反。
我怎样才能做到这一点?我尝试了几种方法,但从未成功。
先感谢您!

最佳答案

我们可以删除具有 all 的“ID” 'Affect' 或 'Paranoia' 作为 NA ,然后 replace剩余的 NA 为 0 ( replace_na ) 并应用 ccf

library(tseries)
library(dplyr)
library(tidyr)
out <- df %>%
group_by(ID) %>%
filter(!(all(is.na(Affect))|all(is.na(Paranoia)))) %>%
mutate_at(vars(Affect, Paranoia), replace_na, 0) %>%
summarise(ccfout = list(ccf(Affect, Paranoia)))


out$ccfout[[1]]
#
#Autocorrelations of series ‘X’, by lag

# -3 -2 -1 0 1 2 3
#-0.264 -0.078 0.575 0.229 -0.246 -0.521 0.305
out$ccfout[[3]]

#Autocorrelations of series ‘X’, by lag

# -3 -2 -1 0 1 2 3
#-0.163 0.449 0.408 -0.735 -0.490 0.286 0.245

或使用 group_split/map
library(purrr)
df %>%
group_split(ID) %>%
map(~ .x %>%
mutate_at(vars(Affect, Paranoia), replace_na, 0) %>%
{ccf(.$Affect, .$Paranoia)})
#[[1]]

#Autocorrelations of series ‘X’, by lag

# -3 -2 -1 0 1 2 3
#-0.264 -0.078 0.575 0.229 -0.246 -0.521 0.305

#[[2]]

#Autocorrelations of series ‘X’, by lag

#0
#1

#[[3]]

#Autocorrelations of series ‘X’, by lag

# -3 -2 -1 0 1 2 3
#-0.163 0.449 0.408 -0.735 -0.490 0.286 0.245

#[[4]]

#Autocorrelations of series ‘X’, by lag

# -1 0 1
#-0.289 0.954 -0.636

数据
df <- data.frame(ID, Affect, Paranoia)

关于r - R中每个ID的互相关(CCF)/按ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59346326/

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