developing mlm for population changes

This commit is contained in:
mjgaughan 2024-06-24 10:06:30 -04:00
parent 9aa31b7750
commit 9b4a4cdf00
2 changed files with 26 additions and 8 deletions

Binary file not shown.

View File

@ -3,8 +3,26 @@ library(plyr)
library(stringr) library(stringr)
try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path))) try(setwd(dirname(rstudioapi::getActiveDocumentContext()$path)))
#load in data #load in data
full_df <- read_csv("../final_data/deb_full_data.csv")
contrib_df <- read_csv("../final_data/deb_contrib_pop_change.csv") contrib_df <- read_csv("../final_data/deb_contrib_pop_change.csv")
readme_df <- read_csv("../final_data/deb_readme_pop_change.csv") readme_df <- read_csv("../final_data/deb_readme_pop_change.csv")
contrib_df <- merge(full_df, contrib_df, by="upstream_vcs_link")
readme_df <- merge(full_df, readme_df, by="upstream_vcs_link")
# age is calculated against December 11, 2023
contrib_df <- contrib_df |>
mutate(start_date = as.Date("2023-12-11") - age_of_project) |>
mutate(event_date_days =
as.numeric(
difftime(as.POSIXct("2024-06-24 00:00:00", format = "%Y-%m-%d %H:%M:%S"),
as.POSIXct(event_date, format = "%Y-%m-%d %H:%M:%S"),
units = "days")))
readme_df <- readme_df |>
mutate(start_date = as.Date("2023-12-11") - age_of_project) |>
mutate(event_date_days =
as.numeric(
difftime(as.POSIXct("2024-06-24 00:00:00", format = "%Y-%m-%d %H:%M:%S"),
as.POSIXct(event_date, format = "%Y-%m-%d %H:%M:%S"),
units = "days")))
#some expansion needs to happens for each project #some expansion needs to happens for each project
expand_timeseries <- function(project_row) { expand_timeseries <- function(project_row) {
longer <- project_row |> longer <- project_row |>
@ -40,23 +58,23 @@ library(MASS)
simple_collab_readme_model <- glm.nb(count ~ as.factor(after_doc), data=collab_pop_readme) simple_collab_readme_model <- glm.nb(count ~ as.factor(after_doc), data=collab_pop_readme)
summary(simple_collab_readme_model) summary(simple_collab_readme_model)
qqnorm(residuals(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 # 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) collab_readme_model <- glmer.nb(log1pcount ~ as.factor(after_doc) + (after_doc| upstream_vcs_link), data=collab_pop_readme)
collab_readme_model_plus <- glmer.nb(log1pcount ~ as.factor(after_doc) + event_date_days + (after_doc| upstream_vcs_link), data=collab_pop_readme)
collab_readme_model <- readRDS("final_models/0623_pop_rm_collab.rda")
summary(collab_readme_model) summary(collab_readme_model)
saveRDS(collab_readme_model, "final_models/0623_pop_rm_collab.rda") saveRDS(collab_readme_model, "final_models/0623_pop_rm_collab_better.rda")
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) contrib_readme_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=contrib_pop_readme)
contrib_readme_model_plus <- glmer.nb(log1pcount ~ after_doc + event_date_days+ (after_doc| upstream_vcs_link), data=contrib_pop_readme)
summary(contrib_readme_model) summary(contrib_readme_model)
saveRDS(contrib_readme_model, "final_models/0623_pop_rm_contrib.rda") saveRDS(contrib_readme_model, "final_models/0623_pop_rm_contrib.rda")
#contrib_readme_model <- load("final_models/0510_pop_rm_contrib.rda") contrib_readme_model <- readRDS("final_models/0623_pop_rm_contrib.rda")
conrm_residuals <- residuals(contrib_readme_model) conrm_residuals <- residuals(contrib_readme_model)
qqnorm(conrm_residuals) qqnorm(conrm_residuals)
collab_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=collab_pop_contrib) collab_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=collab_pop_contrib)
summary(collab_contrib_model) summary(collab_contrib_model)
saveRDS(collab_contrib_model, "final_models/0623_pop_contrib_collab.rda") saveRDS(collab_contrib_model, "final_models/0623_pop_contrib_collab.rda")
contrib_readme_model <- readRDS("final_models/0623_pop_contrib_collab.rda")
contrib_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=contrib_pop_contrib) contrib_contrib_model <- glmer.nb(log1pcount ~ after_doc + (after_doc| upstream_vcs_link), data=contrib_pop_contrib)
summary(contrib_contrib_model) summary(contrib_contrib_model)
saveRDS(contrib_contrib_model, "final_models/0623_pop_contrib_contrib.rda") saveRDS(contrib_contrib_model, "final_models/0623_pop_contrib_contrib.rda")
@ -65,7 +83,7 @@ library(texreg)
texreg(list(collab_readme_model, contrib_readme_model), stars=NULL, digits=2, texreg(list(collab_readme_model, contrib_readme_model), stars=NULL, digits=2,
custom.model.names=c( 'collab','contrib.' ), custom.model.names=c( 'collab','contrib.' ),
custom.coef.names=c('(Intercept)', 'after_introduction'), custom.coef.names=c('(Intercept)', 'after_introduction', 'etc'),
use.packages=FALSE, table=FALSE, ci.force = TRUE) use.packages=FALSE, table=FALSE, ci.force = TRUE)
library(ggplot2) library(ggplot2)