From 379a8929a5fbe71cd6f417840fc7995288f35916 Mon Sep 17 00:00:00 2001 From: mjgaughan Date: Wed, 19 Jun 2024 19:40:22 -0400 Subject: [PATCH] updates to some of the R scripts --- R/.RData | Bin 48 -> 80304 bytes R/.Rhistory | 890 ++--- R/GovRiskPower.R | 22 +- R/documentReadabilityAnalysis.R | 4 +- R/draft_large_lm_plot.png | Bin 0 -> 52177 bytes final_data/deb_octo_data.csv | 5828 +++++++++++++++---------------- verbose_data/deb_octo_data.csv | 3061 ++++++++++++++++ 7 files changed, 6287 insertions(+), 3518 deletions(-) create mode 100644 R/draft_large_lm_plot.png create mode 100644 verbose_data/deb_octo_data.csv diff --git a/R/.RData b/R/.RData index d17abb1b13dd24c4b10906b955d4553a3cb7f51e..95d1f261611d87f8f5bc07a102fe9df958d34001 100644 GIT binary patch literal 80304 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 literal 48 zcmb2|=3oE=X6~X+gJ)e2k`fXU(h?HcCarN$W6sX#n7xj5!bg6F^%6dI3P6PbPBsoa diff --git a/R/.Rhistory b/R/.Rhistory index c51bcfc..18bfad0 100644 --- a/R/.Rhistory +++ b/R/.Rhistory @@ -1,330 +1,450 @@ -theme_bw() -test_glmer_ranef_D |> -ggplot(aes(x=rank, y=estimate, col = as.factor(ranef_grouping))) + -geom_linerange(aes(ymin= conf.low, ymax= conf.high)) + -theme_bw() -summary(all_gmodel) -all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data) -summary(all_gmodel) -test_condvals <- broom.mixed::tidy(all_gmodel, effects = "ran_vals", conf.int = TRUE) -test_glmer_ranef_D <- test_condvals [which(test_condvals $term == "D"),] -has_zero <- function(estimate, low, high){ -return(ifelse((low < 0),ifelse((high > 0), 1, 0), 2)) -} -test_glmer_ranef_D <- test_glmer_ranef_D |> -mutate(ranef_grouping = has_zero(estimate, conf.low, conf.high)) |> -mutate(rank = rank(estimate)) -test_glmer_ranef_D |> -ggplot(aes(x=rank, y=estimate, col = as.factor(ranef_grouping))) + -geom_linerange(aes(ymin= conf.low, ymax= conf.high)) + -theme_bw() -View(test_glmer_ranef_D) -View(test_condvals) -all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data) -summary(all_gmodel) -test_condvals <- broom.mixed::tidy(all_gmodel, effects = "ran_vals", conf.int = TRUE) -View(test_condvals) -all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, family = Poisson) -all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, family = poisson) -summary(all_gmodel) -all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D | upstream_vcs_link), data=all_actions_data, family = poisson) -summary(all_gmodel) -test_condvals <- broom.mixed::tidy(all_gmodel, effects = "ran_vals", conf.int = TRUE) -test_glmer_ranef_D <- test_condvals [which(test_condvals $term == "D"),] -has_zero <- function(estimate, low, high){ -return(ifelse((low < 0),ifelse((high > 0), 1, 0), 2)) -} -test_glmer_ranef_D <- test_glmer_ranef_D |> -mutate(ranef_grouping = has_zero(estimate, conf.low, conf.high)) |> -mutate(rank = rank(estimate)) -test_glmer_ranef_D |> -ggplot(aes(x=rank, y=estimate, col = as.factor(ranef_grouping))) + -geom_linerange(aes(ymin= conf.low, ymax= conf.high)) + -theme_bw() -all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, family = poisson) -all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -summary(all_gmodel) -test_condvals <- broom.mixed::tidy(all_gmodel, effects = "ran_vals", conf.int = TRUE) -test_glmer_ranef_D <- test_condvals [which(test_condvals $term == "D"),] -has_zero <- function(estimate, low, high){ -return(ifelse((low < 0),ifelse((high > 0), 1, 0), 2)) -} -test_glmer_ranef_D <- test_glmer_ranef_D |> -mutate(ranef_grouping = has_zero(estimate, conf.low, conf.high)) |> -mutate(rank = rank(estimate)) -test_glmer_ranef_D |> -ggplot(aes(x=rank, y=estimate, col = as.factor(ranef_grouping))) + -geom_linerange(aes(ymin= conf.low, ymax= conf.high)) + -theme_bw() -variance(all_actions_data$log1p_count) -var(all_actions_data$log1p_count) -mean (all_actions_data$log1p_count) -#all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link),data=all_actions_data) -#all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), -control=glmerControl(optimizer="bobyqa", -optCtrl=list(maxfun=2e5)), data=all_actions_data) -#all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D | upstream_vcs_link), -control=glmerControl(optimizer="bobyqa", -optCtrl=list(maxfun=2e5)), data=all_actions_data) -summary(all_gmodel) -test_condvals <- broom.mixed::tidy(all_gmodel, effects = "ran_vals", conf.int = TRUE) -test_glmer_ranef_D <- test_condvals [which(test_condvals $term == "D"),] -has_zero <- function(estimate, low, high){ -return(ifelse((low < 0),ifelse((high > 0), 1, 0), 2)) -} -test_glmer_ranef_D <- test_glmer_ranef_D |> -mutate(ranef_grouping = has_zero(estimate, conf.low, conf.high)) |> -mutate(rank = rank(estimate)) -test_glmer_ranef_D |> -ggplot(aes(x=rank, y=estimate, col = as.factor(ranef_grouping))) + -geom_linerange(aes(ymin= conf.low, ymax= conf.high)) + -theme_bw() -#all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -#all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset) | upstream_vcs_link), -# control=glmerControl(optimizer="bobyqa", -# optCtrl=list(maxfun=2e5)), data=all_actions_data) -all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset) | upstream_vcs_link), data=all_actions_data) -#all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -#all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset) | upstream_vcs_link), -# control=glmerControl(optimizer="bobyqa", -# optCtrl=list(maxfun=2e5)), data=all_actions_data) -all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset) | upstream_vcs_link), data=all_actions_data, verbose=TRUE) -#all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -#all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset) | upstream_vcs_link), -# control=glmerControl(optimizer="bobyqa", -# optCtrl=list(maxfun=2e5)), data=all_actions_data) -all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset) | upstream_vcs_link), data=all_actions_data) -#all_gmodel <- glmer(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset)| upstream_vcs_link), data=all_actions_data, nAGQ=0, family = poisson) -#all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D * I(week_offset) | upstream_vcs_link), -# control=glmerControl(optimizer="bobyqa", -# optCtrl=list(maxfun=2e5)), data=all_actions_data) -all_gmodel <- glmer.nb(count ~ D * I(week_offset)+ scaled_project_age + (D | upstream_vcs_link), data=all_actions_data) +mutate(crescendo_limit = ifelse(week_offset < (-4), 0, 1))|> +cor.test(crescendo_limit, count) +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- windowed_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-2), 0, 1)) +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- windowed_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +#testing whether there's a correlation between count and the presce +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) library(tidyverse) library(plyr) -library(stringr) +#get the contrib data instead 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 +contrib_df <- read_csv("../final_data/deb_contrib_did.csv") +#some preprocessing and expansion +col_order <- c("upstream_vcs_link", "age_of_project", "event_date", "event_hash", "before_all_ct", "after_all_ct", "before_mrg_ct", "after_mrg_ct", "before_auth_new", "after_auth_new", "before_commit_new", "after_commit_new") +contrib_df <- contrib_df[,col_order] +contrib_df$ct_before_all <- str_split(gsub("[][]","", contrib_df$before_all_ct), ", ") +contrib_df$ct_after_all <- str_split(gsub("[][]","", contrib_df$after_all_ct), ", ") +contrib_df$ct_before_mrg <- str_split(gsub("[][]","", contrib_df$before_mrg_ct), ", ") +contrib_df$ct_after_mrg <- str_split(gsub("[][]","", contrib_df$after_mrg_ct), ", ") +drop <- c("before_all_ct", "before_mrg_ct", "after_all_ct", "after_mrg_ct") +contrib_df = contrib_df[,!(names(contrib_df) %in% drop)] +# 2 some expansion needs to happens for each project expand_timeseries <- function(project_row) { longer <- project_row |> -pivot_longer(cols = ends_with("new"), +pivot_longer(cols = starts_with("ct"), 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"))) +unnest(count) +longer$observation_type <- gsub("^.*_", "", longer$window) +longer <- ddply(longer, "observation_type", transform, week=seq(from=0, by=1, length.out=length(observation_type))) +longer$count <- as.numeric(longer$count) +#longer <- longer[which(longer$observation_type == "all"),] 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,]) +expanded_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_data <- rbind(expanded_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) -collab_readme_model <- lmer(log1pcount ~ after_doc + (1| upstream_vcs_link), data=collab_pop_readme, REML=FALSE) -collab_readme_model <- glmer.nb(log1pcount ~ after_doc + (1| upstream_vcs_link), data=collab_pop_readme) -summary(collab_readme_model) -crm_residuals <- residuals(collab_readme_model) -qqnorm(crm_residuals) -collab_readme_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=collab_pop_readme) -summary(collab_readme_model) -crm_residuals <- residuals(collab_readme_model) -qqnorm(crm_residuals) -saveRDS(collab_readme_model, "0510_pop_rm_collab.rda") -contrib_readme_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=contrib_pop_readme) -summary(contrib_readme_model) -saveRDS(contrib_readme_model, "0510_pop_rm_contrib.rda") -collab_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=collab_pop_contrib) -summary(collab_contrib_model) -saveRDS(collab_contrib_model, "0510_pop_contrib_collab.rda") -contrib_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=contrib_pop_contrib) -summary(contrib_contrib_model) -saveRDS(contrib_contrib_model, "0510_pop_contrib_contrib.rda") -summary(collab_readme_model) -summary(contrib_readme_model) -qqnorm(crm_residuals) -conrm_residuals <- residuals(contrib_readme_model) -qqnorm(conrm_residuals) -summary(collab_contrib_model) -summary(contrib_contrib_model) +#filter out the windows of time that we're looking at +window_num <- 8 +windowed_data <- expanded_data |> +filter(week >= (27 - window_num) & week <= (27 + window_num)) |> +mutate(D = ifelse(week > 27, 1, 0)) +#scale the age numbers and calculate the week offset here +windowed_data$scaled_project_age <- scale(windowed_data$age_of_project) +windowed_data$week_offset <- windowed_data$week - 27 +#break out the different type of commit actions +all_actions_data <- windowed_data[which(windowed_data$observation_type == "all"),] +mrg_actions_data <- windowed_data[which(windowed_data$observation_type == "mrg"),] +#logging +all_actions_data$logged_count <- log(all_actions_data$count) +all_actions_data$log1p_count <- log1p(all_actions_data$count) +# now for merge +mrg_actions_data$logged_count <- log(mrg_actions_data$count) +mrg_actions_data$log1p_count <- log1p(mrg_actions_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-3), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +# this is the file with the lmer multi-level rddAnalysis +library(tidyverse) +library(plyr) +# 0 loading the readme data in +try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path))) +readme_df <- read_csv("../final_data/deb_readme_did.csv") +# 1 preprocessing +#colnames(readme_df) <- c("upstream_vcs_link", "event_date", "event_hash", "before_all_ct", "before_mrg_ct", "after_all_ct", "after_mrg_ct", "before_auth_new", "after_commit_new", "after_auth_new", "before_commit_new") +col_order <- c("upstream_vcs_link", "age_of_project", "event_date", "event_hash", "before_all_ct", "after_all_ct", "before_mrg_ct", "after_mrg_ct", "before_auth_new", "after_auth_new", "before_commit_new", "after_commit_new") +readme_df <- readme_df[,col_order] +readme_df$ct_before_all <- str_split(gsub("[][]","", readme_df$before_all_ct), ", ") +readme_df$ct_after_all <- str_split(gsub("[][]","", readme_df$after_all_ct), ", ") +readme_df$ct_before_mrg <- str_split(gsub("[][]","", readme_df$before_mrg_ct), ", ") +readme_df$ct_after_mrg <- str_split(gsub("[][]","", readme_df$after_mrg_ct), ", ") +drop <- c("before_all_ct", "before_mrg_ct", "after_all_ct", "after_mrg_ct") +readme_df = readme_df[,!(names(readme_df) %in% drop)] +# 2 some expansion needs to happens for each project +expand_timeseries <- function(project_row) { +longer <- project_row |> +pivot_longer(cols = starts_with("ct"), +names_to = "window", +values_to = "count") |> +unnest(count) +longer$observation_type <- gsub("^.*_", "", longer$window) +longer <- ddply(longer, "observation_type", transform, week=seq(from=0, by=1, length.out=length(observation_type))) +longer$count <- as.numeric(longer$count) +#longer <- longer[which(longer$observation_type == "all"),] +return(longer) +} +expanded_data <- expand_timeseries(readme_df[1,]) +for (i in 2:nrow(readme_df)){ +expanded_data <- rbind(expanded_data, expand_timeseries(readme_df[i,])) +} +#filter out the windows of time that we're looking at +window_num <- 8 +windowed_data <- expanded_data |> +filter(week >= (27 - window_num) & week <= (27 + window_num)) |> +mutate(D = ifelse(week > 27, 1, 0)) +#scale the age numbers +windowed_data$scaled_project_age <- scale(windowed_data$age_of_project) +windowed_data$week_offset <- windowed_data$week - 27 +#break out the different types of commit actions that are studied +all_actions_data <- windowed_data[which(windowed_data$observation_type == "all"),] +mrg_actions_data <- windowed_data[which(windowed_data$observation_type == "mrg"),] +#log the dependent +all_actions_data$logged_count <- log(all_actions_data$count) +all_actions_data$log1p_count <- log1p(all_actions_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +lm(count ~ crescendo_limit + week_offset, data = second_windowed_data) +crescendow_huh <- lm(count ~ crescendo_limit + week_offset, data = second_windowed_data) +crescendo_huh <- lm(count ~ crescendo_limit + week_offset, data = second_windowed_data) +summary(crescendo_huh) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-3), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +crescendo_huh <- lm(count ~ crescendo_limit + week_offset, data = second_windowed_data) +summary(crescendo_huh) +library(tidyverse) +library(plyr) +#get the contrib data instead +try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path))) +contrib_df <- read_csv("../final_data/deb_contrib_did.csv") +#some preprocessing and expansion +col_order <- c("upstream_vcs_link", "age_of_project", "event_date", "event_hash", "before_all_ct", "after_all_ct", "before_mrg_ct", "after_mrg_ct", "before_auth_new", "after_auth_new", "before_commit_new", "after_commit_new") +contrib_df <- contrib_df[,col_order] +contrib_df$ct_before_all <- str_split(gsub("[][]","", contrib_df$before_all_ct), ", ") +contrib_df$ct_after_all <- str_split(gsub("[][]","", contrib_df$after_all_ct), ", ") +contrib_df$ct_before_mrg <- str_split(gsub("[][]","", contrib_df$before_mrg_ct), ", ") +contrib_df$ct_after_mrg <- str_split(gsub("[][]","", contrib_df$after_mrg_ct), ", ") +drop <- c("before_all_ct", "before_mrg_ct", "after_all_ct", "after_mrg_ct") +contrib_df = contrib_df[,!(names(contrib_df) %in% drop)] +# 2 some expansion needs to happens for each project +expand_timeseries <- function(project_row) { +longer <- project_row |> +pivot_longer(cols = starts_with("ct"), +names_to = "window", +values_to = "count") |> +unnest(count) +longer$observation_type <- gsub("^.*_", "", longer$window) +longer <- ddply(longer, "observation_type", transform, week=seq(from=0, by=1, length.out=length(observation_type))) +longer$count <- as.numeric(longer$count) +#longer <- longer[which(longer$observation_type == "all"),] +return(longer) +} +expanded_data <- expand_timeseries(contrib_df[1,]) +for (i in 2:nrow(contrib_df)){ +expanded_data <- rbind(expanded_data, expand_timeseries(contrib_df[i,])) +} +#filter out the windows of time that we're looking at +window_num <- 8 +windowed_data <- expanded_data |> +filter(week >= (27 - window_num) & week <= (27 + window_num)) |> +mutate(D = ifelse(week > 27, 1, 0)) +#scale the age numbers and calculate the week offset here +windowed_data$scaled_project_age <- scale(windowed_data$age_of_project) +windowed_data$week_offset <- windowed_data$week - 27 +#break out the different type of commit actions +all_actions_data <- windowed_data[which(windowed_data$observation_type == "all"),] +mrg_actions_data <- windowed_data[which(windowed_data$observation_type == "mrg"),] +#logging +all_actions_data$logged_count <- log(all_actions_data$count) +all_actions_data$log1p_count <- log1p(all_actions_data$count) +# now for merge +mrg_actions_data$logged_count <- log(mrg_actions_data$count) +mrg_actions_data$log1p_count <- log1p(mrg_actions_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +crescendo_huh <- lm(count ~ crescendo_limit + week_offset, data = second_windowed_data) +summary(crescendo_huh) +crescendo_huh <- lm(count ~ crescendo_limit * week_offset, data = second_windowed_data) +summary(crescendo_huh) +# this is the file with the lmer multi-level rddAnalysis +library(tidyverse) +library(plyr) +# 0 loading the readme data in +try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path))) +readme_df <- read_csv("../final_data/deb_readme_did.csv") +# 1 preprocessing +#colnames(readme_df) <- c("upstream_vcs_link", "event_date", "event_hash", "before_all_ct", "before_mrg_ct", "after_all_ct", "after_mrg_ct", "before_auth_new", "after_commit_new", "after_auth_new", "before_commit_new") +col_order <- c("upstream_vcs_link", "age_of_project", "event_date", "event_hash", "before_all_ct", "after_all_ct", "before_mrg_ct", "after_mrg_ct", "before_auth_new", "after_auth_new", "before_commit_new", "after_commit_new") +readme_df <- readme_df[,col_order] +readme_df$ct_before_all <- str_split(gsub("[][]","", readme_df$before_all_ct), ", ") +readme_df$ct_after_all <- str_split(gsub("[][]","", readme_df$after_all_ct), ", ") +readme_df$ct_before_mrg <- str_split(gsub("[][]","", readme_df$before_mrg_ct), ", ") +readme_df$ct_after_mrg <- str_split(gsub("[][]","", readme_df$after_mrg_ct), ", ") +drop <- c("before_all_ct", "before_mrg_ct", "after_all_ct", "after_mrg_ct") +readme_df = readme_df[,!(names(readme_df) %in% drop)] +# 2 some expansion needs to happens for each project +expand_timeseries <- function(project_row) { +longer <- project_row |> +pivot_longer(cols = starts_with("ct"), +names_to = "window", +values_to = "count") |> +unnest(count) +longer$observation_type <- gsub("^.*_", "", longer$window) +longer <- ddply(longer, "observation_type", transform, week=seq(from=0, by=1, length.out=length(observation_type))) +longer$count <- as.numeric(longer$count) +#longer <- longer[which(longer$observation_type == "all"),] +return(longer) +} +expanded_data <- expand_timeseries(readme_df[1,]) +for (i in 2:nrow(readme_df)){ +expanded_data <- rbind(expanded_data, expand_timeseries(readme_df[i,])) +} +#filter out the windows of time that we're looking at +window_num <- 8 +windowed_data <- expanded_data |> +filter(week >= (27 - window_num) & week <= (27 + window_num)) |> +mutate(D = ifelse(week > 27, 1, 0)) +#scale the age numbers +windowed_data$scaled_project_age <- scale(windowed_data$age_of_project) +windowed_data$week_offset <- windowed_data$week - 27 +#break out the different types of commit actions that are studied +all_actions_data <- windowed_data[which(windowed_data$observation_type == "all"),] +mrg_actions_data <- windowed_data[which(windowed_data$observation_type == "mrg"),] +#log the dependent +all_actions_data$logged_count <- log(all_actions_data$count) +all_actions_data$log1p_count <- log1p(all_actions_data$count) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +crescendo_huh <- lm(count ~ crescendo_limit * week_offset, data = second_windowed_data) +summary(crescendo_huh) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-3), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +crescendo_huh <- lm(count ~ crescendo_limit * week_offset, data = second_windowed_data) +summary(crescendo_huh) +#checking crescendo of contributions before document publication +#second window +second_windowed_data <- all_actions_data |> +filter(week_offset <= 0) |> +mutate(crescendo_limit = ifelse(week_offset < (-1), 0, 1)) +#testing whether there's a correlation between count and the two weeks before the introduction +cor.test(second_windowed_data$crescendo_limit, second_windowed_data$count) +crescendo_huh <- lm(count ~ crescendo_limit * week_offset, data = second_windowed_data) +summary(crescendo_huh) +library(tidyverse) +library(plyr) +# script for the analysis of document readability metrics +# readability metrics will be studied controlled by their length +# gaughan@u.northwestern.edu +# loading in the data +try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path))) +readme_df <- read_csv("../text_analysis/draft_readability_readme.csv") +contributing_df <- read_csv("../text_analysis/draft_readability_contributing.csv") +head(readme_df) +readme_df <- readme_df |> +mutate(coef_grouping <- as.factor(subdir)) +cor.test(readme_df$coef_grouping, readme_df$flesch_reading_ease) +readme_df <- readme_df |> +mutate(coef_grouping <- as.factor(subdir)) +cor.test(readme_df$coef_grouping, readme_df$flesch_reading_ease) +cor(readme_df$coef_grouping, readme_df$flesch_reading_ease) +readme_df <- readme_df |> +mutate(coef_grouping <- as.factor(subdir)) +test_lm <- lm(flesch_reading_ease ~ coef_grouping,data=readme_df) +readme_df <- readme_df |> +mutate(coef_grouping <- as.factor(subdir)) +test_lm <- lm(flesch_reading_ease ~ coef_grouping,data=readme_df) +test_lm <- lm(flesch_reading_ease ~ subdir,data=readme_df) +summary(test_lm) +test_lm <- lm(flesch_reading_ease ~ as.factor(subdir),data=readme_df) +summary(test_lm) +head(readme_df) +test_lm <- lm(flesch_reading_ease ~ char_count + as.factor(subdir),data=readme_df) +summary(test_lm) +head(readme_df) +test_lm <- lm(linsear_write_formula ~ char_count + as.factor(subdir),data=readme_df) +summary(test_lm) +head(readme_df) +test_lm <- lm(mcalpine_eflaw ~ char_count + as.factor(subdir),data=readme_df) +summary(test_lm) +test_lm <- lm(mcalpine_eflaw ~ word_count + as.factor(subdir),data=readme_df) +summary(test_lm) +aggregate(readme_df[, 3:11], list(readme_df$subdir), mean) +aggregate(readme_df[, 3:10], list(readme_df$subdir), mean) +#readme_df <- readme_df |> +# mutate(coef_grouping <- as.factor(subdir)) +#test_lm <- lm(mcalpine_eflaw ~ word_count + as.factor(subdir),data=readme_df) +#summary(test_lm) +aggregate(contributing_df[, 3:10], list(contributing_df$subdir), mean) +library(tidyverse) +library(plyr) +# script for the analysis of document readability metrics +# readability metrics will be studied controlled by their length +# gaughan@u.northwestern.edu +# loading in the data +try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path))) +readme_df <- read_csv("../text_analysis/draft_readability_readme.csv") +contributing_df <- read_csv("../text_analysis/draft_readability_contributing.csv") +head(readme_df) +aggregate(readme_df[, 3:10], list(readme_df$subdir), mean) +aggregate(readme_df[, 3:10], list(readme_df$subdir), median) +#readme_df <- readme_df |> +# mutate(coef_grouping <- as.factor(subdir)) +#test_lm <- lm(mcalpine_eflaw ~ word_count + as.factor(subdir),data=readme_df) +#summary(test_lm) +aggregate(contributing_df[, 3:10], list(contributing_df$subdir), median) +rm(list=ls()) +set.seed(424242) +library(readr) library(ggplot2) -expanded_readme_data |> -ggplot(aes(x = after_doc, y = log1pcount, col = as.factor(is_collab))) + -geom_point() + geom_jitter() -expanded_readme_data |> -ggplot(aes(x = after_doc, y = count, col = as.factor(is_collab))) + -geom_point() + geom_jitter() -expanded_readme_data |> -ggplot(aes(x = after_doc, y = log1pcount, col = as.factor(is_collab))) + -geom_point() + geom_jitter() -#primary analysis for cross-sectional community metrics +library(tidyverse) +overall_data <- read_csv('../final_data/deb_full_data.csv',show_col_types = FALSE) overall_data <- read_csv('../final_data/deb_full_data.csv',show_col_types = FALSE) octo_data <- read_csv('../final_data/deb_octo_data.csv', show_col_types = FALSE) readme_data <- read_csv("../final_data/deb_readme_roster.csv", show_col_types = FALSE) -contributing_data <- read_csv("../final_data/deb_contribfile_roster.csv", show_col_types = FALSE) overall_data$mmt <- (((overall_data$collaborators * 2)+ overall_data$contributors) / (overall_data$contributors + overall_data$collaborators)) mean(overall_data$mmt) hist(overall_data$mmt, probability = TRUE) -#age_vector <- overall_data$age_of_project/365 -#quantile(age_vector) -overall_data$new.age <- as.numeric(cut(overall_data$age_of_project/365, breaks=c(0,7.524197,10.323056,13.649367,17), labels=c(1,2,3,4))) -table(overall_data$new.age) -overall_data$new.age.factor <- as.factor(overall_data$new.age) +#the basic stuff for the overall data +overall_data$mmt <- (((overall_data$collaborators * 2)+ overall_data$contributors) / (overall_data$contributors + overall_data$collaborators)) +mean(overall_data$mmt) +hist(overall_data$mmt, probability = TRUE) +#some new variables around age +#overall_data$new.age <- as.numeric(cut(overall_data$age_of_project/365, breaks=c(0,7.524197,10.323056,13.649367,17), labels=c(1,2,3,4))) +#table(overall_data$new.age) +#overall_data$new.age.factor <- as.factor(overall_data$new.age) overall_data$scaled_age <- scale(overall_data$age_of_project) +#model mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age, data=overall_data) summary(mmtmodel1) qqnorm(residuals(mmtmodel1)) -summary(mmtmodel1) -octo_data$scaled_age <- scale(octo_data$age_of_project) -octo_data$mmt <- (((octo_data$collaborators * 2)+ octo_data$contributors) / (octo_data$contributors + octo_data$collaborators)) -octo_data$issue_mmt <- ((octo_data$issue_contrib_count * 2) + (octo_data$total_contrib - octo_data$issue_contrib_count)) / (octo_data$total_contrib) -octo_data$wiki_mmt <- ((octo_data$wiki_contrib_count * 2) + (octo_data$total_contrib - octo_data$wiki_contrib_count)) / (octo_data$total_contrib) -g4 <- ggplot(octo_data) -g4 -#below are the models for the octo data, there should be analysis for each one -octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + new.age.factor, data=octo_data) -summary(octo_mmtmodel1) -#below are the models for the octo data, there should be analysis for each one -octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age, data=octo_data) -summary(octo_mmtmodel1) -issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + scaled_age, data=octo_data) -summary(issue_mmtmodel1) -sqrt_issue_mmtmodel1 <- lm(underproduction_mean ~ sqrt_issue_mmt + scaled_age, data=octo_data) -wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + scaled_age, data=octo_data) -summary(wiki_mmtmodel1) -qqnorm(residuals(issue_mmtmodel1)) -qqnorm(residuals(wiki_mmtmodel1)) -texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, -custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki_contrib.' ), -custom.coef.names=c('(Intercept)', 'MMT', 'Issues', 'Age-2', 'Age-3', 'Age-4', 'Wiki'), -use.packages=FALSE, table=FALSE, ci.force = TRUE) -library(texreg) #my little "lib" -texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, -custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki_contrib.' ), -custom.coef.names=c('(Intercept)', 'MMT', 'Issues', 'Age-2', 'Age-3', 'Age-4', 'Wiki'), -use.packages=FALSE, table=FALSE, ci.force = TRUE) -texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, -custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki_contrib.' ), -custom.coef.names=c('(Intercept)', 'MMT', 'Issues', 'scaled_age', 'Wiki'), -use.packages=FALSE, table=FALSE, ci.force = TRUE) -summary(octo_mmtmodel1) -summary(wiki_mmtmodel1) -#left skewed data, need to transform -sum(is.na(octo_data$wiki_mmt)) -#left skewed data, need to transform -sum(is.na(octo_data$issue_mmt)) -#left skewed data, need to transform -sum(is.na(octo_data$mmt)) -test_frame <- na.omit(octo_data) -#left skewed data, need to transform -sum(is.na(octo_data$issue_contrib_count)) -#left skewed data, need to transform -sum(is.na(octo_data$wiki_contrib_count)) -octo_data$issue_mmt <- ((octo_data$issue_contrib_count * 2) + (octo_data$total_contrib - octo_data$issue_contrib_count)) / (octo_data$total_contrib) -#left skewed data, need to transform -typeof(octo_data$wiki_contrib_count) -View(octo_data) -octo_data$issue_mmt <- ((octo_data$issue_contrib_count * 2) + (octo_data$api_contrib_count + octo_data$file_contrib_count + octo_data$wiki_contrib_count)) / (octo_data$api_contrib_count + octo_data$file_contrib_count + octo_data$wiki_contrib_count + octo_data$issue_contrib_count) -sum(is.na(octo_data$issue_mmt)) -octo_data$issue_mmt <- ((octo_data$issue_contrib_count * 2) + (octo_data$total_contrib - octo_data$issue_contrib_count)) / (octo_data$total_contrib) -sum(is.na(octo_data$issue_mmt)) -sum(octo_data$total_contrib == 0) -#clean octo data -octo_data <- filter(octo_data, total_contrib == 0) -sum(octo_data$total_contrib == 0) -octo_data <- read_csv('../final_data/deb_octo_data.csv', show_col_types = FALSE) -#clean octo data -octo_data <- filter(octo_data, total_contrib != 0) +# below this is the analysis for the octo data +octo_data$new.age <- as.numeric(cut(octo_data$age_of_project/365, breaks=c(0,7.524197,10.323056,13.649367,17), labels=c(1,2,3,4))) +table(octo_data$new.age) +octo_data$new.age.factor <- as.factor(octo_data$new.age) octo_data$scaled_age <- scale(octo_data$age_of_project) octo_data$mmt <- (((octo_data$collaborators * 2)+ octo_data$contributors) / (octo_data$contributors + octo_data$collaborators)) +mean(octo_data$mmt) +hist(octo_data$mmt) +head(octo_data) +#getting the mmt-equivalent for both issue activity as well as wiki contrib activity octo_data$issue_mmt <- ((octo_data$issue_contrib_count * 2) + (octo_data$total_contrib - octo_data$issue_contrib_count)) / (octo_data$total_contrib) +octo_data$sqrt_issue_mmt <- sqrt(octo_data$issue_mmt) #right skewed data, need to transform octo_data$wiki_mmt <- ((octo_data$wiki_contrib_count * 2) + (octo_data$total_contrib - octo_data$wiki_contrib_count)) / (octo_data$total_contrib) +hist(octo_data$wiki_mmt) #below are the models for the octo data, there should be analysis for each one -octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age, data=octo_data) -summary(octo_mmtmodel1) -issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + scaled_age, data=octo_data) -issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + scaled_age, data=octo_data) -qqnorm(residuals(issue_mmtmodel1)) -sqrt_issue_mmtmodel1 <- lm(underproduction_mean ~ sqrt_issue_mmt + scaled_age, data=octo_data) -wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + scaled_age, data=octo_data) -summary(wiki_mmtmodel1) -qqnorm(residuals(wiki_mmtmodel1)) -texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, -custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki_contrib.' ), -custom.coef.names=c('(Intercept)', 'MMT', 'Issues', 'scaled_age', 'Wiki'), -use.packages=FALSE, table=FALSE, ci.force = TRUE) -texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, -custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki contrib.' ), -custom.coef.names=c('(Intercept)', 'MMT', 'scaled_age', 'Issue MMT', 'Wiki MMT'), -use.packages=FALSE, table=FALSE, ci.force = TRUE) -qqnorm(residuals(wiki_mmtmodel1)) -View(octo_data) -#TODO: find the overlap between projects with octo data and projects with readmes or contributings -readme_did_roster <- read_csv("../final_data/deb_readme_did.csv", show_col_types = FALSE) -contrib_did_roster <- read_csv("../final_data/deb_contrib_did.csv", show_col_types = FALSE) -octo_data |> -mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) -View(octo_data) -octo_data <- octo_data |> -mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) |> -mutate(has_contrib = as.numeric(upstream_vcs_link %in% contrib_did_roster$upstream_vcs_link)) -View(octo_data) -#below here is the analysis for the readme.md data -cor.test(octo_data$mmt, octo_data$has_readme) -cor.test(octo_data$mmt, octo_data$has_contributing) -cor.test(octo_data$mmt, octo_data$has_contrib) -issues_expansion <- lm(issue_mmt ~ has_readme + scaled_age, data=octo_data) -summary(issues_expansion) -issues_expansion <- lm(issue_mmt ~ has_contrib + scaled_age, data=octo_data) -summary(issues_expansion) -#below here is the analysis for the readme.md data -cor.test(octo_data$mmt, octo_data$scaled_age) -#below here is the analysis for the readme.md data -cor.test(octo_data$mmt, octo_data$scaled_age) -octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contributing, data=octo_data) -octo_data <- octo_data |> -mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) |> -mutate(has_contrib = as.numeric(upstream_vcs_link %in% contrib_did_roster$upstream_vcs_link)) -octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contributing, data=octo_data) octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=octo_data) summary(octo_mmtmodel1) issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + scaled_age + has_readme + has_contrib, data=octo_data) summary(issue_mmtmodel1) +qqnorm(residuals(issue_mmtmodel1)) wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + scaled_age + has_readme + has_contrib, data=octo_data) summary(wiki_mmtmodel1) +#getting some of the information in about whether projects have specific files +readme_did_roster <- read_csv("../final_data/deb_readme_did.csv", show_col_types = FALSE) +contrib_did_roster <- read_csv("../final_data/deb_contrib_did.csv", show_col_types = FALSE) +octo_data <- octo_data |> +mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) |> +mutate(has_contrib = as.numeric(upstream_vcs_link %in% contrib_did_roster$upstream_vcs_link)) +overall_data <- overall_data |> +mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) |> +mutate(has_contrib = as.numeric(upstream_vcs_link %in% contrib_did_roster$upstream_vcs_link)) +#below are the models for the octo data, there should be analysis for each one +octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=octo_data) +summary(octo_mmtmodel1) +issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + scaled_age + has_readme + has_contrib, data=octo_data) +summary(issue_mmtmodel1) +qqnorm(residuals(issue_mmtmodel1)) +wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + scaled_age + has_readme + has_contrib, data=octo_data) +summary(wiki_mmtmodel1) +qqnorm(residuals(wiki_mmtmodel1)) +#these next three are looking at mmt as an outcome of other factors +mmt_outcome_model <- lm(mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data = octo_data) +summary(mmt_outcome_model) +library(texreg) #my little "lib" texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki contrib.' ), custom.coef.names=c('(Intercept)', 'MMT', 'scaled_age', 'has readme', 'has contrib', 'Issue MMT', 'Wiki MMT'), use.packages=FALSE, table=FALSE, ci.force = TRUE) +govdoc_issuesmmt <- lm(issue_mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data=octo_data) +summary(govdoc_issuesmmt) +View(octo_data) +octo_cleaned <- octo_data[octo_data$issue_mmt != NaN] +octo_cleaned <- octo_data[!is.nan(octo_data$issue_mmt),] +#below are the models for the octo data, there should be analysis for each one +octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=octo_cleaned) +summary(octo_mmtmodel1) +issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + scaled_age + has_readme + has_contrib, data=octo_cleaned) +summary(issue_mmtmodel1) qqnorm(residuals(issue_mmtmodel1)) -qqnorm(residuals(wiki_mmtmodel1)) -#below here is the analysis for the readme.md data -cor.test(octo_data$mmt, octo_data$issue_mmt) -#below here is the analysis for the readme.md data -cor.test(octo_data$mmt, octo_data$wiki_mmt) -#below here is the analysis for the readme.md data -cor.test(octo_data$mmt, octo_data$has_readme) -cor.test(octo_data$has_readme, octo_data$has_contrib) +wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + scaled_age + has_readme + has_contrib, data=octo_cleaned) +summary(wiki_mmtmodel1) +write.csv(octo_cleaned,"cleaned_octo.csv", row.names = FALSE) +texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, +custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki contrib.' ), +custom.coef.names=c('(Intercept)', 'MMT', 'scaled_age', 'has readme', 'has contrib', 'Issue MMT', 'Wiki MMT'), +use.packages=FALSE, table=FALSE, ci.force = TRUE) +rm(list=ls()) +set.seed(424242) library(readr) library(ggplot2) library(tidyverse) @@ -335,178 +455,58 @@ readme_data <- read_csv("../final_data/deb_readme_roster.csv", show_col_types = contributing_data <- read_csv("../final_data/deb_contribfile_roster.csv", show_col_types = FALSE) overall_data$mmt <- (((overall_data$collaborators * 2)+ overall_data$contributors) / (overall_data$contributors + overall_data$collaborators)) mean(overall_data$mmt) +#the basic stuff for the overall data +overall_data$mmt <- (((overall_data$collaborators * 2)+ overall_data$contributors) / (overall_data$contributors + overall_data$collaborators)) +mean(overall_data$mmt) hist(overall_data$mmt, probability = TRUE) -mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age, data=overall_data) -overall_data$scaled_age <- scale(overall_data$age_of_project) +#model mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age, data=overall_data) summary(mmtmodel1) +qqnorm(residuals(mmtmodel1)) #clean octo data octo_data <- filter(octo_data, total_contrib != 0) +#some new variables around age +#overall_data$new.age <- as.numeric(cut(overall_data$age_of_project/365, breaks=c(0,7.524197,10.323056,13.649367,17), labels=c(1,2,3,4))) +#table(overall_data$new.age) +#overall_data$new.age.factor <- as.factor(overall_data$new.age) +overall_data$scaled_age <- scale(overall_data$age_of_project) +#model +mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age, data=overall_data) +table(octo_data$new.age) +octo_data$new.age.factor <- as.factor(octo_data$new.age) octo_data$scaled_age <- scale(octo_data$age_of_project) octo_data$mmt <- (((octo_data$collaborators * 2)+ octo_data$contributors) / (octo_data$contributors + octo_data$collaborators)) +mean(octo_data$mmt) +hist(octo_data$mmt) +head(octo_data) +#getting the mmt-equivalent for both issue activity as well as wiki contrib activity octo_data$issue_mmt <- ((octo_data$issue_contrib_count * 2) + (octo_data$total_contrib - octo_data$issue_contrib_count)) / (octo_data$total_contrib) #right skewed data, need to transform octo_data$wiki_mmt <- ((octo_data$wiki_contrib_count * 2) + (octo_data$total_contrib - octo_data$wiki_contrib_count)) / (octo_data$total_contrib) -octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=octo_data) -#find the overlap between projects with octo data and projects with readmes or contributings +#getting some of the information in about whether projects have specific files readme_did_roster <- read_csv("../final_data/deb_readme_did.csv", show_col_types = FALSE) contrib_did_roster <- read_csv("../final_data/deb_contrib_did.csv", show_col_types = FALSE) octo_data <- octo_data |> mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) |> mutate(has_contrib = as.numeric(upstream_vcs_link %in% contrib_did_roster$upstream_vcs_link)) -octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=octo_data) -summary(octo_mmtmodel1) -mmt_outcome_model <- lm(mmt ~ scaled_age + has_readme + has_contrib, data = octo_data) -summary(mmt_outcome_model) -mmt_outcome_model <- lm(issue_mmt ~ scaled_age + has_readme + has_contrib, data = octo_data) -summary(mmt_outcome_model) -mmt_outcome_model <- lm(wiki_mmt ~ scaled_age + has_readme + has_contrib, data = octo_data) -summary(mmt_outcome_model) -mmt_outcome_model <- lm(issue_mmt ~ scaled_age + has_readme + has_contrib, data = octo_data) -summary(mmt_outcome_model) -mmt_outcome_model <- lm(mmt ~ scaled_age + has_readme + has_contrib, data = octo_data) -summary(mmt_outcome_model) overall_data <- overall_data |> mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) |> mutate(has_contrib = as.numeric(upstream_vcs_link %in% contrib_did_roster$upstream_vcs_link)) -all_mmt_outcome_model <- lm(mmt ~ scaled_age + has_readme + has_contrib, data = overall_data) -summary(all_mmt_outcome_model) -#pulling in the group data for the ranef coefficients -rm_grouping <- read_csv('../051224_readme_grouped.csv',show_col_types = FALSE) -#pulling in the group data for the ranef coefficients -rm_grouping <- read_csv('051224_readme_grouped.csv',show_col_types = FALSE) -contrib_grouping <- read_csv('051224_contrib_grouped.csv', show_col_types = FALSE) -View(contrib_grouping) -View(rm_grouping) -View(readme_did_roster) -grouped_rm <- left_join(rm_grouping, overall_data, by = c("level","upstream_vcs_link")) -rm_grouping <- rm_grouping |> -rename(upstream_vcs_link = level) -View(rm_grouping) -grouped_rm <- left_join(rm_grouping, overall_data, by="upstream_vcs_link") -View(grouped_rm) -contrib_grouping <- contrib_grouping |> -rename(upstream_vcs_link = level) -grouped_contrib <- left_join(contrib_grouping, overall_data, by="upstream_vcs_link") -View(grouped_rm) -#analyses -cor.test(grouped_rm$mmt, grouped_rm$ranef_grouping) -cor.test(grouped_contrib$mmt, grouped_contrib$ranef_grouping) -#analyses -cor.test(grouped_rm$underproduction_mean, grouped_rm$ranef_grouping) -cor.test(grouped_contrib$underproduction_mean, grouped_contrib$ranef_grouping) -#analyses -cor.test(grouped_rm$underproduction_mean, grouped_rm$estimate) -cor.test(grouped_contrib$underproduction_mean, grouped_contrib$estimate) -View(grouped_rm) -#test with linear model -grouping_model <- lm(underproduction_mean ~ estimate + scaled_age, data=grouped_rm) -summary(grouping_model) -#test with linear model -grouping_model <- lm(underproduction_mean ~ estimate + mmt + scaled_age, data=grouped_rm) -summary(grouping_model) -#test with linear model -grouping_model <- lm(underproduction_mean ~ ranef_grouping + mmt + scaled_age, data=grouped_rm) -summary(grouping_model) -grouping_model_contrib <- lm(underproduction_mean ~ ranef_grouping + mmt + scaled_age, data=grouped_contrib) -summary(grouping_model_contrib) -#test with linear model -grouping_model_rm <- lm(underproduction_mean ~ estimate + mmt + scaled_age, data=grouped_rm) -summary(grouping_model_rm) -grouping_model_contrib <- lm(underproduction_mean ~ estimate + mmt + scaled_age, data=grouped_contrib) -summary(grouping_model_contrib) -#test with linear model -grouping_model_rm <- glm.nb(underproduction_mean ~ ranef_grouping + mmt + scaled_age, data=grouped_rm) -#pulling in the group data for the ranef coefficients -rm_grouping <- read_csv('051224_readme_grouped.csv',show_col_types = FALSE) -contrib_grouping <- read_csv('051224_contrib_grouped.csv', show_col_types = FALSE) -rm_grouping <- rm_grouping |> -rename(upstream_vcs_link = level)|> -mutate(factored_group = as.factor(ranef_grouping)) -contrib_grouping <- contrib_grouping |> -rename(upstream_vcs_link = level) |> -mutate(factored_group = as.factor(ranef_grouping)) -grouped_rm <- left_join(rm_grouping, overall_data, by="upstream_vcs_link") -grouped_contrib <- left_join(contrib_grouping, overall_data, by="upstream_vcs_link") -#analyses -cor.test(grouped_rm$underproduction_mean, grouped_rm$factored_group) -#test with linear model -grouping_model_rm <- lm(underproduction_mean ~ factored_group + mmt + scaled_age, data=grouped_rm) -summary(grouping_model_rm) -grouping_model_contrib <- lm(underproduction_mean ~ factored_group + mmt + scaled_age, data=grouped_contrib) -summary(grouping_model_contrib) -summary(grouping_model_rm) -grouping_model_contrib <- lm(underproduction_mean ~ factored_group + mmt + scaled_age, data=grouped_contrib) -summary(grouping_model_contrib) -qqnorm(residuals(grouping_model_rm)) -qqnorm(residuals(grouping_model_contrib)) -rm_did <- read_csv('../final_data/deb_readme_did.csv',show_col_types = FALSE) -contrib_did <- read_csv('../final_data/deb_contrib_did.csv', show_col_types = FALSE) -grouped_rm <- left_join(grouped_rm, rm_did, by="upstream_vcs_link") -grouped_contrib <- left_join(grouped_contrib, contrib_did, by="upstream_vcs_link") -#calculate in terms of July 6, 2020 -typeof(event_date) -#calculate in terms of July 6, 2020 -typeof(grouped_rm$event_date) -#calculate in terms of July 6, 2020 -typeof(as.Date(grouped_rm$event_date)) -how_long_has_file <- as.Date("2020-07-06") - as.Date(grouped_rm$event_date) -how_long_has_file <- difftime(as.Date("2020-07-06"), as.Date(grouped_rm$event_date)) -how_long_has_file <- difftime(as.Date("2020-07-06"), as.Date(grouped_rm$event_date), units = "days") -#calculate in terms of July 6, 2020 -grouped_rm$event_date -#calculate in terms of July 6, 2020 -dates <- as.POSIXct(grouped_rm$event_date,tz="UTC") -dates -typeof(dates) -how_long_has_file <- difftime(as.Date("2020-07-06"), as.Date(grouped_rm$event_date), units = "days") -#calculate in terms of July 6, 2020 -dtparts = t(as.data.frame(strsplit(grouped_rm$event_date,' '))) -#calculate in terms of July 6, 2020 -dtparts = t(as.data.frame(strsplit(grouped_rm$event_date,' '))) -#calculate in terms of July 6, 2020 -dtparts = t(as.data.frame(strsplit(as.character(grouped_rm$event_date),' '))) -View(dtparts) -thetimes = chron(dates=dtparts[,1],times=dtparts[,2], -+ format=c('y-m-d','h:m:s')) -thetimes = chron(dates=dtparts[,1],times=dtparts[,2], format=c('y-m-d','h:m:s')) -#calculate in terms of July 6, 2020 -library(chron) -dtparts = t(as.data.frame(strsplit(as.character(grouped_rm$event_date),' '))) -thetimes = chron(dates=dtparts[,1],times=dtparts[,2], format=c('y-m-d','h:m:s')) -typeof(thetimes) -grouped_rm <- grouped_rm |> -mutate(formatted_event_time = chron(dates=dtparts[,1],times=dtparts[,2], format=c('y-m-d','h:m:s'))) |> -mutate(event_delta = difftime(as.chron("2020-07-06"), formatted_event_time, units = "days")) -View(grouped_rm) -#test with linear model -grouping_model_rm <- lm(underproduction_mean ~ event_delta*factored_group + mmt + scaled_age, data=grouped_rm) -summary(grouping_model_rm) -#now doing it for the contrib_data -contrib_dtparts = t(as.data.frame(strsplit(as.character(grouped_contrib$event_date),' '))) -grouped_contrib <- grouped_contrib |> -mutate(formatted_event_time = chron(dates=contrib_dtparts[,1],times=contrib_dtparts[,2], format=c('y-m-d','h:m:s'))) |> -mutate(event_delta = difftime(as.chron("2020-07-06"), formatted_event_time, units = "days")) -grouping_model_contrib <- lm(underproduction_mean ~ event_delta*factored_group + mmt + scaled_age, data=grouped_contrib) -summary(grouping_model_contrib) -summary(grouping_model_rm) -qqnorm(residuals(grouping_model_rm)) -grouping_model_contrib <- lm(underproduction_mean ~ event_delta*factored_group + mmt + scaled_age, data=grouped_contrib) -summary(grouping_model_contrib) -qqnorm(residuals(grouping_model_contrib)) -qqnorm(residuals(grouping_model_rm)) -qqnorm(residuals(grouping_model_contrib)) -issues_expansion <- lm(issue_mmt ~ as.factor(has_contrib) + scaled_age, data=octo_data) -summary(issues_expansion) -govdoc_mmt <- lm(mmt ~ as.factor(has_contrib) + scaled_age, data=octo_data) -summary(govdoc_mmt) -govdoc_mmt <- lm(mmt ~ as.factor(has_readme) + scaled_age, data=octo_data) -summary(govdoc_mmt) -govdoc_issuesmmt <- lm(issue_mmt ~ as.factor(has_readme) + scaled_age, data=octo_data) -summary(govdoc_issuesmmt) -mmt_outcome_model <- lm(mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data = octo_data) -summary(mmt_outcome_model) -all_mmt_outcome_model <- lm(mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data = overall_data) -summary(all_mmt_outcome_model) -govdoc_issuesmmt <- lm(issue_mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data=octo_data) -summary(govdoc_issuesmmt) +#below are the models for the octo data, there should be analysis for each one +octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=octo_data) +summary(octo_mmtmodel1) +issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + scaled_age + has_readme + has_contrib, data=octo_data) +summary(issue_mmtmodel1) +qqnorm(residuals(issue_mmtmodel1)) +wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + scaled_age + has_readme + has_contrib, data=octo_data) +summary(wiki_mmtmodel1) +library(texreg) #my little "lib" +texreg(list(octo_mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2, +custom.model.names=c( 'M1: MMT','M2: issue contrib.', 'M3: wiki contrib.' ), +custom.coef.names=c('(Intercept)', 'MMT', 'scaled_age', 'has readme', 'has contrib', 'Issue MMT', 'Wiki MMT'), +use.packages=FALSE, table=FALSE, ci.force = TRUE) +#now large MMT model taking into account having contributing or README +mmtmodel2 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=overall_data) +summary(mmtmodel2) +qqnorm(residuals(mmtmodel2)) +summary(mmtmodel2) diff --git a/R/GovRiskPower.R b/R/GovRiskPower.R index 1299ed8..468fb67 100644 --- a/R/GovRiskPower.R +++ b/R/GovRiskPower.R @@ -10,7 +10,6 @@ overall_data <- read_csv('../final_data/deb_full_data.csv',show_col_types = FALS octo_data <- read_csv('../final_data/deb_octo_data.csv', show_col_types = FALSE) readme_data <- read_csv("../final_data/deb_readme_roster.csv", show_col_types = FALSE) contributing_data <- read_csv("../final_data/deb_contribfile_roster.csv", show_col_types = FALSE) - overall_data$mmt <- (((overall_data$collaborators * 2)+ overall_data$contributors) / (overall_data$contributors + overall_data$collaborators)) mean(overall_data$mmt) hist(overall_data$mmt, probability = TRUE) @@ -61,7 +60,6 @@ overall_data <- overall_data |> mutate(has_readme = as.numeric(upstream_vcs_link %in% readme_did_roster$upstream_vcs_link)) |> mutate(has_contrib = as.numeric(upstream_vcs_link %in% contrib_did_roster$upstream_vcs_link)) - #below are the models for the octo data, there should be analysis for each one octo_mmtmodel1 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=octo_data) summary(octo_mmtmodel1) @@ -74,15 +72,19 @@ wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + scaled_age + has_readme + summary(wiki_mmtmodel1) qqnorm(residuals(wiki_mmtmodel1)) -#these next three are looking at mmt as an outcome of other factors -mmt_outcome_model <- lm(mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data = octo_data) -summary(mmt_outcome_model) +#now large MMT model taking into account having contributing or README +mmtmodel2 <- lm(underproduction_mean ~ mmt + scaled_age + has_readme + has_contrib, data=overall_data) +model_summarized <- summary(mmtmodel2) +coef <- coef(mmtmodel2) +qqnorm(residuals(mmtmodel2)) +overall_data$predict <- overall_data$mmt * model_summarized$coefficients[2,1] + model_summarized$coefficients[1,1] +overall_data$SE <- predict.lm(mmtmodel2, se.fit = TRUE, level = 0.95)$se.fit +p <- ggplot(data=overall_data, aes(x=mmt, y=underproduction_mean)) + + geom_ribbon(aes(x=mmt, ymin= predict-SE, ymax = predict+SE), fill = "green") + + geom_abline(intercept=coef[1], slope = coef[2], color = "red") + + theme_bw() +p -all_mmt_outcome_model <- lm(mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data = overall_data) -summary(all_mmt_outcome_model) - -govdoc_issuesmmt <- lm(issue_mmt ~ scaled_age + as.factor(has_readme) + as.factor(has_contrib), data=octo_data) -summary(govdoc_issuesmmt) library(texreg) #my little "lib" diff --git a/R/documentReadabilityAnalysis.R b/R/documentReadabilityAnalysis.R index 2cec261..31ae3d3 100644 --- a/R/documentReadabilityAnalysis.R +++ b/R/documentReadabilityAnalysis.R @@ -8,9 +8,9 @@ try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path))) readme_df <- read_csv("../text_analysis/draft_readability_readme.csv") contributing_df <- read_csv("../text_analysis/draft_readability_contributing.csv") head(readme_df) -aggregate(readme_df[, 3:10], list(readme_df$subdir), mean) +aggregate(readme_df[, 3:10], list(readme_df$subdir), median) #readme_df <- readme_df |> # mutate(coef_grouping <- as.factor(subdir)) #test_lm <- lm(mcalpine_eflaw ~ word_count + as.factor(subdir),data=readme_df) #summary(test_lm) -aggregate(contributing_df[, 3:10], list(contributing_df$subdir), mean) +aggregate(contributing_df[, 3:10], list(contributing_df$subdir), median) diff --git a/R/draft_large_lm_plot.png b/R/draft_large_lm_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1e380e39d2c525d656e880bb982a8a657a45d4 GIT binary patch literal 52177 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 z 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