16 min read

Zamach lipcowy na Twitterze - cześć 1

W ostatnich dniach głośno w Polsce o zjawisku astroturfingu. Nie chciałem, ale w gruncie rzeczy to fajna okazja, by pokazać nie tyle samo zjawisko - o tym już sporo napisano - ale jak bada się dane z Twittera. W tym i pewnie jeszcze kilku następnych notatkach, pokaże na przykładzie kilku wzbudzających emocje dyskusji na Twitterze, metody stosowane do badania danych z Twittera. Najpierw jednak kilka zdań tytułem wstępu.

W drugiej połowie lipca na polskim Twitterze miały miejsca akcje protestu przeciw rządowym ustawom reformującym sądownictwo. Protestujący używając kilkunastu hashtagów publikowali tweety w których wyrażali swoją niezgodę na uchwalone przez Sejm trzy ustawy. Ostatecznie Prezydent Andrzej Duda zawetował dwie z nich, a jedną podpisał. Akcja protestacyjna spotkała się z zarzutami o astroturfing. Prawica zarzuciła lewicy, że protesty w internecie są inspirowane i tworzy się wrażenie, że są inicjatywą oddolną, naturalnym odruchem sprzeciwu społeczeństwa. Na Twitterze w dużych ilościach publikowano tweety z hashtagami i treściami sprzeciwiającymi się #astroturfingowi.

Pojawiło się kilka kilka publikacji zarówno o samych protestach jak i o proteście przeciw astroturfingowi. Głośnym echem odbiła się analiza Polish Astroturfers Attack… Astroturfing autorstwa Bena Nimmo z lewicowego think tanku Atlantic Council. Autor analizuje w niej zjawisko astroturfingu w Polsce na podstawie akcji przeciw astroturfingowi. Analiza Nimmo jest przeprowadzona zgodnie z regułami i narzędziami jakimi posługują się data scientists, a wnioskowanie na podstawie zaprezentowanych danych - jest poprawne. Są jednak z nią dwa problemy, które każdemu data scientists zapalają czerwone światełko. Nimmo:

  • nie publikuje danych, które analizuje, chociaż są to dane, które były dostępne publicznie.
  • badając zjawisko astroturfingu w Polsce, nie analizuje innych hashtagów, a szczególnie tych, które wskazywała prawica jako przykład kampanii astroturfingowej.

Podstawową zasadą nauki na całym świecie jest transparentność i publikowanie danych, które pozwolą innym naukowcom sprawdzić wyniki badań. Bez tego praca badawcza - z naukowego punktu widzenia - jest bezwartościowa. Możemy najwyżej wierzyć, lub nie w jej wyniki.

Badanie tylko wycinka zjawiska jest dopuszczalne, ale w tym wypadku nie tylko przeczy zdrowemu rozsądkowi jak i etyce. To mniej więcej tak, jakbym badając zjawisko dyskryminacji kobiet muzułmanek w Europe Zachodniej, zrobił badanie na podstawie opinii mężczyzn z Arabii Saudyjskiej. :-)

Warty odnotowania jest też tekst Beaty Biel pt. Ludzie, boty i agent zero. Cała Polska na tropie astroturfingu. Autorka korzysta z danych Nimmo, ale też opisuje szerzej całe zjawisko astroturfingu. Zwraca też uwagę na to, że jest to zjawisko niebezpieczne dla demokracji z czym rzeczywiście trudno się nie zgodzić. Niestety, miejscami tekst Beaty, ma tą samą chorobę co analiza Nimmo: pokazuje obraz tylko jednej strony. Tymczasem nie przesądzając jak to jest, wystarczyło chociażby spojrzeć na tajmlajny kilku kolegów dziennikarzy, by mieć gotowe przykłady nadaktywnych i ideologicznie zaangażowanych kont na Twitterze, które do badania astroturfingu pasowałyby jak ulał.

