Type of Analysis: Descriptive analysis - Univariate description

Intention of Analysis: 1- Understand how Core WordPress Community coproduce code. 2- Identify potential indicators for coherence analysis.

General Question: Wich are the atributes of coproduction (colunms of dataframe or variables)? Specific Questions: Which type of developers groups exist in WC? It is possible to make some indicator from this data?

Source: Data come from WordPress Report Trac System. URL Source Dataframe: GitHub Repository

Date collection: 04/07/2019.

1.GENERAL ANALYSIS

#READ DATA
library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(plotly)
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
TicketW <- read_csv('~/PhD Analysis/1. PhD escriptive exploratory analysis/TicketW.csv')
## Parsed with column specification:
## cols(
##   id = col_double(),
##   Summary = col_character(),
##   Status = col_character(),
##   Version = col_logical(),
##   Owner = col_character(),
##   Type = col_character(),
##   Priority = col_character(),
##   Milestone = col_character(),
##   Component = col_character(),
##   Severity = col_character(),
##   Resolution = col_character(),
##   Created = col_character(),
##   Modified = col_character(),
##   Focuses = col_character(),
##   Reporter = col_character(),
##   Keywords = col_character()
## )
View(TicketW)
dim(TicketW) #dimension
## [1] 2333   16
TicketW[1:5,]  #5 fist lines
## # A tibble: 5 x 16
##      id Summary Status Version Owner Type  Priority Milestone Component
##   <dbl> <chr>   <chr>  <lgl>   <chr> <chr> <chr>    <chr>     <chr>    
## 1 24579 Add Dr~ new    NA      <NA>  enha~ high     Future R~ Upgrade/~
## 2 30361 Correc~ assig~ NA      pento task~ high     <NA>      General  
## 3 32502 Cannot~ new    NA      <NA>  defe~ high     <NA>      Administ~
## 4 36441 Custom~ new    NA      <NA>  defe~ high     Future R~ Customize
## 5 40439 Save p~ assig~ NA      mike~ enha~ high     5.3       Media    
## # ... with 7 more variables: Severity <chr>, Resolution <chr>,
## #   Created <chr>, Modified <chr>, Focuses <chr>, Reporter <chr>,
## #   Keywords <chr>
summary(TicketW)
##        id          Summary             Status          Version       
##  Min.   : 5235   Length:2333        Length:2333        Mode:logical  
##  1st Qu.:34555   Class :character   Class :character   NA's:2333     
##  Median :40511   Mode  :character   Mode  :character                 
##  Mean   :38029                                                       
##  3rd Qu.:44485                                                       
##  Max.   :47640                                                       
##     Owner               Type             Priority        
##  Length:2333        Length:2333        Length:2333       
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##   Milestone          Component           Severity        
##  Length:2333        Length:2333        Length:2333       
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##   Resolution          Created            Modified        
##  Length:2333        Length:2333        Length:2333       
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##    Focuses            Reporter           Keywords        
##  Length:2333        Length:2333        Length:2333       
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
## 
glimpse(TicketW)
## Observations: 2,333
## Variables: 16
## $ id         <dbl> 24579, 30361, 32502, 36441, 40439, 41292, 41886, 41...
## $ Summary    <chr> "Add Drag'n'Drop UI to plugin and theme manual uplo...
## $ Status     <chr> "new", "assigned", "new", "new", "assigned", "reope...
## $ Version    <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ Owner      <chr> NA, "pento", NA, NA, "mikeschroder", "jnylen0", "me...
## $ Type       <chr> "enhancement", "task (blessed)", "defect (bug)", "d...
## $ Priority   <chr> "high", "high", "high", "high", "high", "high", "hi...
## $ Milestone  <chr> "Future Release", NA, NA, "Future Release", "5.3", ...
## $ Component  <chr> "Upgrade/Install", "General", "Administration", "Cu...
## $ Severity   <chr> "normal", "normal", "major", "normal", "normal", "n...
## $ Resolution <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ Created    <chr> "06/14/2013 05:03:38 PM", "11/17/2014 12:10:55 PM",...
## $ Modified   <chr> "04/12/2019 11:04:54 AM", "06/04/2019 07:42:28 PM",...
## $ Focuses    <chr> NA, "ui, administration", NA, NA, "ui", NA, NA, NA,...
## $ Reporter   <chr> "tw2113", "pento", "ryan", "azaozz", "mikeschroder"...
## $ Keywords   <chr> "ui-feedback ux-feedback needs-patch shiny-updates"...

