106 lines
4.7 KiB
R
106 lines
4.7 KiB
R
rm(list=ls())
|
|
set.seed(424242)
|
|
|
|
library(readr)
|
|
library(ggplot2)
|
|
library(tidyverse)
|
|
|
|
#primary analysis for cross-sectional community metrics
|
|
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)
|
|
hist(overall_data$new.age)
|
|
|
|
mmtmodel1 <- lm(underproduction_mean ~ mmt + new.age.factor, data=overall_data)
|
|
summary(mmtmodel1)
|
|
|
|
#shows the cross-age downward slopes for all underproduction averages in the face of MMT
|
|
g4 <- ggplot(overall_data, aes(x=mmt, y=underproduction_mean)) +
|
|
geom_smooth(mapping = aes(x=mmt, y=underproduction_mean, color=new.age.factor), se=FALSE) +
|
|
xlab("MMT") +
|
|
ylab("Underproduction Factor") +
|
|
theme_bw() +
|
|
theme(legend.position = c(0.9, 0.9), legend.justification = c("right", "top"))
|
|
g4
|
|
|
|
texreg(list(mmtmodel1, issue_mmtmodel1, wiki_mmtmodel1), stars=NULL, digits=2,
|
|
custom.model.names=c( 'MMT (Overall Dataset)'),
|
|
custom.coef.names=c('(Intercept)', 'MMT', 'Age-2', 'Age-3', 'Age-4'),
|
|
use.packages=FALSE, table=TRUE, ci.force = TRUE)
|
|
|
|
# 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)
|
|
hist(octo_data$new.age)
|
|
|
|
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)
|
|
|
|
octo_data <- octo_data[which(octo_data$issue_contrib_count <= octo_data$total_contrib),]
|
|
write.csv(octo_data, "new_octo.csv", row.names = FALSE)
|
|
|
|
#TODO: there's an issue with calculating this but somehow not an issue with the wiki one
|
|
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)
|
|
g2 <- ggplot(octo_data, aes(issue_mmt)) + geom_histogram(binwidth = 0.01) + theme_bw()
|
|
g2
|
|
g1 <- ggplot(octo_data, aes(sqrt_issue_mmt)) + geom_histogram(binwidth = 0.01) + theme_bw()
|
|
g1
|
|
#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)
|
|
g3 <- ggplot(octo_data, aes(wiki_mmt)) + geom_histogram(binwidth = 0.01) + theme_bw()
|
|
g3
|
|
median(octo_data$wiki_mmt)
|
|
qqnorm(octo_data$wiki_mmt)
|
|
#left skewed data, need to transform
|
|
|
|
|
|
#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)
|
|
|
|
issue_mmtmodel1 <- lm(underproduction_mean ~ issue_mmt + new.age.factor, data=octo_data)
|
|
summary(issue_mmtmodel1)
|
|
|
|
sqrt_issue_mmtmodel1 <- lm(underproduction_mean ~ sqrt_issue_mmt + new.age.factor, data=octo_data)
|
|
summary(sqrt_issue_mmtmodel1)
|
|
|
|
wiki_mmtmodel1 <- lm(underproduction_mean ~ wiki_mmt + new.age.factor, 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', 'Issues', 'Age-2', 'Age-3', 'Age-4', 'Wiki'),
|
|
use.packages=FALSE, table=FALSE, ci.force = TRUE)
|
|
|
|
#below here is the analysis for the readme.md data
|
|
readme_data$new.age <- as.numeric(cut(readme_data$age_of_project/365, breaks=c(0,7.524197,10.323056,13.649367,17), labels=c(1,2,3,4)))
|
|
table(readme_data$new.age)
|
|
readme_data$new.age.factor <- as.factor(readme_data$new.age)
|
|
hist(readme_data$new.age)
|
|
|
|
|
|
#below here is the analysis for the contributing.md files
|
|
contributing_data$new.age <- as.numeric(cut(contributing_data$age_of_project/365, breaks=c(0,7.524197,10.323056,13.649367,17), labels=c(1,2,3,4)))
|
|
table(contributing_data$new.age)
|
|
contributing_data$new.age.factor <- as.factor(contributing_data$new.age)
|
|
hist(contributing_data$new.age)
|