W analizie poniżej (i pewnie w następnych wpisach) nie stawiam sobie żadnych pytań czy hipotez. Nie zakładam, że udowodnię, że mamy (lub nie) do czynienia ze zjawiskiem astroturfingu. Chcę po prostu przyglądnąć się aktywności i treściom oraz kontom, które były aktywne w dniach protestu.

Drugi cel jaki mi przyświeca to edukacja. Problemem polskiego dziennikarstwa jest to, że dziennikarze nie potrafią analizować danych. Dziennikarstwo danych, z małymi wyjątkami jak np. BiqData Agory skończyło się na tworzeniu grafik przy pomocy gotowych narzędzi i map na Google Maps. To poziom mniej więcej sprzed 10 lat na świecie.

Wiem, że to trochę naiwne, ale może pokazanie co można wyciągnąć z pozornie niewiele mówiących danych, skłoni cześć osób, do samodzielnej nauki dziennikarstwa danych, a tym sam, da im narzędzie, które jest obecnie niezbędne dla każdego dziennikarza, jak komputer z internetem i smartfon :-)

Tyle tytułem wstępu, przejdźmy do zasadniczej analizy.

Dane

Dane pochodzą z API Twittera i były pobierane pomiędzy 22 i 24 lipca 2017 roku. Na końcu wpisu znajdziecie link do pliku csv, tak że każdy będzie mógł je sobie pobrać by je zbadać albo wytapetować nimi swój pokój :-)

W dniu prezydenckiego weta ściągnąłem tweety opublikowane z 14-ma różnymi hashtagami. Właściwie zrobiłem to dla celów historyczno - edukacyjnych. Po prostu często ściągam dane pokazujące różne zjawiska, by móc na nich próbować rożne techniki czy wykorzystywać je w pracy ze studentami. Z tych, które ściągnąłem dzisiaj zajmiemy się tweetami w których użyto hashtagu #zamachlipcowy. Zbadamy jedynie konta w nich występujące; nie będziemy “tykali” treści tweetów. Do analizy użyłem skryptów napisanych w języku R, ale równie dobrze można ją przeprowadzić na przykład w Pythonie. Ba większość wykonywanych operacji można zrobić nawet w Excelu. Skryptów nie publikuje bo dla osób, które nie znają R, albo nie potrafią programować są zupełnie niezrozumiałe. Dla tych, którzy znają R operacje, które tu wykonuje nie powinny stanowić żadnego problemu. Jeśli jednak kogoś interesuje - na przykład zaczyna swoją przygodę z R - i chciałby zobaczyć jak się niektóre rzeczy robi, to słówko w komentarzach i udostępnię.

Twitter dla każdego tweeta udostępnia kilkanaście różnych danych (dokładnie 16). Pierwszą rzeczą w analizie jest poznanie danych. Musimy znać odpowiedź na kilka pytań:

  • ile mamy danych?
  • w jakim okresie czasu zostały opublikowane?
  • co zawierają zmienne? (kolumny w tabeli)

Gdy to już będziemy wiedzieć, to zrobimy kilka prostych statystyk, by głębiej zaglądnąć w dane.

No to do roboty.

wstępna eksploracja

Nasze dane to tzw. ramka danych (w uproszczeniu tabela) składająca się z 16 kolumn i 66337 wierszy. Każda kolumna przechowuje wartości zmiennej właściwej dla tej kolumny. Na przykład kolumna o nazwie “text” zawiera teksty wszystkich tweetów. Każdy wiersz zawiera jeden tweet, czyli wniosek z tego, że mamy 66337 tweetów.

Tweety zostały opublikowane pomiędzy 2017-07-15 11:55:35 a 2017-07-24 16:51:50. Tu pierwszy wniosek:

z danych, które mamy wynika, że pierwszy tweet z hashtagiem “#zamachlipcowy” ukazał się 2017-07-15 11:55:35

Zobaczmy go:

Widzimy, że pierwsza pozycja w naszych danych to…retweet, a to oznacza, że

na 100 proc. nie mamy całości danych.