1.1 Variables related with members Analysis Goal: Find which variables have hight variability, and find a line of cut, in order to use into Bivariate Analysis.

# Var1
Status<-table(TicketW$Status)
# Transform into table
Status<-as.data.frame(as.table(Status))
PropStatus<-prop.table(Status$Freq) #Proportion
Status<-data.frame(Status,PropStatus)

#Var2
TType<-table(TicketW$Type)
# Transform into table
TType<-as.data.frame(as.table(TType))
PropTType<-prop.table(TType$Freq) #Proportion
TType<-data.frame(TType,PropTType)

#Var3
Priority<-table(TicketW$Priority)
# Transform into table
Priority<-as.data.frame(as.table(Priority))
PropPrio<-prop.table(Priority$Freq) #Proportion
Priority<-data.frame(Priority,PropPrio)

#Var4
Milestone<-table(TicketW$Milestone)
# Transform into table
Milestone<-as.data.frame(as.table(Milestone))
PropMiles<-prop.table(Milestone$Freq) #Proportion
Milestone<-data.frame(Milestone,PropMiles)


#Var5
Component<-table(TicketW$Component)
# Transform into table
Component<-as.data.frame(as.table(Component))
c1<-Component[order(Component$Freq, decreasing = TRUE),]
Component = filter(Component, Freq>100)
sum(Component$Freq)
## [1] 647
PropComp<-prop.table(Component$Freq) #Proportion
Component<-data.frame(Component,PropComp)


#Var6
Severity<-table(TicketW$Severity)
# Transform into table
Severity<-as.data.frame(as.table(Severity))
PropSever<-prop.table(Severity$Freq) #Proportion
Severity<-data.frame(Severity,PropSever)

#Var7
Focuses<-table(TicketW$Focuses)
# Transform into table
Focuses<-as.data.frame(as.table(Focuses))
f1<-Focuses[order(Focuses$Freq, decreasing = TRUE),]
Focuses = filter(Focuses, Freq>10)
PropFocus<-prop.table(Focuses$Freq) #Proportion
Focuses<-data.frame(Focuses,PropFocus)
sum(Focuses$Freq)
## [1] 832
Keywords<-table(TicketW$Keywords)#Var8
# Transform into table
Keywords<-as.data.frame(as.table(Keywords))
k1<-Keywords[order(Keywords$Freq, decreasing = TRUE),]
Keywords = filter(Keywords, Freq>9)
Keywords = filter(Keywords, Freq>40)
Prop.Keyw<-prop.table(Keywords$Freq) #Proportion
Keywords<-data.frame(Keywords,Prop.Keyw)
sum(Keywords$Freq)
## [1] 761

1.2 Variable Members Analysis - Reporters: Reporters are WordPress Community members who find and report a problem from WP Platform, into a Ticket.

Goal: Find type of report member groups (actives, medians, and aliens), and find a line of cut, in order to use into Bivariate Analysis.

# Transform into table
Reporter<-table(TicketW$Reporter) 
Reporter<-as.data.frame(as.table(Reporter))
summary(Reporter)
##             Var1           Freq       
##  _ck_         :   1   Min.   : 1.000  
##  5um17        :   1   1st Qu.: 1.000  
##  aaroncampbell:   1   Median : 1.000  
##  abhijitrakas :   1   Mean   : 2.269  
##  abletec      :   1   3rd Qu.: 2.000  
##  AD7six       :   1   Max.   :72.000  
##  (Other)      :1022
totalReporter<-nrow(Reporter)

#1.2.1 Filter the most active group of reporters (Which reporter with more than 10 tickets)
ActiveReporters = filter(Reporter,Freq>10)
totalAR<-nrow(ActiveReporters) #Total members of active reporters group
RankAR <- ActiveReporters[order(ActiveReporters$Freq, decreasing = TRUE),]
summary(RankAR$Freq)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   11.00   15.00   18.00   23.65   24.75   72.00
#1.2.2 Filter the median active group of reporters (Which reporter with less than 10 tickets and more than 4 tickets)
MedianReporters = filter(Reporter,Freq<10 & Freq>4)
totalMR<-nrow(MedianReporters)
#Ranking the Median active reporters
RankMR <- MedianReporters[order(MedianReporters$Freq, decreasing = TRUE),]

#1.2.3 Filter the less active group of Report (Which reporter with less than 10 tickets)
LessReporters = filter(Reporter,Freq<4)
totalLR<-nrow(LessReporters)
#Ranking the less active Reporters
Ranklr <- LessReporters[order(LessReporters$Freq, decreasing = TRUE),]

