r - 在 R 中分析变量随时间的协变
问题描述
我正在使用 Rstudio 来分析数据。而且 - 我为什么要发布这个 - 我被卡住了!
数据是社区及其特征随时间演变的时间序列。例如,n_members(大小)会随着时间的推移而增加。
变量“randomseed”和“lhsExperimentNumber”的每个组合都是 1 个观察值。总共有 80,000 个观测值。每个观察都有一个从 1(月)到 204(月)的时间序列。这个时间的特点是变量 X.run.number
我想要什么: 查看随时间变化的因变量和自变量的协变。例如:我想看看在不同的情况下(例如,exit_window),n_members(大小)如何随时间演变。我通常使用 dplyr 和 ggplot2,我想在 ggplot 中制作一些迷人的图像。
我的问题:-我只是 R 的初学者,所以在这里看到正确的策略对我来说有点棘手,每个都随着时间独立发展。所以我真的不知道如何处理数据来制作合理的图表。
你们将如何解决这个问题?也许你可以帮我一些建议(那太好了!)
我使用 dput 重现了我的数据集的前 10 个观察结果:
library(ggplot2)
library(dplyr)
coop_dat <- structure(list(X.run.number. = c(2L, 3L, 4L, 1L, 2L, 3L, 4L,
1L, 3L, 3L), rewire_prop = c(0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
0.1, 0.1, 0.1), prior_trust_std = c(0.1, 0.1, 0.1, 0.1, 0.1,
0.1, 0.1, 0.1, 0.1, 0.1), max_trust = c(2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L), maxCR_trust = c(0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
0.2, 0.2, 0.2, 0.2), Ostrom. = structure(c(2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L), .Label = c("false", "true"), class = "factor"),
social_network = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = "\"small-world\"", class = "factor"),
external_ROI_influence = structure(c(2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L), .Label = c("false", "true"), class = "factor"),
randomseed = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), lhsExperimentNumber = c(1L,
2L, 3L, 0L, 1L, 2L, 3L, 0L, 2L, 2L), X.step. = c(0L, 0L,
0L, 0L, 1L, 1L, 1L, 1L, 2L, 3L), size_start_cooperative = c(12L,
4L, 20L, 17L, 12L, 4L, 20L, 17L, 4L, 4L), degree_prior = c(7L,
21L, 40L, 15L, 7L, 21L, 40L, 15L, 21L, 21L), degree_coop = c(17L,
47L, 20L, 31L, 17L, 47L, 20L, 31L, 47L, 47L), prior_trust_average = c(0.40574414878618,
0.631650829650462, 0.369752783104777, 0.585182260912843,
0.40574414878618, 0.631650829650462, 0.369752783104777, 0.585182260912843,
0.631650829650462, 0.631650829650462), number_of_meetings = c(10L,
5L, 2L, 2L, 10L, 5L, 2L, 2L, 5L, 5L), n_interactions = c(20L,
3L, 9L, 19L, 20L, 3L, 9L, 19L, 3L, 3L), exit_window = c(5L,
1L, 3L, 4L, 5L, 1L, 3L, 4L, 1L, 1L), info_peer_behavior = c(0.396114811487496,
0.627111892865505, 0.148686024846975, 0.281594149058219,
0.396114811487496, 0.627111892865505, 0.148686024846975,
0.281594149058219, 0.627111892865505, 0.627111892865505),
memory = c(8L, 11L, 20L, 1L, 8L, 11L, 20L, 1L, 11L, 11L),
n_shares_total_sum = c(0L, 0L, 0L, 0L, 21L, 13L, 32L, 31L,
13L, 13L), n_shares_total_mean = c(0, 0, 0, 0, 1.75, 3.25,
1.6, 1.82352941176471, 3.25, 3.25), members_at_meeting = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L), trust_coop_total = c(0,
0, 0, 0, 0.0457418505048186, 0.0563109517340759, 0.0349050771003757,
0.0587220121136852, 0.0563109517340759, 0.0563109517340759
), rep_total = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ROI = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), current_strategy = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), price = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), REfocus = c(0, 0, 0, 0, 0, 0,
0, 0, 0, 0), endpoint = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), HG_membertypes = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
n_members = c(0L, 0L, 0L, 0L, 12L, 4L, 20L, 17L, 4L, 4L),
n_ids = c(0L, 0L, 0L, 0L, 12L, 4L, 20L, 17L, 4L, 4L), n_prods = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), n_cons = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), n_members_exit = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("X.run.number.",
"rewire_prop", "prior_trust_std", "max_trust", "maxCR_trust",
"Ostrom.", "social_network", "external_ROI_influence", "randomseed",
"lhsExperimentNumber", "X.step.", "size_start_cooperative", "degree_prior",
"degree_coop", "prior_trust_average", "number_of_meetings", "n_interactions",
"exit_window", "info_peer_behavior", "memory", "n_shares_total_sum",
"n_shares_total_mean", "members_at_meeting", "trust_coop_total",
"rep_total", "ROI", "current_strategy", "price", "REfocus", "endpoint",
"HG_membertypes", "n_members", "n_ids", "n_prods", "n_cons",
"n_members_exit"), row.names = c(NA, 10L), class = "data.frame")
编辑:
现在我有这个简单的ggplot代码:
ggplot(dat) +
geom_line(aes(x=month, y=trust_coop_total))
这会产生这个图表:
你可以看到这并不是一个真正的折线图。它更像是一个带有一堆垂直线的图表。我想要破译每个样本的趋势。如上所述,每个样本都是 lhsExperimentnumber 和 X.run.number 的组合。样本太多以至于折线图会让人不知所措,但结合 geom_jitter 的 alpha=1/10 命令可能会很好。但是,geom_jitter 忽略了样本本身的趋势。
我应该怎么做才能得到一个好的趋势图?
解决方案
推荐阅读
- javascript - 为什么文档的就绪状态会从“完成”变为“正在加载”?
- android - Flutter - 过滤列表的结果集给出空值(是错误吗?)
- swiftui - 如何保存我的按钮已经在 SwiftUI 中被点击
- java - 使用适用于 Java 的 Azure Monitor OpenTelemetry Exporter 客户端库自动导出 Spring Cloud Sleuth
- javascript - 使用 React.memo 防止重新渲染
- c# - 有没有办法在实体上的所有插入/删除结束时触发存储过程
- android - 您如何更改 Firestore 中地图数组中的字段?
- javascript - Lodash:有没有办法用 lodash 将单词保持重音大写?
- sql - 在 cakephp 3 查询中将 where 子句添加到计算字段
- bash - 默认情况下如何在git中设置全局可执行的bash文件?