Akurat w tej analizie nie ma to większego znaczenia, bo nie szukamy mitycznego “agenta zero” :-). Warto jednak w takiej sytuacji zastanowić się dlaczego nie mamy wszystkich danych? W tym konkretnym przypadku jest to spowodowane tym, że Twitter przez API udostępnia dane z mniej więcej ostatnich 7 dni. Ja ściągałem je 22 i 24 lipca, a więc dane np. z 14 lipca mógł mi już Twitter nie udostępnić.

Przyglądnijmy się teraz jakie dane udostępnia nam Twitter i co możemy się dowiedzieć o każdym z ponad 60 tysięcy tweetów jakie będę analizował.

## Classes 'tbl_df', 'tbl' and 'data.frame':    1 obs. of  16 variables:
##  $ text         : chr "RT @jedlina_olgierd: #Polska2017 #PZPRPiS #ZamachLipcowy https://t.co/gs9ww3MZwt"
##  $ favorited    : logi FALSE
##  $ favoriteCount: num 0
##  $ replyToSN    : chr NA
##  $ created      : POSIXct, format: "2017-07-15 11:55:35"
##  $ truncated    : logi FALSE
##  $ replyToSID   : chr NA
##  $ id           : chr "886162317389565952"
##  $ replyToUID   : chr NA
##  $ statusSource : chr "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>"
##  $ screenName   : chr "dobson733"
##  $ retweetCount : num 41
##  $ isRetweet    : logi TRUE
##  $ retweeted    : logi FALSE
##  $ longitude    : chr NA
##  $ latitude     : chr NA

Nie jest to może najpiękniejsza prezentacja danych, ale wygodna, bo pokazuje nam całą zwartość wiersza w naszej tabeli. Łatwo też z tego odczytać kilka informacji. Pierwsza linijka jest - w tym przypadku mało ważna - następne zawierają 3 kolumny. W pierwszej jest nazwa zmiennej, w drugiej jej typ, a w trzeciej wartość zmiennej.

  • text - jest zmienną znakową i zawiera treść tweeta
  • favorited jest zmienną logiczną (przyjmuje dwie wartości: TRUE/FALSE) i mówi czy tweet/retweet był dodany przez kogoś do Ulubionych (favorites)
  • favoritedCount to zmienna numeryczna. Jej wartość mówi ile razy tweet/retweet został dodany do ulubionych
  • replyToSN - to zmienna znakowa, która mówi o nazwie konta(SN) na którego tweeta jest to odpowiedź.
  • created - to zmienna typu data/czas i informuje kiedy dokładnie tweet został opublikowany
  • truncated - kompletnie nieważna. Informuje czy tweet był skracany.
  • replyToSID - znakowa, która mówi na jaki ID tweeta jest to odpowiedź.
  • id - to unikalny i niepowtarzalny numer tweeta lub retweeta.
  • replyToUID - numer użytkownika, na którego tweet jest to odpowiedź.
  • statusSource - adres url klienta (programu) jaki był użyty do wysłania tweeta.
  • screenName - znakowa. Nazwa autora tweeta/retweeta
  • retweetCount - numeryczna. Ile razy tweet był retweetowany
  • isRetweet - logiczna. Mówi czy jest to retweet.
  • retweeted - logiczna. Informuje czy tweet był retweetowany
  • longitude, latitude - współrzędne geograficzne (jeśli udostępnione przez autora) miejsca z którego opublikowano tweeta.

Analiza

Wiemy już sporo o danych, czas więc próbować wyciągać informacje :-) Będziemy chcieli się dowiedzieć:

  • ile jest tweetów a ile retweetów?
  • jak rozkładała się w czasie aktywność tweetów i retweetów?

Tweety i retweety

Jeśli uważnie przeczytałeś opis zmiennych występujących w naszych danych, to być może Twoją uwagę zwróciła zmienna isRetweet. Mówi ona czy dana pozycja jest retweetem (wartość TRUE) czy tweetem (wartość FALSE). W pierwszym tweecie powyżej ma ona wartość TRUE, a więc jest to retweet. My chcemy się dowiedzieć ile z 66337 pozycji w naszej ramce jest tweetami, a ile retweetami? Zsumujmy więc ile razy zmienna isRetweet ma wartość TRUE (retweet) a ile FALSE(tweet).