1.3 Variable Member Analysis - Owners: Owners are WordPress Community members who pick up a ticket from WP Platform (sended by a reporter) in order to solve it.

Goal: Find type of owner member groups (actives, medians, and aliens), and find a line of cut, in order to use into Bivariate Analysis.

# Transform into table
Owner<-table(TicketW$Owner) 
Owner<-as.data.frame(as.table(Owner))
summary(Owner)
##               Var1          Freq       
##  aaroncampbell  :  1   Min.   : 1.000  
##  adam3128       :  1   1st Qu.: 1.000  
##  adamsilverstein:  1   Median : 1.000  
##  afercia        :  1   Mean   : 3.095  
##  allisonplus    :  1   3rd Qu.: 2.000  
##  antpb          :  1   Max.   :67.000  
##  (Other)        :110
totalOwner<-nrow(Owner)

# 1.3.1 Filter the most active group of Owners (Which Owner with more than 10 tickets)
ActiveOwner = filter(Owner,Freq>10)
totalAO<-nrow(ActiveOwner)
#Ranking the most active Owners
RankAO <- ActiveOwner[order(ActiveOwner$Freq, decreasing = TRUE),]

#1.3.2 Filter the median active group of Owners (Which Owner with less than 10 tickets and more than 4 tickets)
MedianOwner = filter(Owner,Freq<10 & Freq>4)
totalMO<-nrow(MedianOwner)
#Ranking the Median Owners
RankMO <- MedianOwner[order(MedianOwner$Freq, decreasing = TRUE),]

#1.3.3 Filter the less active group of Owners (Which Owner with less than 10 tickets)
LessOwner = filter(Owner,Freq<4)
totalLO<-nrow(LessOwner)
#Ranking the less active Owners
RanklO <- LessOwner[order(LessOwner$Freq, decreasing = TRUE),]

1.4 Sum of groups by Reporters and Owners:

#Total members per Reporter
MembersTotalR<-c(totalReporter,totalAR,totalMR,totalLR)
CoreGroupR<-c("Reporters","Active Reporters","Median Reporters","Alien Reporters")
PropMR<-prop.table(MembersTotalR)# Proportion
WPCGroupR<-data.frame(CoreGroupR,MembersTotalR,PropMR)

#Total members per Owner
MembersTotalO<-c(totalOwner,totalAO,totalMO,totalLO)
CoreGroupO<-c("Owners","Active Owners","Median Owners","Alien Owners")
PropMO<-prop.table(MembersTotalO) #Proportion
WPCGroupO<-data.frame(CoreGroupO,MembersTotalO,PropMO)

PropMR-1
## [1] -0.4923457 -0.9832099 -0.9822222 -0.5422222
PropMO-1
## [1] -0.4912281 -0.9736842 -0.9473684 -0.5877193

sim<-ifelse(PropMO>PropMR,1-(PropMO-PropMR)/4,1-(PropMR-PropMO)/4)

2. DESCRIPTION ANALYSIS REPORT :

2.1 Variables related with members Report: Variables selected to bivariate analysis are Component(+100 tickets per level), Focuses (+1 Ticket per level), Keywords(+9 tickets per level), Type, Status.

Status#Var1
##        Var1 Freq PropStatus
## 1  accepted   53 0.02271753
## 2  assigned  215 0.09215602
## 3       new 1844 0.79039863
## 4  reopened  116 0.04972139
## 5 reviewing  105 0.04500643
#Graphics
pie(Status$Freq, main="Frequency of Tickets Status", label=Status$Var1, col = rainbow(7))

TType# Var2
##              Var1 Freq  PropTType
## 1    defect (bug) 1012 0.43377625
## 2     enhancement 1109 0.47535362
## 3 feature request  168 0.07201029
## 4  task (blessed)   44 0.01885984
#Graphics
pie(TType$Freq, main="Frequency of Tickets Type", label=TType$Var1, col = rainbow(7))

Priority# Var3
##     Var1 Freq    PropPrio
## 1   high   12 0.005143592
## 2    low   49 0.021003000
## 3 lowest    7 0.003000429
## 4 normal 2265 0.970852979
#Graphics
pie(Priority$Freq, main="Frequency of Tickets Priority", label=Priority$Var1, col = rainbow(7))

