2024-05-07 23:40:38 +00:00
|
|
|
library(tidyverse)
|
|
|
|
library(plyr)
|
|
|
|
library(stringr)
|
|
|
|
try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path)))
|
|
|
|
#load in data
|
|
|
|
contrib_df <- read_csv("../final_data/deb_contrib_pop_change.csv")
|
|
|
|
readme_df <- read_csv("../final_data/deb_readme_pop_change.csv")
|
|
|
|
#some expansion needs to happens for each project
|
|
|
|
expand_timeseries <- function(project_row) {
|
|
|
|
longer <- project_row |>
|
|
|
|
pivot_longer(cols = ends_with("new"),
|
|
|
|
names_to = "window",
|
|
|
|
values_to = "count") |>
|
|
|
|
unnest(count) |>
|
|
|
|
mutate(after_doc = as.numeric(str_detect(window, "after"))) |>
|
|
|
|
mutate(is_collab = as.numeric(str_detect(window, "collab")))
|
|
|
|
return(longer)
|
|
|
|
}
|
|
|
|
expanded_readme_data <- expand_timeseries(readme_df[1,])
|
|
|
|
for (i in 2:nrow(readme_df)){
|
|
|
|
expanded_readme_data <- rbind(expanded_readme_data, expand_timeseries(readme_df[i,]))
|
|
|
|
}
|
|
|
|
expanded_contrib_data <- expand_timeseries(contrib_df[1,])
|
|
|
|
for (i in 2:nrow(contrib_df)){
|
|
|
|
expanded_contrib_data <- rbind(expanded_contrib_data, expand_timeseries(contrib_df[i,]))
|
|
|
|
}
|
|
|
|
expanded_readme_data$log1pcount <- log1p(expanded_readme_data$count)
|
|
|
|
expanded_contrib_data$log1pcount <- log1p(expanded_contrib_data$count)
|
|
|
|
expanded_readme_data$logcount <- log(expanded_readme_data$count)
|
|
|
|
expanded_contrib_data$logcount <- log(expanded_contrib_data$count)
|
|
|
|
#breaking out the types of population counts
|
|
|
|
collab_pop_readme <- expanded_readme_data[which(expanded_readme_data$is_collab == 1),]
|
|
|
|
contrib_pop_readme <- expanded_readme_data[which(expanded_readme_data$is_collab == 0),]
|
|
|
|
collab_pop_contrib <- expanded_contrib_data[which(expanded_contrib_data$is_collab == 1),]
|
|
|
|
contrib_pop_contrib <- expanded_contrib_data[which(expanded_contrib_data$is_collab == 0),]
|
|
|
|
#import models
|
|
|
|
library(lme4)
|
|
|
|
library(optimx)
|
2024-06-24 03:10:17 +00:00
|
|
|
library(MASS)
|
|
|
|
simple_collab_readme_model <- glm.nb(count ~ as.factor(after_doc), data=collab_pop_readme)
|
|
|
|
summary(simple_collab_readme_model)
|
|
|
|
qqnorm(residuals(simple_collab_readme_model))
|
|
|
|
#
|
|
|
|
cor.test(collab_pop_readme$count, collab_pop_readme$after_doc)
|
|
|
|
# I don't think MLM is the right one
|
|
|
|
collab_readme_model <- glmer.nb(log1pcount ~ as.factor(after_doc) + (after_doc| upstream_vcs_link), data=collab_pop_readme)
|
2024-05-07 23:40:38 +00:00
|
|
|
summary(collab_readme_model)
|
2024-06-24 03:10:17 +00:00
|
|
|
saveRDS(collab_readme_model, "final_models/0623_pop_rm_collab.rda")
|
2024-05-10 20:12:32 +00:00
|
|
|
crm_residuals <- residuals(collab_readme_model)
|
|
|
|
qqnorm(crm_residuals)
|
|
|
|
contrib_readme_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=contrib_pop_readme)
|
2024-05-07 23:40:38 +00:00
|
|
|
summary(contrib_readme_model)
|
2024-06-24 03:10:17 +00:00
|
|
|
saveRDS(contrib_readme_model, "final_models/0623_pop_rm_contrib.rda")
|
|
|
|
#contrib_readme_model <- load("final_models/0510_pop_rm_contrib.rda")
|
2024-05-10 20:12:32 +00:00
|
|
|
conrm_residuals <- residuals(contrib_readme_model)
|
|
|
|
qqnorm(conrm_residuals)
|
|
|
|
collab_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=collab_pop_contrib)
|
2024-05-07 23:40:38 +00:00
|
|
|
summary(collab_contrib_model)
|
2024-06-24 03:10:17 +00:00
|
|
|
saveRDS(collab_contrib_model, "final_models/0623_pop_contrib_collab.rda")
|
2024-05-10 20:12:32 +00:00
|
|
|
contrib_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=contrib_pop_contrib)
|
2024-05-07 23:40:38 +00:00
|
|
|
summary(contrib_contrib_model)
|
2024-06-24 03:10:17 +00:00
|
|
|
saveRDS(contrib_contrib_model, "final_models/0623_pop_contrib_contrib.rda")
|
2024-05-07 23:40:38 +00:00
|
|
|
|
|
|
|
library(ggplot2)
|
2024-06-24 03:10:17 +00:00
|
|
|
contrib_pop_readme |>
|
|
|
|
ggplot(aes(x = after_doc, y = log1pcount)) +
|
|
|
|
|
2024-05-07 23:40:38 +00:00
|
|
|
expanded_readme_data |>
|
2024-06-24 03:10:17 +00:00
|
|
|
ggplot(aes(x = after_doc, y = log1pcount, col = as.factor(after_doc))) +
|
|
|
|
geom_violin()
|
2024-05-07 23:40:38 +00:00
|
|
|
|
|
|
|
expanded_contrib_data |>
|
2024-06-24 03:10:17 +00:00
|
|
|
ggplot(aes(x = after_doc, y = count, col = as.factor(after_doc))) +
|
|
|
|
geom_violin()
|