## 
## FALSE  TRUE 
## 12900 53437

Kolejny wniosek:

mamy sytuację w miarę normalną bo mniej więcej mamy 4 razy więcej retweetów niż tweetów.

Czas aktywności

Zobaczmy jeszcze jak wygląda rozkład w czasie:

  • wszystkich aktywności
  • tweetów
  • retweetów

Wykorzystamy do tego szeregi czasowe. Trochę upraszczając to ciąg dat (często zawierających również godzinę czy minutę) oraz przypisanych im wartości - w naszym wypadku będzie to liczba aktywności.

Czyli co zrobimy, a raczej co zlecimy komputerowi, by zrobił dla nas?

Pogrupujemy dane według daty publikacji zawartej w zmiennej created i dla każdej daty (np. dnia, godziny) policzymy ile było wszystkich aktywności, tweetów czy retweetów. Zwróć uwagę, że dane pogrupowaliśmy wg. godzin, czyli “zaokrągliliśmy” wartość zmiennej created do pełnych godzin. Wszystko to brzmi groźnie, ale - wierz mi - to proste. Całość wyświetlimy w interaktywnym wykresie.

A co!

Interaktywnym nie dlatego, że chcemy tu zaszpanować, tylko dlatego, że dzięki temu można szybko zoomować - czyli przyglądać się dokładniej danym w różnych okresach czasu.

Czary-mary, hokus-pokus i buum

Pierwszy rzut oka i widać wyraźną regularność. Najedź myszką w dowolnym punkcie linii na wykresie, a wtedy w prawym górnym roku zobaczysz dokładną godzinę i liczbę kont, które użyły hashtagu #zamachlipcowy.

Pierwszy, dużo mniejszy, pik jest prawie każdego dnia około godziny 10. Drugi przeważnie po 21.

Drugi rzut oka :-). Zauważ, że

częstoliwość z każdym dniem spada.

Pytanie dlaczego? Naturalne wypalenie się hasztaga? Inne hashtagi? Spróbujemy później coś jeszcze na ten temat się dowiedzieć.

Przyglądnijmy się teraz bliżej aktywnościom i powiększmy zakres danych, by zobaczyć szczegóły. Na pierwszy ogień weźmy dzień, gdzie był największy pik czyli 16 lipca. Suwaki pod wykresem przesuwamy jeden w prawo, drugi w lewo by “zoomować”" zakres.

Największe skoki mamy 16 lipca między 14 a 15 i w pozostałe dni. Drugi pik, ale już nie tak duży jest w godzinach wieczornych między 20 a 21.

Może warto zobaczyć trochę dokładniej te godziny pików? Tak, ale do tego potrzebne są dane z dokładnością minutową (lub np. 5, 10 minutową). Zobaczymy, może później się tym zajmiemy. Teraz zobaczymy czy nie ma różnic pomiędzy intensywnością w tweetowaniu i retweetowaniu.

Ciekawy ten wykres, prawda?

Ewidentnie widać, że

wzrost retweetów jest tuż po wzroście tweetów. Wniosek? Po pierwsze tematyka tweetów musiałą być interesująca, a po drugie autorami tweetów musiały być osoby znane na Twitterze, albo przynajmniej grupie, która retweetowała. Stawiałbym, że to influencerzy, przynajmniej w tym środowisku.

Kolejny wniosek, ale to przynajmniej na razie tylko hipoteza i do tego trochę z palucha :-):

istnieje korelacja pomiędzy liczbą tweetów, a liczbą retweetów. To znaczy gdyby nie było codziennie “powtórzeń” tweetów, to temat szybko by zdechł.

By to potwierdzić lub zaprzeczyć, trzeba będzie sprawdzić czy są konta na Twitterze, które tweetowały ten hashtag co najmniej raz dziennie, przez kilka dni.