Milestone#Var4
##              Var1 Freq    PropMiles
## 1           5.2.3    1 0.0005452563
## 2             5.3  172 0.0937840785
## 3 Awaiting Review 1104 0.6019629226
## 4  Future Release  544 0.2966194111
## 5   WordPress.org   13 0.0070883315
#Graphics
pie(Milestone$Freq, main="Frequency of Tickets Milestone", label=Milestone$Var1, col = rainbow(7))

Component#Var5
##                Var1 Freq  PropComp
## 1    Administration  162 0.2503864
## 2           General  205 0.3168470
## 3             Media  166 0.2565688
## 4 Posts, Post Types  114 0.1761978
#Graphics
barplot(Component$Freq, 
        xlab = "Tickets", 
        ylab = "Components", 
        main="Frequency of Tickets Component", 
        col = rainbow(5),
        legend.text = Component$Var1,
        horiz=TRUE,
        args.legend = list("bottom", bty="n", cex = 1))

Severity #Var6
##       Var1 Freq    PropSever
## 1  blocker    1 0.0004286327
## 2 critical    9 0.0038576940
## 3    major   27 0.0115730819
## 4    minor   91 0.0390055722
## 5   normal 2186 0.9369909987
## 6  trivial   19 0.0081440206
#Graphics
pie(Severity$Freq, main="Frequency of Tickets Severity", label=Severity$Var1, col = rainbow(7))

Focuses#Var7
##                  Var1 Freq  PropFocus
## 1       accessibility   23 0.02764423
## 2      administration  192 0.23076923
## 3    coding-standards   27 0.03245192
## 4                docs   58 0.06971154
## 5          javascript   49 0.05889423
## 6           multisite   95 0.11418269
## 7         performance   55 0.06610577
## 8            rest-api   30 0.03605769
## 9            template   48 0.05769231
## 10                 ui  103 0.12379808
## 11  ui, accessibility   51 0.06129808
## 12 ui, administration  101 0.12139423
#Graphics
barplot(Focuses$Freq, 
        xlab = "Tickets", 
        ylab = "Focuses", 
        main="Frequency of Tickets Focuses", 
        col = rainbow(13),
        legend.text = Focuses$Var1,
        horiz=TRUE,
       args.legend = list("bottom", bty="n", cex = 1))

Keywords#Var8
##                           Var1 Freq  Prop.Keyw
## 1                  2nd-opinion   55 0.07227332
## 2                    has-patch  246 0.32325887
## 3      has-patch needs-refresh   47 0.06176084
## 4      has-patch needs-testing   44 0.05781866
## 5                  needs-patch  266 0.34954008
## 6 needs-patch needs-unit-tests   46 0.06044678
## 7            reporter-feedback   57 0.07490145
#Graphics
barplot(Keywords$Freq,
        xlab = "Tickets", 
        ylab = "Keywords", 
        main="Frequency of Tickets Keywords", 
        col = rainbow(13),
        legend.text = Keywords$Var1,
        horiz=TRUE,
        args.legend = list("bottom", bty="n", cex = 1))

2.2 Reporter Members Analysis Report The groups of Reporters:

RankAR #Ranking the most active reporters
##                Var1 Freq
## 14      johnbillion   72
## 1           afercia   53
## 15  johnjamesjacoby   47
## 29 sebastian.pisula   43
## 9          flixos90   42
## 5   danielbachhuber   39
## 16       karmatosed   33
## 27           rmccue   27
## 31 subrataemfluence   25
## 34      westonruter   24
## 21            nacin   23
## 7           desrosj   22
## 10  garrett-eclipse   22
## 22           pbiron   22
## 3            azaozz   21
## 6              dd32   21
## 4      boonebgorges   19
## 23            pento   17
## 26            ramiy   17
## 28           scribu   17
## 2           anevins   16
## 8          dshanske   15
## 11            helen   15
## 13          iseulde   15
## 18      markjaquith   15
## 19        melchoyce   15
## 30   SergeyBiryukov   15
## 32       swissspidy   15
## 33        tazotodua   15
## 25        Presskopp   14
## 12     henry.wright   13
## 17           mark-k   12
## 20         mukesh27   12
## 24    peterwilsoncc   11
RankMR #Ranking the Median active reporters
##              Var1 Freq
## 8       ericlewis    8
## 10        iandunn    8
## 14     jeremyfelt    8
## 18    joostdevalk    8
## 20         kjellr    8
## 25         netweb    8
## 26      pavelevap    8
## 28     programmin    8
## 1       alexvorn2    7
## 3            andy    7
## 7          eclare    7
## 9     Frank Klein    7
## 13       jdgrimes    7
## 27        pbearne    7
## 32     soulseekah    7
## 33 wonderboymusic    7
## 35           xkon    7
## 6             dlh    6
## 12        Ipstenu    6
## 17 jonoaldersonwp    6
## 19         jorbin    6
## 21        kraftbj    6
## 24          mor10    6
## 31      smerriman    6
## 34    WraithKenny    6
## 36          yoavf    6
## 2       allancole    5
## 4          BjornW    5
## 5    ComputerGuru    5
## 11          imath    5
## 15       jipmoors    5
## 16      joemcgill    5
## 22     mikejolley    5
## 23     milana_cap    5
## 29          Rarst    5
## 30          rnaby    5
Ranklr[c(1:30),c(1:2)] #Ranking the 30 less active Reporters
##                  Var1 Freq
## 29           allendav    3
## 56              arena    3
## 138      chetan200891    3
## 140 chinteshprajapati    3
## 186          danieltj    3
## 201 Denis-de-Bernardy    3
## 210         diddledan    3
## 214           dimadin    3
## 234        dotancohen    3
## 249             duck_    3
## 288           fliespl    3
## 299             GaryJ    3
## 342       hlashbrooke    3
## 362          ishitaka    3
## 381   jason_the_adams    3
## 385         javorszky    3
## 411          joehoyle    3
## 423          joyously    3
## 428       jtsternberg    3
## 451           keraweb    3
## 452  ketanumretiya030    3
## 462            knutsp    3
## 468         krogsgard    3
## 552         mehulwpos    3
## 565      MikeHansenMe    3
## 575         Mista-Flo    3
## 580          mnelson4    3
## 585         monikarao    3
## 595            mrwweb    3
## 599           mt8.biz    3
#Grafic of Top 5 active Reporters
par(mfrow=c(1,3))
barplot(RankAR$Freq[1:5],
        names.arg=RankAR$Var1[1:5],
        horiz=TRUE,
        xlab="Tickets per Reporter",
        ylab="Reporters",
        col=rainbow(5),
        main="Top 5 active Reporters",
        border="blue",
        legend.text = RankAR$Var1[1:5],
        args.legend = list("bottom", bty="n", cex = 0.8))#Top 5 Active Reporters

barplot(RankMR$Freq[1:5],
        names.arg=RankMR$Var1[1:5],
        horiz=TRUE,
        xlab="Tickets per Reporter",
        ylab="Reporters",
        col=rainbow(5),
        main="Top 5 Median Reporters",
        border="blue",
        legend.text = RankMR $Var1[1:5],
        args.legend = list("bottom", bty="n", cex = 0.7))#Top 5 Median Reporters

barplot(Ranklr$Freq[1:5],
        names.arg=Ranklr$Var1[1:5],
        horiz=TRUE,
        xlab="Tickets per Reporter",
        ylab="Reporters",
        col=rainbow(5),
        main="Top 5 Alien Reporters",
        border="blue",
        legend.text = Ranklr$Var1[1:5],
        args.legend = list("bottom", bty="n", cex = 0.7))#Top 5 Less acctive Reporters

2.3 Owner Members Analysis Report: The groups of Owners:

RankAO#Ranking the most active Owners
##              Var1 Freq
## 6  SergeyBiryukov   67
## 2        audrasjb   18
## 5     johnbillion   16
## 3       chriscct7   15
## 4       joemcgill   14
## 1 adamsilverstein   13
RankMO#Ranking the Median Owners
##              Var1 Freq
## 4         desrosj    9
## 7           nacin    8
## 1         afercia    7
## 3    boonebgorges    7
## 8           pento    7
## 2          azaozz    6
## 5        flixos90    6
## 6      jeremyfelt    6
## 9          rmccue    6
## 10          westi    6
## 11    westonruter    5
## 12 wonderboymusic    5
RanklO[c(1:30),c(1:2)]#Ranking the 30 less active Owners
##                 Var1 Freq
## 12              dd32    3
## 31          joehoyle    3
## 86          tz-media    3
## 93              xkon    3
## 10     davidakennedy    2
## 14          dswebsme    2
## 18         ericlewis    2
## 20   garrett-eclipse    2
## 23       ianbelanger    2
## 26           iseulde    2
## 29           jnylen0    2
## 34       joostdevalk    2
## 38           kapeels    2
## 45       markjaquith    2
## 75        schlessera    2
## 77          sorich87    2
## 82      technosailor    2
## 88      valendesigns    2
## 1      aaroncampbell    1
## 2           adam3128    1
## 3        allisonplus    1
## 4              antpb    1
## 5           bassgang    1
## 6  bhargavbhandari90    1
## 7            birgire    1
## 8    danielbachhuber    1
## 9       danielpataki    1
## 11     davidjlaietta    1
## 13      DrewAPicture    1
## 15             duck_    1
#Grafic of Owners
par(mfrow=c(1,3))
barplot(RankAO$Freq[1:5],
        names.arg=RankAO$Var1[1:5],
        horiz=TRUE,
        xlab="Tickets per owner",
        ylab="Owners",
        col=rainbow(5),
        main="Top 5 active Owners",
        border="blue",
        legend.text = RankAO$Var1[1:5],
        args.legend = list("bottom", bty="n", cex = 0.7))#Top 5 Active Owners

