Анализ ковариации переменных во времени в R - PullRequest
0 голосов
/ 10 мая 2018

Я использую Rstudio для анализа данных. И - зачем еще это публиковать - я застреваю!

Данные представляют собой временные ряды эволюции сообщества и их характеристик с течением времени. Например, n_members (размер) может увеличиваться со временем.

Каждая комбинация переменных 'randomseed' и 'lhsExperimentNumber' равна 1 наблюдению. Всего насчитывается 80000 наблюдений. Каждое наблюдение имеет временной ряд от 1 (месяц) до 204 (месяц). Это время характеризуется переменной X.run.number

Что я хочу: Смотрите ковариацию зависимых и независимых переменных с течением времени. Например: я хотел бы увидеть, как n_members (size) эволюционирует со временем при различных обстоятельствах (например, exit_window). Обычно я использую dplyr и ggplot2, и я хотел бы сделать несколько увлекательных изображений в ggplot.

Моя проблема : - Я только начинающий в R, поэтому мне немного сложно увидеть правильную стратегию здесь. - Было бы немного проще, если бы у меня было только одно наблюдение, которое эволюционирует со временем, но теперь у меня есть 80 000 наблюдений, каждое из которых независимо развивается со временем. Так что я действительно не знаю, как обрабатывать данные для создания разумных графиков.

Как бы вы, ребята, взялись за это? Может быть, вы можете помочь мне с некоторыми советами (это было бы так здорово!)

Я использовал 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")

EDIT:

Прямо сейчас у меня есть простой код ggplot:

ggplot(dat) +
  geom_line(aes(x=month, y=trust_coop_total))

Это дает график:

Вы видите, что это не линейный график. Это скорее график с кучей вертикальных линий. Я хотел бы расшифровать тенденции для каждого отдельного образца. Каждый образец, как упоминалось выше, представляет собой комбинацию lhsExperimentnumber и X.run.number. Примеров так много, что линейный график будет ошеломляющим, но это может быть хорошо в сочетании с командой alpha = 1/10 geom_jitter. Однако geom_jitter игнорирует тренд в самой выборке.

Что я должен сделать, чтобы получить хороший график тренда?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...