Trzeci wniosek:

potwierdza się teza o wygaszaniu się tematu wraz z upływem dni. 24 lipca liczba retweetów prawie zrównała się z liczbą tweetów, co oznacza, że odzew był już słabiutki.

Z pewnością warto sprawdzić jak wyglądała aktywność w przeciągu tych 9 dni zarówno często piszących autorów tweetów jak i tych, co jedynie często retweetują. Hipoteza: może to grupa, która robi buzz?. Byłby to kamyczek dla tych, którzy wierzą, że to działania astroturfingowe :-)

Konta

Sporo już wiemy o popularności hasthagu, wiemy ile razy go publikowano, kiedy były okresy największej aktywności. Mamy już trochę rzeczy do - być może - późniejszego pogłębienia. Czas trochę zanurkować w dane i sprawdzić:

  • ile osób tak naprawdę uczestniczyło w promowaniu hashtagu #zamachlipcowy.
  • które z tych osób były najaktywniejsze?
  • jak wyglądała aktywność badanych kont czyli trochę statów na temat jak często tweetowano lub retweetowano.

To na początek, później zanurkujemy jeszcze głębiej.

Liczbę osób stosunkowo łatwo obliczyć. Wystarczy, że zlecimy komputerowi by policzył nam ile jest unikalnych nazw kont w naszej ramce danych. Nazwa konta jest w zmiennej screenName wiec abrakadabra, czary mary, komputerze ile jest takich unikalnych nazw?

## [1] 11044

Moglibyśmy przyjąć, że średnio jedno konto wysłało albo retweetowało 6 tweetów. Moglibyśmy, ale to by było pójście na łatwiznę… dozwolone, ale przecież niewiele nam to mówi, poza tym, że to może tyle ile mieszka w dwóch, trzech osiedlach większego miasta :-).

Ważne jest by poznać te konta. Jak były aktywne? Jakie są różnice w aktywności między kontami? Poszukamy też to co statystycy i dziennikarze lubią najbardziej, czyli ekstrema (najwięcej, najmniej) itp.

Najlepiej będzie jeśli: dla każdego z unikalnych kont, policzymy ile razy wykonało jakąś akcję (tweet/retweet). Poznamy dzięki temu liderów i dowiemy się jak często twittowali/retweetowali. Zobaczymy też obraz aktywności całej grupy - tych aktywnych, średnio aktywnych i tych co to dużo się nie przyłożyli.

Najpierw czołówka (Top50) czyli unikalne konta uporządkowane według liczby aktywności w badanym okresie.

screenName n
SMDBialystok 849
MichalBoni 471
freedom1970a 335
WilkWojciech 315
qsylwiaq 313
Ilonaw8 301
PO_Lodzkie 286
pis_u 280
PO_Dolny_Slask 253
Polskawruinie1 238
Platforma_org 229
wcdcpot 229
renatagawlow 224
julinka2011 210
IrekJanek 208
PO_Lubelskie 200
WitoldGlogowski 200
ALetkiewicz 198
PO_Wielkopolska 198
GDrobiszewski 197
WorstSortOfPole 196
GlogowskiWitolt 194
TomekNo80240174 194
sibinska 187
otoja1968 185
cycleszek1 181
joanna6767 174
waksmu 173
Alazenska 169
Batti198103 165
lukasztargonski 163
OliwiaGordon 163
Kom_Obr_Dem_Int 159
ARybkiewicz 158
PORPBialystok 158
ZNikitorowicz 158
m_magdalenko 157
WENDY87386148 157
GrzadkaAgata 156
MarekLapinski 150
PodlaskiePO 142
wlkarpinski 140
SMD_Katowice 132
ArkadiuszMyrcha 130
chriss19720722 130
astonhedge 129
swietokrzyskiPO 129
TomBucz 128
a_warzynska 120
GMalkowska 120
MarkielHelcia 120

Znowu mamy kilka wniosków.

W pierwszej 50 sporo jest kont wskazujących na powiązanie z Platformą obywatelską. Jest też kilka kont o mocno podejrzanych - na pierwszy rzut oka - nazwach np. “chriss19720722”, “WENDY87386148”, “TomekNo80240174”.

Na pewno jednym i drugim trzeba się będzie przyglądnąć, ale na razie odkładamy je na bok.

By trafić do naszego TOP100 trzeba było wysłać co najmniej 84 tweety albo retweety.

Zobaczmy jeszcze statystyczną piątkę, czyli 5 podstawowych statystyk, które robi się w analizie eksploracyjnej, zwaną też “5 Tukeya”

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   2.000   6.007   4.000 849.000

Te liczby pokazują nam jak rozkładają się wartości aktywności wśród naszych kont. Minimum i maksimum chyba nie trzeba nikomu tłumaczyć. Za średnią przyjmiemy raczej medianę - czyli 2 aktywności. “1st Qu”, to po polsku 1 kwartyl (25 proc. danych).

Interpretujemy to w ten sposób, że

mniej niż 25 proc. kont wysłało 1 tweet. Z drugiej strony możemy też powiedzieć, że 75 proc. kont wysłało więcej niż 1 tweet/retweet :-)

Podobnie z 3 kwantylem (3rd Qu.),

25 proc. kont wysłało co najmniej 4 tweety/retweety i odwrotnie: 75 proc. kont wysłało mniej niż 4 tweety/retweety.

Wniosek: ewidentnie widać, że jest sporo kont, które być może nie były bardzo aktywne, ale w swojej masie stanowią znaczący procent aktywności. Może to świadczyć, że to był autentyczny, oddolny ruch niektorych użytkowników Twittera., nie mający wiele wspólnego z astroturfingiem. Kamyczek do ogródka przeciwników tezy o astroturfingu :-)

Zobaczmy jeszcze, jak to będzie wyglądać na wykresie. Użyjemy histogramu, bo to najodpowiedniejszy wykres do takiego typu danych. Wyfiltrowałem tylko te konta, które opublikowały mniej niż 50 tweetów/retweetów. Dlaczego? Bo dzięki temu “powiększyliśmy” dane i możemy przyglądnąć się rozkładowi aktywności w grupie, która może nie często publikowała, ale za to było tych kont zdecydowana większość.

Z histogramu możemy wyciągnąć kilka fajnych wniosków.

w badanym okresie było ponad 5 tysięcy kont, które tylko raz użyły hashtagu #zamachlipcowy. Jeśli dodamy do tego tych co dwa (prawie 2 tysiące) i trzy (prawie tysiąć) razy publikowali, to mamy grupę 8 tysięcy twitterowiczów, czyli 72.94 procent wszystkich unikalnych kont!. Znowu kamyczek do ogródka przeciwników tezy o astroturfingu.

A jak wygląda czołówka wśród tych co napisali najwięcej tweetów (bez retweetów)?

Voila:

## Selecting by n
screenName n
astonhedge 128
Polskawruinie1 114
MichalBoni 106
CzerwonePotwork 90
sibinska 83
altymis 80
ALetkiewicz 77
weremiej 77
BaginskiAw 76
PaweArabski 74
MostowyMich 69
MJanyska 65
kasinka11 63
MarioAwario 61
freedom1970a 58
GosiaNiemczyk 58
m_magdalenko 57
Platforma_org 56
WilkWojciech 56
qsylwiaq 54
PJaksim 53
ElizaChojnacka 52
Kom_Obr_Dem_Int 49
PO_Dolny_Slask 48
PO_Lodzkie 47
MirekVoice07 46
e_radziszewska 45
kuleta_radek 45
joanna4626 44
WorstSortOfPole 44
DariuszFirma 42
KrzysztofBrejza 42
Phil_Backensky 42
AgnieszkaKusze2 41
Filut_z_PragiN 41
kolter_hugh 41
MelanieRaczek 41
GDrobiszewski 39
kr_szumilas 38
danpio 37
falstafiku 37
KaczmarekSlawek 37
TowWiesiek 36
agatadiduszko 33
PrzemSkrzydlo 33
Smolik33 33
yogurcik 33
Bart_Wielinski 32
KODWielkopolska 32
oko_press 31
Teresa_Tereska_ 31
WojciechMincewi 31

Ciut inaczej.

@MichalBoni dobrze się napracował. Napisał sporo tweetów, ale też sporo retweetował. Podobnie konto @Polskawruinie. Trochę na łatwiznę poszło konto @SMDBialystok, które sporo, ale tylko retweetowało.

Zobaczmy jeszcze histogram.

Dopełnieniem niech będzie kolejna 5 Tukeya, która niewiele wnosi.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   2.000   4.164   4.000 128.000

No i na koniec wszystko to samo, tylko dla retweetów. Najpierw TOP, potem 5 Tukeya i histogram.

## Selecting by n
screenName n
SMDBialystok 847
MichalBoni 365
Ilonaw8 300
pis_u 280
freedom1970a 277
qsylwiaq 259
WilkWojciech 259
PO_Lodzkie 239
wcdcpot 229
renatagawlow 224
julinka2011 210
PO_Dolny_Slask 205
WitoldGlogowski 200
PO_Lubelskie 196
GlogowskiWitolt 194
IrekJanek 193
cycleszek1 177
TomekNo80240174 177
otoja1968 174
joanna6767 173
Platforma_org 173
Alazenska 169
PO_Wielkopolska 168
Batti198103 165
OliwiaGordon 163
lukasztargonski 162
ARybkiewicz 158
GDrobiszewski 158
PORPBialystok 158
WENDY87386148 157
ZNikitorowicz 157
WorstSortOfPole 152
waksmu 149
GrzadkaAgata 146
MarekLapinski 141
wlkarpinski 136
chriss19720722 130
SMD_Katowice 129
TomBucz 128
Polskawruinie1 124
ALetkiewicz 121
MarkielHelcia 120
swietokrzyskiPO 120
witold_zalewski 119
a_warzynska 117
Dana5Dana5 116
PodlaskiePO 115
molcia2 114
p_bartnicka 113
slawlo1 113

No i 5 Tukeya

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   1.000   5.692   4.000 847.000

Z tych trzech wykresów można zaryzykować tezę - chociaż trudno ją na podstawie tych danych udowodnić - że

mieliśmy do czynienia ze sporą aktywnością stosunkowo dużej liczby kont, które tweetowały lub retweetowały hashtag #zamachLipcowy

Uważny czytelnik zauważy zapewne, że coś te liczby się nie składają w te nieco ponad 8 tysięcy kont, które wykonały od jeden do trzech aktywności. To prawda, nie sumują się bo tak naprawdę to moglibyśmy jeszcze wydzielić grupy kont, które:

  • tylko tweetowały i nigdy nie retweetowały
  • tylko retweetowały i nigdy nie tweetowały
  • dodać do tego pozostałych

Teraz się tym nie zajmiemy, ale niewykluczone, że później to zrobimy.

Podsumowanie

Jak na razie ledwo musnęliśmy nasze dane. Trochę już wiemy np.:

  • ile było aktywności?
  • kiedy miała miejsce największa, a kiedy najmniejsza aktywność kont?
  • ile kont uczestniczyło?
  • jak wyglądał rozkład aktywności kont?
  • znamy konta, które były najbardziej aktywne?

Sporo, ale ja na podstawie tylko tych danych, nie odważyłbym się wyciągać ostatecznych wniosków. Musimy jeszcze trochę eksplorować, ale do tego potrzebne nam są dodatkowe dane o kontach. Zajmiemy się tym w następnym poście.

Każdego czytelnika zachęcam do trzech rzeczy:

  • uwag czy komentarzy pod postem ewentualnie kontaktowania się ze mną na Twitterze
  • ściągnięcia pliku danych z tweetami i retweetami jakie użyłem i samodzielnego eksplorowania.
  • podzieleniem się linkiem do mojego posta na Twitterze czy Facebooku.