barplot(RankMO$Freq[1:5],
        names.arg=RankMO$Var1[1:5],
        horiz=TRUE,
        xlab="Tickets per owner",
        ylab="Owners",
        col=rainbow(5),
        main="Top 5 median Owners",
        border="blue",
        legend.text = RankMO$Var1[1:5],
        args.legend = list("bottom", bty="n", cex = 0.7))#Top 5 Median Owners

barplot(RanklO$Freq[1:5],
        names.arg=RanklO$Var1[1:5],
        horiz=TRUE,
        xlab="Tickets per owner",
        ylab="Owners",
        col=rainbow(5),
        main="The 5 less active Owners",
        border="blue",
        legend.text = RanklO$Var1[1:5],
        args.legend = list("bottom", bty="n", cex = 0.7))#Top 5 Less Active Owners

2.4 Comparation of groups by Reporters and Owners:

WPCGroupR #Group Types of Reporters
##         CoreGroupR MembersTotalR     PropMR
## 1        Reporters          1028 0.50765432
## 2 Active Reporters            34 0.01679012
## 3 Median Reporters            36 0.01777778
## 4  Alien Reporters           927 0.45777778
WPCGroupO #Group Types of Owners
##      CoreGroupO MembersTotalO     PropMO
## 1        Owners           116 0.50877193
## 2 Active Owners             6 0.02631579
## 3 Median Owners            12 0.05263158
## 4  Alien Owners            94 0.41228070
par(mfrow=c(1,2))
barplot(WPCGroupR$MembersTotal,
        names.arg=WPCGroupR$MembersTotal,
        xlab="Reporter Groups",
        ylab="Total Members",
        legend=WPCGroupR$CoreGroupR,
        col=rainbow(8),
        main="Reporters per Groups",border="red")

barplot(WPCGroupO$MembersTotal,
        names.arg=WPCGroupO$MembersTotal,
        xlab="Owners Groups",
        ylab="Total Members",
        legend=WPCGroupO$CoreGroupO,
        col=rainbow(8),
        main="Owners per Groups",border="red")

3. POTENTIAL INDICATORS:

Hypothesis: \(PropMo = PropMR\)

Means: percentual of tickets into any subgroups into Owner Groups are similar thand percentual of tickets into any subgroups into Reporter Groups

Where PropMo is the proportion of tickets per active, median, and alien groups of Owners, and PropMR is the proportion of tickets per active, median, and alien groups of Reporters.

Hypothesis test:

similarityOR<-ifelse(PropMO>PropMR,1-(PropMO-PropMR),1-(PropMR-PropMO))
similarityOR<-mean(similarityOR)
similarityOR
## [1] 0.9772515

Thus, Mode_Agents_Rules indicator is = similarityOR.

4. FINAL CONCLUSIONS:

There are more Reporters than Owners. Maybe because to report a problem in the WorPress Platform is easear than fix a problem. There are a two members, who can been considers the super active menbers of WP Community: SergeyBiryukov and johnbillion. SergeyBiryukov (number 1 of owners) was reponsable to 67 tickets, and also he report 15 Tickets (23o position of reporters). johnbillion (number 1 of owners) reports 72 tickets, and also was responsable for 16 tickets (3o position of owners).

The hypothesis test proof (result: 0.9772515) indicates that there are a strong coesion into formals groups of core: owners and reporters.

Despite the most of tickets have no owner, there are not so many urgent issues. Around 93% of tickets are classified as Severity “normal”, and 97% are classified as Priority “Normal”.

According with this description, are recommended analyse in a bivariable description the folow variables: