Background

Misinformation has the power to create contention, influence public opinion, undermine democracy, and uplift malicious or ignorant parties. Its recent momentum has given reason to investigate the quality and correlations of news on popular sites like Facebook.

fbdata$activity_count = fbdata$share_count + fbdata$reaction_count + fbdata$comment_count
summary(fbdata)
##    account_id           post_id            Category             Page          
##  Min.   :6.232e+10   Min.   :5.511e+14   Length:2282        Length:2282       
##  1st Qu.:1.145e+14   1st Qu.:1.247e+15   Class :character   Class :character  
##  Median :1.841e+14   Median :1.291e+15   Mode  :character   Mode  :character  
##  Mean   :1.867e+14   Mean   :3.300e+15                                        
##  3rd Qu.:3.469e+14   3rd Qu.:1.541e+15                                        
##  Max.   :4.401e+14   Max.   :1.015e+16                                        
##                                                                               
##    Post.URL         Date.Published      Post.Type            Rating         
##  Length:2282        Length:2282        Length:2282        Length:2282       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##     Debate           share_count      reaction_count     comment_count     
##  Length:2282        Min.   :      1   Min.   :     2.0   Min.   :     0.0  
##  Class :character   1st Qu.:     24   1st Qu.:   149.0   1st Qu.:    37.0  
##  Mode  :character   Median :     96   Median :   545.5   Median :   131.5  
##                     Mean   :   4045   Mean   :  5364.3   Mean   :   516.1  
##                     3rd Qu.:    739   3rd Qu.:  2416.8   3rd Qu.:   390.2  
##                     Max.   :1088995   Max.   :456458.0   Max.   :159047.0  
##                     NA's   :70        NA's   :2          NA's   :2         
##  activity_count     
##  Min.   :      9.0  
##  1st Qu.:    256.8  
##  Median :    881.0  
##  Mean   :   9975.2  
##  3rd Qu.:   3855.5  
##  Max.   :1704500.0  
##  NA's   :70
liberal <- subset(fbdata, Category == "left")
conservative <- subset(fbdata, Category == "right")
nonpartisan <- subset(fbdata, Category == "mainstream")

Results

p <- ggplot(data=fbdata, mapping = aes(x=Rating, y=activity_count, color=Category)) +
  geom_point(na.rm=T, size=3, shape=4, alpha = .5, position = "jitter")+
  scale_x_discrete(limits = c("no factual content", "mostly false", 
                              "mixture of true and false","mostly true"),
                   labels = c("No Factual \nContent", "Mostly False", 
                              "Mixture of True \nand False","Mostly True"))+
  scale_color_manual(name = "Partisanship",
                     values=c('blue','black', 'red'),
                     limits = c("left","mainstream","right"),
                     labels = c("Liberal", "Nonpartisan", "Conservative"))+
  ggtitle("The Spread of Facebook Misinformation")+
  ylab("Sum of Shares, Comments, and Reactions")+
  xlab("Truth Rating")+
  ylim(0, 150000)
ggplotly(p)
# Plot liberal data 
l <- ggplot(data=liberal, mapping = aes(x=Rating, y=activity_count, shape=Post.Type)) +
  geom_point(na.rm=T, size=3, alpha = .5, color="blue", position = "jitter")+
  scale_x_discrete(limits = c("no factual content", "mostly false", "mixture of true and false","mostly true"),
                   labels = c("No Factual \nContent", "Mostly False", "Mixture of True \nand False","Mostly True"))+
  ggtitle("The Spread of Facebook Misinformation - Liberal Media")+
  ylab("Sum of Shares, Comments, and Reactions")+
  xlab("Truth Rating")+
  ylim(0, 150000)
ggplotly(l)
# Plot conservative data 
c <- ggplot(data=conservative, mapping = aes(x=Rating, y=activity_count, shape=Post.Type)) +
  geom_point(na.rm=T, size=3, alpha = .5, color="red" ,position = "jitter")+
  scale_x_discrete(limits = c("no factual content", "mostly false", "mixture of true and false","mostly true"),
                   labels = c("No Factual \nContent", "Mostly False", "Mixture of True \nand False","Mostly True"))+
  ggtitle("The Spread of Facebook Misinformation - Conservative Media")+
  ylab("Sum of Shares, Comments, and Reactions")+
  xlab("Truth Rating")+
  ylim(0, 150000)
ggplotly(c)
# Plot mainstream data 
m <- ggplot(data=nonpartisan, mapping = aes(x=Rating, y=activity_count, shape=Post.Type)) +
  geom_point(na.rm=T, size=3, alpha = .4, color="black" ,position = "jitter")+
  scale_x_discrete(limits = c("no factual content", "mostly false", "mixture of true and false","mostly true"),
                   labels = c("No Factual \nContent", "Mostly False", "Mixture of True \nand False","Mostly True"))+
  ggtitle("The Spread of Facebook Misinformation - Nonpartisan Media")+
  ylab("Sum of Shares, Comments, and Reactions")+
  xlab("Truth Rating")+
  ylim(0, 150000)
ggplotly(m)