INTRODUCERE ………………………….. ………………………….. ………………………….. …………………………….. [603989]

CUPRINS

INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. ………………………… 3
CAPITOLUL I . PROGRA MAREA ÎN R ………………………….. ………………………….. ………………………….. ………………… 5
GENERALITĂȚI ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. 5
OPERAREA ÎN R ………………………….. ………………………….. ………………………….. ………………………….. …………………………. 8
FUNCȚII ÎN R ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. . 17
REPREZENTĂRI GRAFICE ÎN R ………………………….. ………………………….. ………………………….. ………………………….. …….. 21
CAPITOLUL II. ELEMEN TE DE ANALIZĂ A UNEI REȚELEI SOCIALE ………………………….. …………………… 32
2.1 INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. ……………………. 32
2.2 CONCEPTU L DE REȚEA SOCIALĂ ………………………….. ………………………….. ………………………….. ………………………… 32
2.3 UNELTE DE ANALIZĂ A R EȚELELOR SOCIALE ………………………….. ………………………….. ………………………….. ……….. 42
2.4 COMPARAȚII ÎNTRE UNEL TE PENTRU REȚELE SO CIALE ………………………….. ………………………….. ………………………. 43
CAPITOLUL III. ANALI ZA REȚELEI DE SOCIAL IZARE FACEBOOK FOLOS IND METODE
IMPLEMENTATE ÎN R ………………………….. ………………………….. ………………………….. ………………………….. ……………. 51
3.1 INTRODUCEREA PACHETUL UI RFACEBOOK ………………………….. ………………………….. ………………………….. ………….. 51
3.2 ANALIZA REȚELEI DE PR IETENI………………………….. ………………………….. ………………………….. ………………………….. 56
3.3 ANALIZA DATELOR DE PE O PAGINĂ DE FACEBOOK ………………………….. ………………………….. ………………………….. . 57
3.3.1 Analiză pagini „Liviu Dragnea” și „Klaus Iohannis” ………………………….. ………………………….. ………………… 57
3.3.2 Analiză pagini „Cristiano Ronaldo” și „Leo Messi ”………………………….. ………………………….. ………………….. 63
CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. … 71
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. ………………………….. ………………………. 72

3
INTRODUCERE

Analiza de date este un proces de inspectare, transformare și modelare a datelor cu scopul de
a descoperi informații utile, sugerând concluzii și sprijinind luarea anumitor decizii de către
utilizatori. Prin intermediul analizei de date, organizațiile și întreprinderile pot obține informațiile
de care au nevoie pentru a lua deciziile cele mai bune, pentru a -și servi clienții și a crește
productiv itatea și veniturile.
Rețelele de socializare sunt o țintă în permanentă mișcare pentru cercetători și factorii de
decizie din mai multe domenii. În prezent există mai multe rețele de socializare ca de exemplu,
Facebook, MySpace, Instagram, Windows Live Spaces, LinkedIn, Vimeo, Twitter, Dailymotion,
OpenID ș.a care au atras milioane de utilizatori, mulți dintre ei accesându -le zilnic. Rețea socială
poate fi orice structură socială compusă din indivizi, grupuri, organizații, state. Aceasta conține o
serie de tipuri de interdependențe (cum ar fi legăturile de prietenie, rudenie, afinitate, cognitive,
bazate p e rol etc.) ce pot fi analizate. „Facebook“ este o resurs ă foarte importantă pentru analiza
rețelelor sociale, datorită datelor puse la dispoziție.
Un serviciu de rețea socială se concentrează pe construirea și confirmarea rețelelor sociale
online pentru comunitățile de persoane care împărtășesc interese și activități sau care sunt interesate
să descopere interesele și activitățile altora.
Analiza rețelelor sociale este importantă la diferite niveluri și din diferite motive. Înțeleg că
acest lucru este i mportant pornin d de la următoarele nivele :
1. Micro analiză . La acest nivel, utilizarea analizei poate fi făcută cu propriile date sau
cu un subset de date sociale la care cineva poate avea acces. Acest lucru poate oferi
răspunsuri la recomandări pe baza gusturilor proprii sau gusturilor prietenilor
dumneavoastră sau la nivel de înțelegere pentru fiecare dintre comunitățile găsite într –
o rețea socială mare, modul în care acele comunități influențează alte comunități sau
modul în care oamenii din fiecare comunitate interacționează și devin influențatori ai
colegilor lor.
2. Macro analiză . La un nivel mai mare, se poate cere analiza rețelelor mari, unde
măsuri interesante, ca de exemplu centralitatea sau folosirea algoritmilor, cum ar fi
căutarea în comunitate,sunt importante. În acest caz, importanța unor algoritmi

4
specifici, cum ar fi SCD, pentru căutare în comunitate, sau platforme ca Apache
Giraph! poate fi foarte util pentru a obține metrici interesante sau algoritmi executați
pentru grafice mari.
De asemenea, analiza rețelelor sociale este importantă din următoarel e motive:
1. Marketing . Rețelele sociale sunt cel mai important mod de a obține informații
valoroase în marketing, cum ar fi comunități sau influențatori. Toate aceste aspecte
interesante pot fi utile pentru managerii de comunitate sau pentru proiectarea
camp aniilor de marketing, direcționând produsele către seturile potrivite de persoane
din rețeaua socială.
2. Detectarea criminalității . Rețelele sociale conțin multe informații, fie deschise și
transparente, fie sub acoperire și codificate. Organizațiile crimina le pot utiliza rețelele
sociale pentru a comunica sub coduri, iar analizarea acestor coduri poate fi
importantă.
3. Detectarea epidemiilor. Răspândirea bolilor sub formă de epidemii poate fi detectată
prin modul în care oamenii răspândesc cuvântul de maladii în rețelele sociale.
Efectuarea unei analize de sensibilitate a acestora poate fi importantă pentru a înțelege
când și unde se răspândesc epidemiile.
4. Relațiile și reputația . Este important să înțelegeți că rețelele sociale reglează modul
în care oamenii se gândesc la alte persoane. Utilizarea rețelelor sociale poate fi
crucială pentru a înțelege modul în care au încredere alte persoane și cât de mult au
încredere în alte persoane, în multe situații, în principal, profesionale.
5. Analiză comparativă. Într-un m od foarte diferit, analiza rețelelor sociale poate fi
folosită ca un caz de utilizare pentru graf benchmarking și sisteme de management
RDF, așa cum se face în LDBC(Linked Data Benchmark Council).

5
CAPITOLUL I . P rogramarea în R
Generalități
R este un limbaj de programare și un mediu software pentru calcul statistic și grafică, susținut
de Fundația R pentru Calculul Statistic. Limbajul R este utilizat la scară largă printre statisticieni și
mineri de date pentru dezvoltarea software -ului statist ic și analiza datelor. Sondajele și studiile de
baze de date ale literaturii științifice arată că popularitatea lui R a crescut substanțial în ultimii ani.
Limbajul R este cel mai rapid limbaj de analiză statistică.
Principalele avantaje ale R:
• Este gratu it.
• Oferă o mulțime de biblioteci pentru diferite calcule statistice.
• Multe materiale educaționale (tutoriale, MOOCs, bloguri) disponibile gratuit pe internet.
• Are o comunitate mare.
• Gata să ruleze pe diferite platforme (Windows,Mac,Unix). Versiunea pentru instalarea
serverului este de asemenea disponibilă.
• Rapid datorită calculelor în memorie
Dezavantaje?
• R nu este o soluție out -of-the-box cu GUI pentru toate problemele analitice. Trebuie să
scrieți o bucată de cod pentru a obține rezultatul. Uneori poate fi o barieră pentru oamenii
non-tehnici.
• Avantajul calculului în memorie poate fi o capcană. În instalarea standard putem procesa
numai setul de date care se potrivește cu memoria RAM de pe dispozitiv.
Design -ul lui R a fost puternic influențat de două limbaje deja existente: Becker, Chambers and
Wilks 'S și Sussman’s Scheme. Limbajul rezultat este în aparență foarte similar cu S, dar
implementarea de bază și semantica sunt derivate din Scheme.
S este u n sistem software elegant, larg acceptat și de durată cu o integritate conceptuală
remarcabilă, datorită înțelegerii și efortului lui John Chambers. În 1998, Asociația pentru Mașini de
Calcul (ACM) i -a oferit Premiul Software System pentru sistemul S, car e a modificat pentru totdeauna

6
modul în care oamenii analizează, vizualizează și manipulează datele. R a fost inspirat de mediul S,
care a fost dezvoltat în anul 1976 în laboratoarele Bell de John Chambers și care a avut o contribuție
substanțială de la Do uglas Bates, Rick Becker, Bill Cleveland, Trevor Hastie, Daryl Pregibon și Allan
Wilks, constituind de asemenea baza sistemului S -Plus.
Inițial, R a fost scris de Ross Ihaka și Robert Gentleman la Departamentul de Statistică al
Universității din Auckland, Noua Zeelandă.Ulterior, un grup mare de indivizi au contribuit la
dezvoltarea limbajului R prin trimiterea de coduri și rapoarte de erori. John Chambers a contribuit
grațios cu sfaturi si încurajări în primele zile ale lui R, iar mai târziu a devenit membr u al echipei de
bază. În 1993 a fost lansat oficial proiectul, care a fost conceput ca un software non -gratuit. În 1995
autorii s -au hotărât să îl facă gratuit. Actualul R este rezultatul unui efort de colaborare din întreaga
lume.
R este o mașinărie pentr u metode noi de dezvoltare a analizei interactive a datelor. Acesta s -a
dezvoltat rapid și a fost extins de o colecție mare de pachete. Cu toate acestea, majoritatea
programelor scrise în R sunt în esență efemere, scrise pentru o singură analiză a datelor.
Ross Ihaka spunea în 19981:
„În august 1993 Robert Gentleman și cu mine am plasat copii ale R -ului la Statlib și am făcut
un mic grup pe s -news. Unii ne -au descărcat copiile și s -au oferit să colaboreze. Cel mai de
nădejde a fost Martin Maehler de la ETH Zurich care ne -a convins să lansăm codul sursă ca un
software gratuit. La început am avut ezitări, dar în iunie 1995 am convenit să punem la dispoziția
tuturor codul sursă în condițiile fundației FRF2 . ”
Ihaka continuând :
„ Decizia de a face R un software gratuit ne-a făcut să ne propunem țeluri mai mari decât
un simplu soft statistic cu care să ne putem preda cursurile mai bine. Ne -a dat acces la o masă de
indivizi foarte talentați doritori să se implice în proiect. Poate unul din cele mai bune lu cruri care
ni s-a întâmplat a fost șansa de lucra cu asemenea oameni strălucitori ”. Și își exprima optimismul:

1http://cran.r -project.org/doc/html/interface98 -paper/paper.html
2http://www.fsf.org/

7
„ Se pare că R a ajuns la punctul în care este destul de stabil pentru a fi folosit de utilizatori – cel
puțin sub Unix. Sperăm ca în 1999 să pu tem lansa varianta completă R.1.0 în cadrul fundației Free
Software ”.
De la mijlocul anului 1997 a existat un grup de bază cunoscut sub numele de "R Core Team",
care poate modifica arhiva codului sursă R. Grupul este în prezent compus din Doug Bates, Joh n
Chambers, Peter Dalgaard, Robert Gentleman, Kurt Hornik, Stefano Iacus, Ross Ihaka, Friedrich
Leisch, Thomas Lumley, Martin Maechler, Duncan Murdoch, Paul Murrell, Martyn Plummer, Brian
Ripley, Duncan Temple Lang, Luke Tierney și Simon Urbanek..
Sistemul R este unul foarte mare, dezvoltându -și rapid o mare colecție de pachete de
programe.
Site-ul oficial de unde se poate descărca gratuit R pentru diferite sisteme de operare este
http://www.r -project.org . Cea mai recentă versiune de R este 3.5.0 din 23.03.2018.
Toate funcțiile și seturile de date R sunt stocate în pachete. Doar atunci când un pachet este încărcat,
conținutul acestuia este disponibil. Acest lucru se face atât pent ru eficiență (lista completă ar necesita
mai multă memorie și mai mult timp pentru a căuta decât un subset), cât și pentru a ajuta dezvoltatorii
de pachete care sunt protejați de confruntăril e numelui cu alt cod. Pachetele standard (sau de bază)
sunt consi derate parte a codului sursă R. Acestea conțin funcțiile de bază care permit funcționarea lui
R, precum și seturile de date și funcțiile statistice și grafice standard. Acestea ar trebui să fie
disponibile automat în orice R.
Există sute de pachete pentr u R, scrise de mai mulți autori diferiți. Unele dintre aceste pachete
implementează metode statistice specializate, altele oferă acces la date sau hardware. Pachetele
recomandate sunt distribuite cu fiecare distribuție binară a lui R. Cele mai multe sunt d isponibile
pentru descărcare de la CRAN ( Comprehensive R Archive Network – http://CRAN.R -project.org ).
Pachetele pot avea spații de nume, iar in pre zent, toate pachetele de bază și cele recomandate
fac excep ția pachetului de seturi de date. Spațiile de nume fac trei lucruri: permit scriitorului de
pachete să ascundă funcții si date care sunt destinate doar pentru utilizarea internă, previn ruperea
funcțiilor când un utilizator (sau alt scriitor de pachete), alege un nume care se ciocnește cu unul din
pachete și oferă o modalitate de a se referi la un obiect dintr -un anumit pachet.

8
De exemplu, t () este funcția transpusă în R, dar utilizatorii pot defini funcția numită t. Spațiile
de nume împiedică definiția utilizatorului să aibă prioritate și rupe orice funcție care încearcă să
transpună o matrice.
Există doi operatori care lucrează cu spații de nume. Operatorul double -colon : : selectează
definițiile dintr -un spațiu de nume particular. În exemplul de mai su s, transpusa funcției va fi
întotdeauna disponibilă ca base : : t deoarece este definită în pachetul base. Numai funcțiile care sunt
exportate din pachet pot fi preluate în acest fel.
Operatorul triple -colon : : : poate fi văzut în câteva locuri în codul R: acționează ca și operatorul
cu două coloane, dar permite și accesul la obiecte ascunse. Utilizatorii au mai multe șanse să utilizeze
funcția getAnywhere (), care caută mai multe pachete.
Pachetele sunt adesea interdependente, iar încărcarea poate provoca încărcarea automată a
altora. Operatorii colon descriși mai sus vor determina, de asemenea, încărcarea automată a pachetului
asociat. Atunci când pachetele cu spații de nume sunt încărcate automat, acestea nu sunt adăugate în
lista de căutare.
Oper area în R
Atunci când lansăm in execuție R va apărea o fereastră ca cea de mai jos. Putem lucra cu R
direct in consola interioară.
În „Packages” se află opțiuni de instalare a unor pachete de programe specializate pe diferite
domenii, R putând să se exti ndă foarte mult.

9

Pentru a vedea care pachete sunt instalate în versiunea curentă R se poate folosi funcția:
> library()
Pentru a încărca, de exemplu, pachetul base ( The R Base P ackage), putem folosi funcția
> library(base )
Pentru a afla informații despre un anumit pachet, de exemplu, pachetul translations(The R
Translations Package)
>library(help=”translations”).
Pachetele disponibile in versiunea 3.4.2 sunt :
base Pachetul de bază R
boot Funcții Bootstrap
class Funcții pentru clasificare
cluster "Găsirea grupurilor in date": Analiză Cluster
codetools Instrumente de analiză a codului pentru R

10
compiler Pachetul R Compiler
datasets Pachetul Datasets
foreign Citește datele stocate de 'Minitab', 'S', 'SAS','SPSS', 'Stata', 'Systat', 'Weka', 'dBase',…
graphics Pachetul R Graphics
grDevices Dispozitivele grafice R și suportul pentru culori si fontu ri
grid Pachetul Grid Graphics
KernSmooth Funcții pentru Kernel Smoothing Supporting Wand & Jones (1995)
lattice Trellis Graphics pentru R
MASS Funcții suport și seturi de date pentru Venables și Rip ley's MASS
Matrix Clase,Matrice și metode Sparse și Dense
methods Metode formale și clase
mgcv Mixarea GAM Computation Vehicle cu Automatic Smoothness Estimation
nlme Modelele de efecte mixte lineare si nelineare
nnet Rețele neuronale cu transmitere în flux și Modele multinomiale Log -Liniare
parallel Suport pentru calculul în paralel în R
rpart Partiționare Recursivă și Regresia Arborilor
spatia l Funcții pentru criptarea și analiza modelelor punctuale
stats Pachetul R Stats
stats4 Funcții statistice utilizând clasele S4
survival Analiza supraviețuirii
tcltk Inter fața Tcl/Tk

11
tools Unelte pentru pachetul de dezvoltare
translations Pachetul R Translation
utils Pachetul R Utils

Pentru a încărca un anumit pachet, de exemplu matrix ( Sparse and Dense Matrix Classes and
Methods) folosim functia:
> library(matrix)
Dacă vrem să aflăm informații despre un anumit pachet, de exemplu base( The R base
package)
> library(help=’base ’)

Utilizarea R în mod interactiv: în fereastra R Console, există o linie necompletată cu simbolul
“>” în marginea din stânga. Acesta este numit prompter și este modul R de a spune “Ce fac acum?”.
Aici se introduc comenzile acceptate de R, se apasă Enter, iar rezultatul va apărea mai jos, în aceeași
fereastră. Uneori va apărea în partea stângă a ecranului “+” în loc de “>”. Acest lucru înseamnă că
ultima comandă introdusă este incompletă. Cea mai obișnuită cauză este că se uită una sau mai multe
paranteze. Dac ă putem vedea ce lipsește(de exemplu, o ultimă paranteză dreaptă), vom tasta
caracterul lipsă, apăsăm Enter, moment în care comanda se va executa. Apăsând tasta Esc, promptul
de linie de comandă > va reapărea. Apoi, vom utiliza tasta săgeată Sus pentru a p relua ultima
comandă, moment in care putem corecta greșeala, utilizând tastele săgeată Stanga și Dreapta.
Directorul curent poate fi schimbat prin File -> Change dir… , datele salvate sau citite fiind
asociate cu acesta.
Putem afla directorul curent exe cutând comanda getwd() și îl putem fixa prin comanda
setwd().

12
În R există funcții cu ajutorul cărora putem obține informații despre facilitățile R -ului instalat
pe calculator. De exemplu, pentru a obține informații despre facilitățile oferite de funcția he lp() , se
execută comanda
> help.start() care va deschide un browser web, în care paginile să fie accesate cu
hiperlink -uri.
Link -ul ‘Search Engine and Keywords’ din pagina încărcată de help.start () este deosebit de
util, deoarece conține o listă de concepte de nivel înalt care caută funcțiile disponibile. Poate fi o
modalitate excelentă de a înțelege amploarea a ceea ce R are de oferit.
Pentru a accesa informații cu privire la o anumită funcție R, ca de exemplu plot, se execută
comanda
> help(plot)
sau alternativa
> ?plot
Prin aceasta,se va deschide o pagină în care vor fi afișate informații despre funcția plot.
Pentru o funcție specificată prin caractere speciale, argumentul trebuie să fie inclus în ghilimele duble
sau simple, ceea ce face ca acesta să fie un "șir de caractere". Acest lucru este necesar și pentru câteva
cuvinte cheie, ca de exemplu, if, for și function.
> help (’’if ”)
Pentru a afișa fișiere,obiecte etc. care au în componența lor șiruri de caractere,vom folosi
comanda:
> help.search(“]]”)
sau echivalentul ??]]
Dacă do rim să vizualizăm exemple care fac referire la funcții R, vom proceda astfel:
> example(mean)
iar raspunsul va fi :

13
mean> x <- c(0:10, 50)
mean> xm < – mean(x)
mean> c(xm, mean(x, trim = 0.10))
[1] 8.75 5.50
Ieșirea din R se face utilizând comanda:
> q ()
sau
> quit ()
Dacă dorim salvarea spațiului de lucru, într -un anumit fișier, vom folosi comanda save .
Presupunem că avem variabila x:
> x=3
> save (x,file=”C:/…/date.RData”)
> q ()
Funcția save <=> saveimage .
Limbajul R este case sensitive, așadar x și X sunt tratate ca simboluri diferite, iar orice șir de
caractere urmat de simbolul # este considerat ca fiind comentariu.
Pentru a redeschide o sesi une R se va proceda astfel:
> load (“C:/…/date.Rdata”)
> x
[1] [2] 3
Comenzile în R se separă prin punct și virgulă sau se scriu pe linii diferite, ca de exemplu:
> x = 1;y = 2.5;
> z = 5;
> x + y

14
[1] 3.5
Dacă o comandă este incompletă la sfârșitul liniei de la >, R va deschide un prompt nou,
adesea simbolul + în linia următoare. Simbolul dispare când comanda este completă
> x=1
> y=2
> z=x*
+ y
> z
[1] 2
Operatori aritmetici:
> 1+1
[1] 2
> 2*4
[1] 8
Utilizarea variabilelor
Putem atribui o valoare unei variabile folosind operatorul <- (mai popular) sau =.
Variabile numerice
> x <- 1+1
> x
[1] 2
Variabile de text
> z <- “Hello world ”
> z
[1] “Hello world”
Vectori
> v <- c(1,2,3,4,5)

15
> v
[1] 1 2 3 4 5
Cadre de date
Mai popular decât un vector dimensional este structura de date multidimensională numită data.frame
Crearea unui cadru
df <- data.frame(
data = c("20180601 ","20180601 ","20180601 ",
"20180601 ","20180601 ","20180601 ","20180601 "),
oras = c("Londra","Varșovia ","Cracovia ",
"New York","Paris","Zurich" ,"Sydney" ),
sesiuni = c(101,80,70,50,30,60,20)
)
Pentru a afi șa un cadru de date, tastați numele cadrului de date: df
> df
data oras sesiuni
1 20180601 Londra 101
2 20180601 Varsovia 80
3 20180601 Cracovia 70
4 20180601 New York 50
5 20180601 Paris 30
6 20180601 Zurich 60
7 20180601 Sydney 20

Operații de bază
Pentru a previzualiza un cadru de date (în mod implicit 6 rânduri, care este util pentru seturi de
date mai mari):
> head(df)
data oras sesiuni
1 20180601 Londra 101
2 20180601 Varsovia 80
3 20180601 Cracovia 70
4 20180601 New York 50
5 20180601 Paris 30
6 20180601 Zurich 60

16
Pentru a afișa numele coloanelor unui cadru de date:
> colnames(df)
[1] "data" "oras" "sesiuni"

Putem face referire la o coloană prin operatorul dataframe$colname:
> df$oras
[1] Londra Varsovia Cracovia New York Paris Zurich Sydney
Levels: Cracovia Londra New York Paris Sydney Varsovia Zurich

Și selectăm valorile unice ale coloanei:
> unique(df$date)
[1] 20180601
Levels: 20180601

Alternativ, putem selecta coloane și rânduri după număr: df [rownumber, columber]
Selectăm coloana 2:
> df[,2]
[1] Londra Varsovia Cracovia New York Paris Zurich Sydney
Levels: Cracovia Londra New York Paris Sydney Varsovia Zurich

Selectăm rândul 1:
> df[1,]
data oras sesiuni
1 20180601 Londra 101

Selectăm doar un element:
> df[1,1]
[1] 20180601
Levels: 20180601

17
Prin comenzile savehistory si loadhistory se poate reîncărca și salva istor icul
comenzilor introduse în consolă. Aceasta se găsește și în meniu: File -> Save History,
File -> Load History . Extensia .Rhistory este pentru fișierele în care se salvează /
încarcă comenzile .
Funcții în R
În R e xistă un număr mare de funcții pentru a prelucra datele. În continuare vom descrie
funcțiile utilizate la momentul curent. Pentru a găsi informații pentru mai multe funcții disponibile
putem căuta în manualele de R, sau în diverse locații de pe internet. Un lucru important de menționat
este faptul că argumentul unei funcții are un nume. Dacă specificăm numele argumentului, atunci nu
este importantă ordinea în care se pune. Considerăm exemplul următor în care se creează un șir
utilizând funcția seq
> seq (from=2, by=5,to=9)
[1] 2 7
Numele argumentelor nu este dificil de ținut minte,unele funcții pot fi apelate fără argumente
(utilizând valorile implicite de calcul). Dacă dorim să apelăm funcții fără să menționăm numele
argumentelor, vom păstra ordinea acestora . De exemplu
> seq (1,2,3)
[1] 1
în funcția seq, from este primul argument, to este al doilea și by este al treilea.
Funcțiile aplicate unui număr care dau ca rezultat un alt număr, iar aplicate unui vector sau
unei matrice se aplică fiecărui element al vectorului sau matricei respective (sunt vectorizate), sunt
considerate funcții numerice. Câteva exem ple sunt date mai jos

Tabelul 1.1
Funcția Descriere
abs (x) valoare absolută
sqrt (x) rădăcină pătrată

18
ceiling (x) ceiling(3.475) este 4
floor (x) floor(3.475) este 3
trunc (x) trunc(5.99) este 5
round(x, digits=n) round(x, digits=2) este 3.48
signif(x, digits=n) signif(x, digits=2) este 3.5
cos(x), sin(x), tan(x), acos(x), asin(x), tan(x),
cosh(x), acosh(x), etc. funcții trigonometrice / hiperbolice directe și
inverse
log (x) logaritm natural
log10 (x) logaritm comun
exp (x) e^x
Sursa: https://www.statmethods.net/management/functions.html
R ne pune la dispoziție funcții cu care putem prelucra șiruri de caractere și vectori
Tabelul 1.2
Funcția Descriere
substr( x, start= n1, stop= n2) Extrage sau înlocuiește
substring -urile într -un vector
de caractere.
x<- ” abcdef ”
substr (x,2,4) este “ bcd “
substr (x,2,4) < – “22222 este
“a222ef”
grep( pattern , x ,ignore.case= FALSE ,fixed= FALSE ) Caută modelul în x. Dacă
fixed = FALSE atunci
modelul este o expresie
regulată. Dacă este fixed =
TRUE atunci modelul este un

19
șir de text. Returnează indicii
potriviți.
grep ("A", c ("b", "A", "c"),
fixed = TRUE) returnează 2
sub(pattern ,replacement , x,ignore.case= FALSE ,fixed= FALSE ) Găsește modelul în x și îl
înlocuiește cu textul de
înlocuit. Dacă fixed = FALSE
atunci modelul este o expresie
regulată.
Dacă fixed= T, atunci modelul
este un șir de caractere.
sub (" \\ s", ".", "Bună ziua")
returnează "Bună ziua"
strsplit( x, split) Împarte șirul x în subșiruri.
strsplit("abc", "") returnează 3
elemente "a","b","c"
paste(…, sep="") Concatenează șirurile
utilizând separatorul sep.
paste("x",1:3,sep="")
returnează c("x1","x2" "x3")
paste("x",1:3,sep="M")
returnează c("xM1","xM2"
"xM3")
paste("Azi este", date())
toupper (x) majuscule

20
tolower (x) minuscule
Sursa: https://www.statmethods.net/management/functions.html
Exemplul 1.0 Variante de aplicare a operațiilor cu șiruri
> x="asadgqerfdzdsdsdfsdf"
> nchar(x)
[1] 20
> x1=strsplit(x,split=NULL) > x1
[[1]]
[1] "a" "s" "a" "d" "g" "q" "e" "r" "f" "d" "z" "d" "s" "d" "s" "d" "f"
"s" "d"
[20] "f"
> x2=unlist(x1)
> x2
[1] "a" "s" "a" "d" "g" "q" "e" "r" "f" "d" "z" "d" "s" "d" "s" "d" "f"
"s" "d"
[20] "f"
> x3=rev(x2)
> x3
[1] "f" "d" "s" "f" "d" "s" "d" "s" "d" "z" "d" "f" "r" "e" "q" "g" "d"
"a" "s"
[20] "a"
> x4=paste(x3,collapse="")
> x4
[1] "fdsfdsdsdzdfreqgdasa"

21
> x5=substr(x4,2,1)
> x5
[1] "sfdsd"
> x6=sub("d","D",x)
> x7=gsub("d","D",x)
> x
[1] "asadgqerfdzdsdsdfsdf"
> x6
[1] "asaDgqerfdzdsdsdfsdf"
> x7
[1] "asaDgqerfDzDsDsDfsDf"
> x8=unlist(strsplit(x,split="w"))
> x8
[1] "asadgqerfdzdsdsdfsdf"
> i=grep("r",x8)
> i
[1] 1
> x8[i]
[1] "asadgqerfdzdsdsdfsdf"

Reprezentări grafice în R
Unul dintre principalele motive pentru care analiștii de date se îndreaptă către R este pentru
capacitățile sale grafice puternice. R este un instrument de software open source pentru analiza

22
statistică și grafică. Cea mai importantă caracteristică a confi gurației graficelor R este existența a două
sisteme grafice distincte în R: sistemul grafic tradițional și sistemul grafic rețea. Utilizarea interactivă
este mai productivă. Utilizarea interactivă este, de asemenea, ușoară deoarece, la momentul pornirii,
R inițiază un driver de dispozitiv grafic care deschide o fereastră grafică specială pentru afișarea
graficii interactive. Deși acest lucru se face automat, este util să știm că utilizăm comanda X11 () sub
UNIX, windows () sub Windows și quartz () sub Mac O S X.
Următorul cod furnizează un exemplu simplu de realizare a unui grafic folosind R
> plot(presure)
> text(150, 600,
+ "Presiune (mm Hg) \nversus\nTemperatură (Celsius)")
Expresia plot(pressure) produce un grafic al presiunii versus temperatură, incluz ând axe,
etichete și un dreptunghi mărginit. Apelul funcției text() adaugă etichetă locației de date (150,600) în
interiorul graficului.
Plot-ul este realizat din două expresii simple R : o expresie pentru a desena plot -ul de bază,
format din axe, simboluri de date și dreptunghiul mărginit și altă expresie pentru a adăuga eticheta
de text în cadrul plot -ului.
Acest exemplu este baza graf icii R . Pentru a produce un grafic de ieșire, utilizatorul solicită
o serie de funcții grafice, fiecare dintre acestea producând fie un plot complet, fie adaugă o anumită
ieșire la un plot existent. R urmează un "painters model", ceea ce înseamnă că ieșir ea grafică are loc
în pași, cu o ieșire ulterioară care ascunde orice ieșire anterioară pe care o suprapune.

23

2 Fig 1.1 Presiune versus temperatură
Odată ce driverul dispozitivului rulează, comenzile de plotare R pot fi utilizate pentru a
produce o varietate de afișări grafice și pentru a crea noi tipuri de afișare.
Comenzile de plotare sunt împărțite în trei grupe de bază:
• Funcțiile de plotare high -level creează un grafic nou pe dispozitivul grafic, posibil cu
axe, etichete, titluri și așa mai departe

2 R graphics ,pag.19

24
• Funcțiile de plotare low-level adaugă mai multe informații la un grafic existent, cum
ar fi puncte suplimentare, linii și etichete .
• Funcțiile grafice interactive permit adăugarea informațiilor interactiv sau extr agerea
informațiilor dintr -un grafic existent, utilizând un dispozitiv de indicare,ca de exemplu
un mouse.
În plus, R menține o listă cu parametrii grafici care pot fi folosiți pentru a personaliza graficele.
În continuare, vom prezenta funcțiile grafice generale high -level din R.
Tabelul 1.3 – Funcții grafice de nivel înalt
plot(x) grafic al valorilor lui x (pe axa y) ordonate pe axa x
plot(x, y) grafic bidimensional al lui x (pe axa x) si y (pe axa y)
sunflowerplot(x, y) id. insa punctele de coordonate similare sunt
desenate ca o floare ce are numarul de petale egal
cu numarul de puncte
pie(x) grafic circular
boxplot(x) boxplot
stripchart(x) grafic al valorilor lui x pe o linie (o alternativa la
boxplot() pentru esantioanele de dimensiuni mici)
coplot(x~y | z) grafic bidimensional al lui x si y pentru valori
individuale (sau interval de valori) ale lui z
interaction.plot (f1, f2, y) pentru f1 si f2 factori, graficele mediilor lui y (pe axa
y) raportate la valorile lui f1 (pe axa x) si ale lui f2
(curbe diferite); optiunea fun permite alegerea unei
sumarizari statistice a lui y (in mod implicit
fun=mean)

25
matplot(x,y) grafic bidimensional a primei coloane a lui x vs. a
primei coloane a lui y, a doua a lui x vs. a doua a lui
y, etc
dotchart(x) pentru x secventa de date, face graficul de tip
puncte (grafice ingramadite linie de linie si coloana
de coloana)
fourfoldplot(x) vizualizeaza, cu sferturi de cerc, relatia dintre doua
variabile dihotomice pentru populatii diferite (x
trebuie sa fie un sir cu dim=c(2, 2, k), sau o matrice
cu dim=c(2, 2) pentru k = 1)
assocplot(x) grafic Cohen –Friendly ce arata abaterile de la
indenepdenta randurilor si coloanelor intr -un tabel
de contingenta bidimensional
mosaicplot(x) grafic ‘mozaic’ al valorilor reziduale ale unei regresii
logaritmice a unui tabel de contingenta
pairs(x) pentru x matrice sau secventa de date, creaza toate
graficele bivariate posibile dintre coloanele lui x
plot.ts(x) pentru x obiect de clasa "ts", creaza graficul lui x
raportate la timp, x poate fi multivariat insa seriile
trebuie sa aiba aceleasi frecvente si date
ts.plot(x) id. insa x este multivariat iar seriile pot avea date
diferite si trebuie sa aiba aceeasi frecventa
hist(x) histograma frecventelor lui x
barplot(x) histograma valorilor lui x
qqnorm(x) cuantilele lui x raportate la valorile asteptate sub o
regula normala

26
qqplot(x, y) cuantilele lui y raportate la cuantilele lui x
filled.contour (x, y, z) id. insa zonele dintre contururi sunt colorate,
existand si o legenda a culorilor
contour(x,y,z) grafic contur (datele sunt interpolate pentru a
desena curbele), x si y trebuie sa fie vectori si z
trebuie sa fie matrice astfel incat dim(z)=c(length(x),
length(y)) (x si y pot fi omise)
image(x, y, z) id. insa zona curenta este reprezentata prin culori
persp(x, y, z) id. insa in perspectiva
stars(x) pentru x matrice sau secventa de date, creaza un
grafic cu segmente sau o stea in care fiecare rand al
lui x este reprezent at de o stea iar coloanele sunt
lungimile segmentelor
symbols(x, y, …) deseneaza, la coordonatele date de x si y, simboluri
(cercuri, patrate, dreptunghiuri, stele, termometre
sau “boxplot -uri”) ale caror dimensiuni, culori, etc,
sunt specificate de arg umente suplimentare
termplot(mod.obj) graficul efectelor (partiale) ale unui model de
regresie (mod.obj)
Sursa: Emmanuel Paradis, R pentru incepători, 2013
R are un set de func ții grafice care afecteaz ă un grafic deja existent: ele sunt numite comenzi de
grafice low-level .
Tabelul 1. 4 – Funcții grafice de nivel scăzut
points(x, y) adauga puncte (poate fi utilizata optiunea type=)
lines(x, y) id. insa adauga linii

27
text(x, y, labels, …) adauga text dat de labels la coordonatele (x,y); o
varianta des folosita este: plot(x, y, type="n");
text(x, y, names)
mtext(text, side=3, line=0, …) adauga text dat de text la marginea specificata de
side (vezi axis() mai jos); line specifica linia din zona
graficului
segments(x0, y0, x1, y1) deseneaza linii de la punctele (x0,y0) la punctele
(x1,y1)
arrows(x0, y0, x1, y1, angle= 30, code=2) id. cu sageti catre punctele (x0,y0) daca code=2,
catre punctele (x1,y1) daca code=1, sau ambele
daca code=3; angle controleaza unghiul dintre axa
sagetii si limita capului sagetii
abline(a,b) deseneaza o linie de panta b si segment a
abline(h=y) deseneaza o linie orizontala la ordonata y
abline(v=x) deseneaza o linie verticala la abcisa x
abline(lm.obj) deseneaza linia regresiei data de lm.obj
rect(x1, y1, x2, y2) deseneaza un dreptunghi ale carui limite din stanga,
dreapta, sus si jos sunt x1, x2, y1, si respectiv y2
polygon(x, y) deseneaza un poligon ce uneste punctele de
coordonate date de x si y
legend(x, y, legend) adauga legenda la punctul (x,y) cu simbolurile date
de legend
title() adauga un titlu si optional un subtitlu

28
axis(side, vect) adauga o axa la baza (side=1), in stanga (2), sus (3),
sau in dreapta (4); vect (optional) abcisa (sau
ordonatele) unde sunt desenate marcajele
box() adauga o caseta in jurul graficului curent
rug(x) deseneaza datele x pe axa x ca linii verticale mici
locator(n, type="n", …) returneaza coordonatele (x, y) pe care utilizatorul a
facut click cu mouse -ul de n ori pe grafic; de
asemenea deseneaza simboluri (type="p") sau linii
(type="l") referitoare la parametri grafici optionali
(…); in mod implicit nu este desenat nimic
(type="n")
Sursa: Emmanuel Paradis, R pentru incepători , 2013

Exemplul 1.1
> options(scipen=999)
> library(ggplot2)
> theme_set(theme_bw())
> data("midwest", package = "ggplot2")
> # midwest < – read.csv("http://goo.gl/G1K41K")
>
> gg <- ggplot(midwest, aes(x=area, y=poptotal)) +
+ geom_point(aes(col=state, size=popdensity)) +
+ geom_smooth(method="loess", se=F) +
+ xlim(c(0, 0.1)) +
+ ylim(c(0, 500000)) +
+ labs(subtitle="Suprafata Vs Populatie",
+ y="Populatie",
+ x="Suprafata",
+ title="Grafic ",
+ caption = "Sursa: midwest")
>
> plot(gg)

29

Fig 1.2 – Grafic populație vs suprafață
Exemplul 1.2
> library(ggplot2)
> data(mpg, package="ggplot2")
> theme_set(theme_bw())
> g <- ggplot(mpg, aes(cty, hwy))
> g + geom_point() +
+ geom_smooth(method="lm", se=F) +
+ labs(subtitle="distanta parcursă in oras vs distanta parcursa pe auto
strada",
+ y="autostrada",
+ x="oras",
+ title="Scatterplot cu puncte de suprapunere")

30

Figura 1.3 – Scatterplot cu pu ncte de suprapunere
Exemplul 1.3
install.packages('forecast', dependencies = TRUE)
library(ggplot2)
library(forecast)
theme_set(theme_classic())
nottem_small < – window(nottem, start=c(1920, 1), end=c(1925, 12))
ggseasonplot(AirPassengers) + labs(title=" Pasagerii aerieni internationali ")

31

Figura 1.4 – Grafic pasageri

32
CAPITOLUL II. Elemente de analiză a unei rețelei sociale
2.1 Introducere
Rețelele sociale ca Facebook, Twitter și Google+ sunt cele mai vizitate domenii pe Internet.
Ele conțin date uriașe despre utilizatori și relațiile dintre aceștia. Pentru a analiza și extrage informații
utile din aceste rețele sociale, sunt necesare unelte specializate care să modeleze cu ușurință structura
rețelelor sociale. Un număr de astfel de unelte de analiză sunt disponibile cu propriile caracteristici și
beneficii.
O rețea socială este definită ca o rețea a relațiilor sau interacțiunilor, unde nodu rile constă în
oameni sau actori, iar marginile sau arcele în relații sau interacțiuni între ac ești actori. Rețelele sociale
și tehnicile de analiză a acestora au existat de zeci de ani . Pot exista mai multe tipuri de rețele sociale
precum rețeaua de e -mail, rețeaua de telefonie, rețeaua de colaborare. Dar, recent, au fost dezvoltate
rețele sociale online precum Facebook, Twitter, LinkedIn, MySpace etc. care au câștigat popularitate
în foarte scurt timp și au adunat un număr mare de utilizatori. Facebook s e spune că are mai mult de
500 de milioane de utilizatori în 2010.
Domeniul rețelelor sociale și analiza lor a evoluat din teoria graficelor, statisticii și sociologiei
și este folosit în alte domenii precum știința informației, aplicațiile din afaceri, comunicare, economie
etc. Analiza unei rețele sociale este similară analizei unui grafic deoarece rețelele sociale formează
topologia unui grafic. Uneltele de analiză grafice au existat de zeci de ani. Dar ele nu sunt concepute
pentru a analiza un grafic d e rețea socială care are proprietăți complexe. Un grafic de rețea socială
online poate fi foarte mare. Poate conține milioane de noduri și muchii. Rețelele sociale sunt
dinamice, existând o evoluție și o expansiune continuă. Un nod din rețeaua socială are, de obicei, mai
multe atribute. Există comunități mici și mari în graficul social. Uneltele de analiză a graficelor vechi
nu sunt concepute pentru a gestiona un grafic atât de mare și complex al rețelei sociale.
2.2 Conceptul de rețea socială
Termenul de rețea socială se referă la articularea unei relații sociale, atribuită sau realizată,
între indivizi, familii, gospodării, sate, comunități, regiuni și așa mai departe. Fiecare dintre ele poate
juca roluri duale, acționând atât ca o unitate sau nod al unei rețele sociale, cât și ca un actor social .
Înrudirea este un exemplu foarte comun al unei relații atribuite, în timp ce unele exemple comune ale
unei relații realizate sunt acelea care sunt stabilite în cursul unei interacțiuni regulate în procesele

33
vieții cotidiene și trăirii, activitățile culturale și așa mai departe, cum ar fi o gospodărie solicitând
ajutorul, sprijinul sau sfatul alteia; legături de prietenie sau alegerea indivizilor pentru a petrece
împreună timpul liber; și preferințele în căsătorie. De altfel, o relație poate fi și negativă – de exemplu,
ostilitate sau conflict, spre deosebire de prietenie sau alianță și înstrăinare față de reciprocitate sau
integrare.
Unitățile unei "rețele sociale" pot fi diferite, fără îndoială, ca indivizii, fa miliile, gospodăriile,
zonele rurale sau urbane, în funcție de relația în cauză. Dar există o trăsătură comună – și anume,
indiferent de tipul de unități pe care îl studiem, există sau nu există o relație specifică diadică între
membrii oricărei perechi de ele.
Mai mult, dacă relația există între o pereche de unități, este destul de pertinent să se întrebe
dacă merge în ambele direcții sau numai într -o direcție și, în ultimul caz, de la ce direcție către
cealaltă, deoarece nu există o relație socială . Relațiile asimetrice, cum ar fi următoarele exemple, sunt
la fel de comune ca și cele simetrice. De exemplu, A preferă B, A invită B la un festival de uz casnic
sau A merge la B pentru ajutor sau sfaturi. Dar B poate sau nu poate prefera, invita sau apropi a A.
Trebuie să menționăm însă că doar din cauza prezenței unor astfel de legături pereche, o rețea socială
nu ar trebui să fie asemănată grupului social. Există două concepte despre un grup social: realist și
nominalist. Conceptul realist este cel mai fre cvent utilizat în limbajul sociologic. Conform acestui
concept, este o entitate formată din actori sociali precum indivizi, familii și așa mai departe și este
separată de restul. Un grup social păstrează un sistem multidimensional de contacte sau interacți uni
oarecum durabile în cadrul grupului: psihic, emoțional, verbal și comportamental. Astfel, există un
element al unui sentiment de conștiință împărtășit de membrii săi. În plus, un grup social își generează
propria limită în care membrii săi respectă anu mite reguli, norme și roluri funcționale unul față de
celălalt, precum și față de obiectivul său comun. Cu toate acestea, în afara conceptului realist al
grupului social, un cercetător se bucură, de asemenea, de posibilitatea de a -și impune propria definiț ie
a limitei de membru al grupului pentru a identifica un grup pentru un studiu. Acesta este conceptul
nominalist al unui grup social. De exemplu, comparați conceptul marxist de clasă ca o "clasă pentru
sine", un concept realist și o clasă ca "clasă în sin e" au urmat conceptul nominalist al unui grup social
pentru o ilustrare a metodelor. Astfel, în timp ce un grup social poate fi atât realist, cât și nominalist,
o rețea socială nu poate fi una realistă. O rețea socială este o categorie de actori legați de un proces
de interacțiune între ei. Este deci o categorie nominalistă. Cu toate acestea, o rețea socială sau părțile

34
sale sunt dotate cu potențialul de a fi transformate într -un grup social într -un sens realist, cu condiția
să existe suficientă interacțiun e.
În scopuri analitice, o rețea socială este conceptualizată ca un digraf (sau un grafic dacă relația
nu are nici o direcție). Diagramele digrafice pot fi trase pentru a oferi instantaneu o mapare directă a
legăturilor care arată clusterizarea lor, precu m și împrăștierea. Într -un digraf, numim o unitate – fie că
este vorba despre un individ, o familie, o gospodărie sau un sat – un vârf sau un nod. O legătură între
două noduri indică prezența relației care le conectează. Lipsa unei legături indică absența relației. O
legătură cu direcție este numită arc, iar o legătură fără direcție este numită margine. De asemenea, s –
ar putea observa valoarea sau volumul fluxului ca greutate a legăturii și astfel se obține o rețea care
ar fi apoi un digraf ponderat. Deoar ece structura aceleiași rețele poate fi percepută vizual diferită în
funcție de modul în care este desenată o diagramă, este necesar să se elimine părtinirea în percepția
vizuală pentru a deduce despre structura unei rețele dintr -o diagramă digraf. Această prejudecată
vizuală este eliminată dacă luăm apel la măsurarea numerică a unor caracteristici importante ale unei
rețele și la tragerea inferenței de acolo.
Rețelele sunt reprezentate de obicei prin diagrame în care vârfurile sunt reprezentate de
puncte, arce le de linii cu vârfuri de săgeți și muchii le de linii fără săgeți. Atunci când două noduri
sunt conectate prin legături în ambele direcții, deseori reprezentăm cele două legături împreună cu o
margine, omi țând săgețil e.
Începutul călătoriei s ale ca metaforă descriptivă, rețea ua socială, în cursul ultimelor decenii,
are o paralelă cu teoriile pieței de schimb, trezind o poziție pentru sine în domeniul teoriilor și
metodologiei pentru studiul societății. Deși premisa teoretică pare a fi foarte a propiată de teoriile
pieței, ea nu constă în căutarea celei mai bune negocieri în cazul unui schimb utilitar de bunuri și
servicii. Mai degrabă, ca o chestiune de schimb social generalizat, ea conceptualizează schimbul nu
numai din punct de vedere al inter esului economic, ci și al așteptărilor de rol reciproc, precum și al
orientărilor de valoare, al normelor sociale și al obligațiilor. Aceste atribute au făcut ca teoria rețelei
să fie mai cuprinzătoare și mai flexibilă pentru a se potrivi atât relațiilor a simetrice cât și celor
simetrice ca elemente naturale. De aceea, în timp ce teoria rețelelor sociale nu neagă rolul conceptelor
și categoriilor funcționale a priori, utilizate în mod tradițional, în cercetarea socială, cum ar fi familia,
rudenia, castele ș i grupurile etnice, grupurile de stat, clasa, straturile și organizarea, și rolurile și

35
pozițiile lor într -o situație reală, mai degrabă în lumina cristalizării modelelor de interacțiuni între
indivizi .
Teoriile din rețelele sociale nu consideră că indivizii formează un agregat mecanic, ci ca un
întreg organic în care elementele constitutive sunt conectate între ele, precum și cu celelalte prin
intermediul unui mozaic de legături bazate pe interacțiuni, direct sau indirect, în diverse domenii,
econo mice, politice și altele asemenea. Acest lucru permite unei rețele sociale să fie destul de flexibilă
pentru a include legăturile unui actor social care există în realitate, dacă acestea nu se încadrează în
limitele categoriilor sociale tradiționale și der ivă modalități adecvate de a le încorpora în structura
teoretică și metodologică, arătând bine în dinamica realității sociale. SNA, spre deosebire de
metodologiile convenționale ale științelor sociale, este înrădăcinat în faptul că universul social nu
constă dintr -un ansamblu de actori sociali independenți reciproc. Dimpotrivă, ele există într -un sistem
de interdependență , creând și structurând legături între ele. Metodologia SNA a contribuit, de
asemenea, la formularea măsurilor cantitative precise ale mu ltor concepte calitative care s -au folosit
de mult timp în studiul societății, dar au rămas vagi, adesea datorită gradului de separare dintre
concept și măsură. Satisfacția față de teoriile macroeconomice dominante ale societății, cum ar fi cele
ale funcți onalismului structural, a condus, prin urmare, la o alternativă în teoriile rețelelor sociale, în
special în ceea ce privește studierea lipsei coeziunii sociale și a situațiilor conflictuale, asimetrie
abruptă și fragmentare în societate.
Mai mult, SNA se rvește, de asemenea, ca un instrument puternic pentru identificarea
modificărilor într -un model al structurii grupului, indiferent dacă acesta este cazul datelor obținute
prin participarea la un grup mic; sondaj de cercetare cu comunități mari, cum ar fi s ate, orașe, și așa
mai departe; sau fluxurile de populație, comerț, trafic și așa mai departe între diferite regiuni.
Studiul rețelelor sociale în trecut a fost studiul rețelelor personale, deși forța centrală este
orientată către "căutarea comunității", "de a descoperi", în diferite domenii ale vieții și ale vieții
persoanelor .
Trebuie subliniat că, până acum, nu există niciun set de metode standard de analiză și inferență
a datelor pentru SNA, așa cum există în cazul variabilelor economice sau demografice utilizate în
mod obișnuit în cercetarea științelor sociale. Metodele SNA, de fapt, au evoluat într -un mod ad -hoc
în funcție de nevoile subiectului. Chiar și atunci, metodologia SNA arăta un model pe ansamblu. Este
în mare măsură bifocală, în sensul că putem clasifica în mare măsură metodele care conduc la măsuri

36
locale, care ana lizează atributele de rețea cu privire la unitățile sau diadele individuale și măsurile
globale care studiază caracteristicile rețelei considerate ca întreg. Cele două tipuri de măsuri nu sunt
independente. Mai degrabă, acesta din urmă poate fi obținut de la cel dintâi în câteva cazuri printr -un
fel de agregare, ca în cazul densității sau reciprocității. De asemenea, se poate remarca faptul că
metodele statistice obișnuite de analiză și deducere a datelor, cum ar fi măsurile centrale ale tendinței
și disper siei, sunt aplicabile în special în cazul primelor derivate din atributele personale. Dimpotrivă,
analiza măsurilor globale rămâne, în general, problematică în cazul fragmentării, nivelului de ierarhie,
accesibilității și așa mai departe. Prin natura lor, pentru astfel de caracteristici ale unei rețele, fie nu
există o măsură locală, fie măsura globală nu poate fi obținută prin agregarea măsurilor locale .
Nodurile, arcele și numărul lor sunt datele de bază folosite pentru analiza unei rețele sociale.
Aces tea sunt folosite pentru a obține valorile diferiților parametri ai rețelei. Subliniem faptul că în
analiza rețelelor sociale studiem relația diadică (care implică o pereche de noduri), în timp ce în
studiile statistice sau socio -economice obișnuite se stu diază unul sau mai multe atribute ale unui
singur nod, cum ar fi venitul, statutul educațional, vârsta, dimensiunea familiei și așa mai departe,
care se presupune că sunt independente din punct de vedere statistic. Dar datele rețelei sociale încalcă
flagra nt această ipoteză. Din acest motiv, este posibil ca tehnicile statistice uzuale să nu fie
întotdeauna aplicabile SNA. În plus, întrucât formele analitice din primele momente teoretice oferă o
imagine relativ bună a distribuției statistice, se pare că exis tă un număr mare de caracteristici ale unei
rețele sociale, fiecare dintre acestea putând varia în mod independent de celelalte și nu poate fi
abordabilă la studiul statistic numai prin momentele lor. Chiar dacă măsurile sunt supuse analizei
statistice, es te nevoie de un exercițiu extrem de complex de a obține formule statistice exacte pentru
estimarea acestor măsuri, mai ales atunci când se iau în considerare măsuri globale. În plus, o întreagă
rețea socială este un caz unic și, ca atare, nu a fost desenat ă la întâmplare dintr -un grup de rețele
sociale. Prin urmare, modul obișnuit de deducere a inferenței statistice este de asemenea nevalid. Din
nou, nu se poate presupune că caracteristicile globale ale unei rețele sociale, chiar și secvențele sale
depășite și în grade, nu sunt neapărat distribuite normal; ele urmează legea exponențială sau de putere,
mai ales într -o gamă finită. Prin urmare, aceasta necesită selectarea unor Unelte statistice
neparametrice adecvate pentru datele SNA .
În Figura 1.2, sunt cinci rețele sociale ipotetice care implică un număr mic de noduri pentru a
ilustra o parte din multitudinea de rețele posibile.

37

Fig. 1.2. Exemple de rețele cu număr mic de noduri
De exemplu, prima rețea care implică 5 noduri este aproape de situația în care toată lumea
merge la oricine altcineva. În a doua rețea care implică 10 noduri, toate legăturile sunt reciproce, însă
rețeaua este foarte fragmentată. A treia rețea, cuprinzând 5 noduri, este conectată, dar prezintă
concentrația de putere. Acesta e ste reținut de un singur nod (numărul 1) a cărui dispariție va determina
dezintegrarea rețelei. A patra rețea care implică șase noduri este de asemenea conectată în sensul că
toată lumea poate merge la oricine, dar printr -un număr mare de intermediari. Al cincilea, care implică
13 noduri, prezintă o ierarhie puternică și, deși este conectată, legăturile merg doar într -o singură
direcție. Nodurile și arcele furnizează setul de date constitutiv primar într -o rețea.

Fig. 1.3
În scopul comparării diferitelor rețele sociale, trebuie să se standardizeze cu atenție parametrul
în cauză pentru a obține o măsură. Pentru a ilustra acest lucru, se ia în considerare două rețele sociale

38
N1 și N2. Să presupunem că nodurile reprezintă pers oane, iar o legătură de la u la v indică faptul că
v merge la u pentru a petrece o parte din timpu său liber. Cum găsim răspunsul la următoarea
întrebare: Care dintre rețele este mai coerentă? Prin coeziune, înseamnă că actorii dintr -o rețea sunt
strâns le gați de legăturile de interacțiune. De exemplu, să presupunem că N1 este o rețea cu 10 noduri
și 20 de legături, iar N2 este o rețea cu 100 noduri și 200 de legături. Care rețea este mai coerentă sau
sunt coerente în mod egal? Chiar dacă a doua rețea are un număr mai mare de legături, nu putem
concluziona că este mai strâns legată. Să ne uităm la o altă rețea pentru a ilus tra acest lucru mai bine.
Să presupunem că N3 are 5 noduri și 20 legături. În mod evident, N3 este mai coerent decât N1,
deoarece toată lumea se duce la toți ceilalți în N3, în timp ce în N1, în medie, o persoană merge la
doar 2 din celelalte 9. Prin urmar e, trebuie să standardizăm numărul de legături în ceea ce privește
numărul de noduri corespunzător înainte de al utiliza pentru a compara două rețele. Cum facem asta?
Densitatea rețelei, definită ca m / n (n – 1), oferă o măsură naturală (Berkowitz, 1982, pp. 45 -46). Aici
și în ce urmează, n și m denotă, respectiv, numărul de noduri și numărul de legături din rețea. De
reținut este faptul că n (n – 1) este numărul maxim posibil de legături, dat fiind că n este numărul de
noduri . Prin urmare, măsura este m / n (n – 1). Densitatea se situează în intervalul de la 0 la 1, indiferent
de numărul de noduri , și poate fi folosit pentru a compara două rețele. În mod evident, densitatea este
20/90 = 22,2%, 200 / 9,900 = 2,02% și 20/20 = 100% în N1, N2, respectiv N3 .
Deși densitatea așa cum este definită mai sus este o bună măsură a coeziunii (de exemplu, cât
de aproape sunt nodurile în rețea), dar valabilitatea ei când n este mare ca în rețeaua N2? Presupunerea
implicită în standardizarea menționată mai sus este că fie care nod poate interacționa cu toate celelalte.
Este realist într -o situație din viața reală să susținem că, pentru a petrece timpul liber, fiecare persoană
poate vizita 99 de persoane ca o chestiune de practică obișnuită? Poate că trebuie să ne gândim la un
potențial set pentru fiecare vârf u de la care u face alegerile sale reale sau trebuie cel puțin să
presupunem ceva despre dimensiunea acestui set potențial. De exemplu, dacă presupunem că nimeni
nu poate merge la mai mult de 10 persoane pentru a petrec e timpul liber, atunci numărul maxim
posibil de legături în rețea cu 100 de persoane ar fi de 1.000, iar densitatea în N2 va fi revizuită la
200/1000 = 20%, care, probabil, oferă o imagine mai realistă.
Principala dificultate cu abordarea folosind seturi potențiale este determinarea acestora sau
dimensiunile lor, deoarece nu există o modalitate unică de a decide care ar fi setul potențial al unui
vârf. Un cercetător ar putea decide în favoarea solicitării în mod direct a respondentului să afle cine
aparține setului său potențial, în timp ce altul ar putea ezita, deoarece nu ar exista nicio modalitate de

39
a verifica fiabilitatea datelor. S-ar putea opta pentru o abordare structurală, cum ar fi considerarea
celor care aparțin aceleiași categorii etnice (de exemplu, cast, comunitate sau localitate) ca fiind o
componentă potențială. Cu toate acestea, această abordare ar putea face ca un set potențial să fie prea
mare pentru a fi realist. Din nou, s -ar putea găsi o soluție cum ar fi următorul exemplu: Setul potențial
pentru un vârf constă din acele noduri care sunt accesibile de la primul, dacă este necesar, în câteva,
să zicem doi sau trei pași ( direcția înainte sau înapoi ) în rețea. Cu toate acestea, este neces ar să se
verifice presupunerea că legăturile pot fi utilizate cu ușurință în direcția inversă. Mai mult, atunci
când se utilizează abordarea seturilor potențiale, ar trebui să se raporteze potențialele seturi utilizate
împreună cu valoarea măsurii. Având î n vedere aceste probleme, se va reveni, de obicei, la densitatea
definită anterior. Cu toate acestea, trebuie să fim atenți la modul în care datele sunt standardizate și
la interpretarea valorilor măsurilor în general.
Cei doi parametri de bază ai unei re țele sociale sunt numărul de noduri n și numărul de arce
m. Am discutat deja modul în care m poate fi standardizat pentru a obține densitatea m / n (n – 1), o
măsură globală a coeziunii. Deoarece arc ele din rețea nu pot fi distribuite uniform pe noduri , ar putea
fi interesat antă măsura locală corespunzătoare pe care o numim densitatea locală. Care este
echivalentul lui m pentru vârful i? Este numărul de legături di care ies și se numește gradul de ieșire
al vârfului i. Cum putem standardiza di? Deoarece valorile minime și maxime pe care le poate lua
sunt 0 și n – 1, luăm di / (n – 1) densitatea locală a vârfului i.
Există o altă posibilă corespondență a lui m pentru vârful i: numărul legăturilor ei care vin la
el, cunoscut sub numele de gradul interior al vârfului i. Măsura locală corespunzătoare densității este
ei / (n – 1). Arătăm că di și ei înseamnă lucruri cu totul diferite. Cu toate acestea, este ușor de observat
că suma dis, precum și suma eis, este m. Prin urmare, densitatea globală este media densităților locale
ale vârfurilor, indiferent dacă se bazează pe gradele interioare sau exterioare. Cu toate acestea, în mod
tradițional, se ia di / (n -1), mai degrabă decât ei / (n -1), ca măsură loc ală, în special atunci când
rețeaua reprezintă o relație de alegere sociologică.
Care este semnificația sociologică a gradului exterior și a gradului interior de vârf? Dacă este
o rețea de alegere sau preferință individuală (de exemplu, dacă o legătură uv înseamnă că u alege sau
preferă v), atunci gradele interioare ale nodurilor din rețea indică statutul respectiv după popularitate,
potențial de influență sau conducere și așa mai departe . Gradul exterior al unui vârf va indica apoi
capacitatea sa de sociabilitate.

40
Pe de altă parte, presupunem că este vorba de acordarea de asistență sau ajutor și sprijin, fie
financiar, material sau fizic, fie prin consiliere și oferirea de consultanță în momente critice, atunci
când este solicitat de urgență (de exemplu, o legătură uv înseamnă că u primește ajutor de la v). Apoi
gradul interior al unui vârf sugerează starea sa în rețea din punct de vedere al potențialului resurselor
sau al potențialului de a conduce pe ci neva la altul care are resurse. Gradul interior devine astfel o
măsură a puterii potențiale sau a influenței. Pe de altă parte, gradul exterior poate fi un indicator al
tamponului împotriva vulnerabilității resurselor sărace din comunitate. Aceasta poate, de asemenea,
scoate în evidență gradul de dependență. Din evaluarea situației de la sol bazată pe datele contextuale
disponibile, se poate stabili o interpretare adecvată a constatării (adică dacă este vorba de o
dependență sau de tampon împotriva vulnerab ilităților). Într -un sens general, gradul exterior indică
expansivitatea.
În cele din urmă, dacă atât gradul interior cât și cel exterior al unui vârf sunt zero, acesta este
un izolat fără nici o interacțiune cu ceilalți în rețeaua socială studiată. Inte rpretarea ei depinde din nou
de datele contextuale. Poate indica o situație de auto -suficiență autonomă care decurge din
inventivitate sau, dimpotrivă, o stare de atomizare prin fragmentare în care nu -i pasă de cealaltă ca
într-o stare de anomie sau înstră inare față de ceilalți în societate .
Al treilea parametru de bază al unei rețele sociale este numărul de perechi reciproce (numite
și ele simetrice sau reciproce). Acesta este numărul s de perechi neordonate de noduri {u, v} astfel
încât atât uv cât și vu sunt legături în rețea. Ca o chestiune de concept sociologic, reciprocitatea nu
este definită ca un fenomen instantaneu. Aceasta nu înseamnă echivalență de întoarcere la fiecare
ocazie; echivalența este de obicei realizată pe o perioadă lungă de timp. Ca o ilustrare, cităm ideea lui
Mayer’s (1975) despre "reciprocitate echilibrată", despre care credem că adaugă o altă dimensiune
pentru a lărgi sensul conceptului: "Am venit să studiez și să scriu o carte; ei m -au ajutat să adun
materialul pentru a face aces t lucru; și m -am întors cu cartea care a fost rezultatul eforturilor noastre
comune. . . o relație reciproc echilibrată între mine și Ram Kheri de -a lungul anilor ".
Cum ne standardizăm pentru a obține o măsură de reciprocitate, astfel încât să poată fi u tilizată
pentru compararea diferitelor rețele? Nu este greu de observat că într -o rețea cu n noduri, s poate lua
toate valorile întregi de la 0 la n (n – 1) / 2 , deci putem lua 2s / n (n – 1) ca măsură standardizată a
reciprocității . Cu toate acestea, ace astă măsură presupune faptul că toată lumea poate interacționa cu
oricine altcineva din rețea. Astfel, pe de o parte , este o măsură combinată de reciprocitate și coeziune.

41
S-ar putea dori mai degrabă o măsură în care arcele prezente în rețea (indiferent da că sunt mici sau
mari) sunt reciprocate. Apoi se fixează atât numărul de noduri n cât și numărul de arce m și se
standardizează s. Se poate demonstra că măsura standardizată corespunzătoare a reciprocității este de
2s / m cu condiția m ≤ n (n – 1) / 2 . (În fapt, numitorul măsurii ar trebui să fie redus cu 1 în cazul în
care este impar .)
La fel ca în cazul densității, pot exista variații mari în gradul de reciprocitate afișat de diferitele
noduri din rețea. Astfel, ar trebui să avem o măsură a reciprocității locale pentru un vârf. Echivalentul
lui s pentru vârful i este numărul si al altor vârfuri cu care este legat reciproc. Prin împărțirea lui si cu
n – 1, obținem măsura standardizată a reciprocității locale a vârfului i pentru a f i si / (n – 1). Deoarece
suma tuturor sis este egală cu 2s (amintim că definiția s implică perechi neordonate), măsura globală
2s / n (n – 1) este media măsurilor locale ale tuturor vârfurilor.
Care este măsura locală a reciprocității vârfului i corespunzător măsurii globale 2s / m ? Putem
lua si / di, unde di este gradul exterior al vârfului i. Observați că acum măsura globală este o medie
ponderată a măsurilor locale, greutatea lui si / di este di. S-ar putea să ne întrebăm din nou de ce să nu
folosim gradul interior ei în loc de gradul exterio r di. Motivul este că, de obicei, gradul exterior este
ceea ce este în controlul vârfului i. Uneori, în loc să pună o întrebare deschisă, gradele exterioare sunt
determinate de investigator, cum ar fi atunci când el sau ea solicită să urmeze tehnica "alege rii fixe"
a generatorului de nume, "Cine sunt cei mai buni trei prieteni?"
Reciprocitatea într -o rețea socială indică un fel de echilibru sau armonie, care poate anula
efectele negative ale stratificării sociale. Reciprocitatea locală a unui vârf în rețeaua unei relații de
alegere socială este un indicator al congenialității sale sociale sau al nivelului de a fi integrat cu ceilalți
în rețea. Reciprocitatea globală, pe de altă parte, este o măsură de integrare a vârfurilor între e le. Prin
urmare, ea d evine o măsură a solidarității sociale a unui grup sau a unei comunități. De fapt,
reciprocitatea globală a fost subliniată ca o caracteristică distinctivă a unei comunități în
trecut .Rădăcinile proprietăților teoretice ale reciprocității au fost cercetate în literatura sociologică
din diferite poziții teoretice ca o chestiune de normă culturală a societății, precum și ca o explicație
funcțional ă a persistenței ei , pe de o parte, și ca model al schimbului social de resurse, servicii,
produse, cunoștințe și expertiză, pe de altă parte .
În continuare vom da valorile măsurilor de mai sus pentru rețele în Figurile 1.2 și 1.3. Începem
cu cea de -a cincea rețea din Figura 1.2. Are 13 noduri și 16 arce. Prin urmare, densitatea sa este de

42
0,103. Se poate verifica dacă gradele exterioare și gradele interioare ale nodurilor sunt 1, 1, 1, 2, 2, 1,
2, 1, 1, 1, 1, 1, 1 și 4, 2, 1, 2, 0, 0, 0, 0, 0, 0. Astfel, densitatea locală bazată pe gradul exterior este de
0,167 pentru nodurile patru, cinci și șapte și 0,0833 pentru celelalte. Densitatea locală pe baza gradului
interior este de 0.333 pentru primul și al doilea nod, 0.25 pentru al patrulea, 0.167 pentru al cincilea
și al șaptelea, 0.0833 pentru al șaselea și 0 pentru nodurile rămase. Se poate verifica dacă densitățile
primelor patru rețele din Figura 1. 2 sunt 0,90, 0,121, 0,40 și, respectiv, 0,20. Pentru fiecare din rețelele
din Figura 1. 3, densitatea, precum și densitatea locală a fiecărui vârf sunt 0.20.
Ultima rețea din Figura 1.2 are doar o pereche reciprocă, deci măsura de reciprocitate , 2s / n
(n – 1), este 0.013. Se poate verifica dacă măsura este 0.80 pentru prima rețea, 1.00 pentru a doua și a
treia rețea și 0 pentru a patra. Este de 0,067, 0 și 1,00 pentru cele trei rețele din Figura 1.3.
Măsura 2s / m nu este aplicabilă primei rețele din Figura 1.2, deoarece m este prea aproape de n (n –
1). Este 1,00 pentru a doua și a treia rețea, 0 pentru a patra și 0,125 pentru ultima. Este de 0.333, 0 și
1.00 pentru cele trei rețele din Figura 1.3.
2.3 Unelte de analiză a rețelelor sociale
Uneltele de analiză a rețelelor sociale sunt utilizate pentru a identifica, analiza, vizualiza sau
simula noduri (organizații sau cunoștințe) și muchii (relație sau interacțiune) din diferite tipuri de date
de intrare, inclusiv modele matematice ale rețelelor sociale. Există mai multe unelte disponibile
pentru analiza rețelelor sociale. Rețeaua Internațională pentru Analiza Rețelelor Sociale (INSNA)
menține o listă largă de pachete software și biblioteci. Am selectat patru unelte de analiză pentru
comparație, și anume Gephi, Networkx, IGraph și Pajek. Selecția se bazează pe mai multe fapte.
Toate cele patru programe selectate sunt disponibile în mod gratuit pentru utilizare și se pot ocupa de
o dimensiune grafică mare. Uneltele de analiză a rețelei sunt fie bazate pe GUI, fie pachete / biblioteci
care pot fi utilizate într -un limbaj de programare. Gephi și Pajek sunt unelte de rețea bazate pe GUI,
în timp ce Networkx și IGraph sunt unelte bazate pe pachete. Următoarele sunt scurtel e detalii despre
fiecare dintre aceste patru unelte – Networkx este un pachet de limbaj Python pentru crearea,
manipularea și studiul structurii și funcțiilor rețelelor complexe. Cu acest instrument puteți încărca și
stoca rețele în formate de date standar d, puteți genera mai multe tipuri de rețele aleatoare și clasice,
analiza structura rețelei, construi modele de rețea, desena rețele și multe altele. Networkx are multe
caracteristici, cum ar fi structurile de date lingvistice pentru grafice, dIGraphs și multigraphs.

43
Nodurile pot fi "orice" (de ex. text, imagini), muchiile pot conține date arbitrare (de ex. ponderi, serii
de timp), algoritmi grafici standard, structura rețelei și măsurile de analiză etc.
Gephi este o platformă interactivă de vizualizare ș i explorare pentru toate tipurile de rețele, grafice
dinamice și ierarhice. Rulează pe Windows, Linux și Mac OS X. Gephi este un instrument pentru
oamenii care trebuie să exploreze și să înțeleagă graficele. Ca și Photoshop, dar pentru date,
utilizatorul i nteracționează cu reprezentarea; manipulează structurile, formele și culorile pentru a
descoperi proprietățile ascunse.
Pajek : Un software utilizat pe scară largă pentru desenarea rețelelor, Pajek are, de asemenea,
capabilități analitice și poate fi utiliz at pentru a calcula majoritatea măsurilor de centralizare, pentru
a identifica găurile structurale, modelul -bloc și altele.
IGraph este un pachet software gratuit pentru crearea și manipularea grafurilor. Acesta include
implementări pentru probleme clasice ale teoriei grafului, cum ar fi arborii de vârf minim și fluxul de
rețea, și implementează, de asemenea, algoritmi cum ar fi căutarea în structura comunității.
Implementarea eficientă a IGraph îi permite să gestioneze grafice cu milioane de noduri și much ii.
IGraph poate fi instalat ca biblioteci pentru C, R, Python și Ruby . Mai mult de patru unelte sunt
comparate pe următoarele șase criterii -platforme, tipuri de grafuri, complexitatea timpului
algoritmului, aspectul grafului, formatul de fișier de intrar e în graf, caracteristicile graficului.
Setul de date pentru compara țiile uneltelor SNA : Am folosit setul de date Slashdot . Acesta conține
77317 noduri și 982787 muchii. Slashdot este un site de știri legat de tehnologie, care prezintă știri
trimise de utilizatori care au evaluat știri despre subiecte legate de știință și tehnologie.
2.4 Comparații între unelte pentru rețele sociale
➢ Comparație bazată pe platformă
Uneltele de analiză a rețelelor sociale Pajek și Gephi sunt software separat, Networkx și I Graph
sunt biblioteci. Pajek / gephi rulează pe platformele Windows și Networkx utilizează biblioteca
python și IGraph utilizează biblioteca python / r / c pentru analiza rețelelor sociale. Networkx, IGraph
sau Pajek pot gestiona mai mult de un milion de n oduri, iar Gephi poate gestiona până la 150000 de
noduri.
Tabelul 2.1 Compararea generală a uneltelor

44
Software NETWORKX IGRAPH GEPHI PAJEK
Tip LIBRĂRIE LIBRĂRIE DE SINE
STĂTĂTOR DE SINE
STĂTĂTOR
Platformă PYTHON PYTHON/R/C
LIBRĂRIE WINDOWS WINDOWS
Timp de calcul RAPID RAPID RAPID MEDIU
Nr. de noduri 1 MILION 1 MILION 0.15 MILION 1 MILION
Sursa: Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali ,
Analysis of Facebook Social Network , 2013 , pag. 389
➢ Comparație bazată pe tipurile rețelei
În analiza rețelei sociale există patru tipuri de rețea Graph.
Într-o rețea cu un singur mod, fiecare vârf poate fi legat unul de altul. Într -o rețea de moduri
avem un singur set de noduri și legături care sunt conectate la aceste noduri. Într -o rețea cu două
moduri, nodurile sunt împărțite în două seturi, iar noduril e pot fi legate numai de nodurile din celălalt
set. Două moduri de rețea Grafic sunt un tip particular de rețele cu două seturi de noduri și legăturile
sunt stabilite între nodurile care aparțin seturilor diferite. Tehnicile de analiză a rețelelor cu un singur
mod nu pot fi întotdeauna aplicate rețelelor cu două moduri fără modificări sau schimbări de
semnificație. Tehnicile speciale pentru rețelele cu două moduri sunt foarte complicate. Putem crea
două rețele cu un singur mod dintr -o rețea de două moduri .
În rețeaua relațională multiplă vor exista mai multe tipuri de relații între noduri. Nodurile pot
fi strâns legate într -o singură rețea relațională, dar sunt îndepărtate în altul.
În rețelele temporale (grafice dinamice), rețelele se pot schimba în ti mp. Liniile și nodurile
dintr -o rețea temporală ar trebui să satisfacă condiția de consistență: dacă o linie este activă în timp t,
atunci și vârfurile ei finale sunt active în timpul t.
Pentru o analiză de rețea într -un mod sau două moduri putem folosi o ricare dintre uneltele
software, dar pentru graficul de rețea relațional ă multi plă avem doar unelte software Pajek. Pentru un
grafic temporar de rețea avem uneltele Networkx și Pajek.
Tabelul 2.2 Tipuri de rețea suportate de unelte

45
Tipul grafului Networkx IGraph Gephi Pajek
1-Modul rețea Da Da Da Da
2-Modul rețea
Graf Da Da Da Da
Rețea
multirelațională
Graf Nu Nu Nu Da
Rețea temporară
Graf Da Nu Nu Da
Sursa: Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali , Analysis of Facebook Social Network , 2013 , pag.
390
➢ Comparație bazată pe layout
În analiza rețelei sociale avem mulți algoritmi layout . IGraph sau Pajek au cele mai faimo și și
mai rece nți algoritmi de layout , Fruchterman Reingold sau Kamanda Kawai . Tot softul lor are layout
circular sau în formă de arc. Gephi oferă utilizatorilor un l ayout ușor de utilizat. Gephi oferă
capabilități precum Photoshop unde utilizatorii au multe facilități suplimentare. Layout -ul forțat este
un alt algoritm renumit dat de software -ul Gephi.
Pentru o vizualizare ușor de utilizat, putem folosi software -ul Gephi, dar nu putem gestiona
grafice mari sau complexe. Pentru rețele mari și complexe putem folosi fie Networkx, fie IGraph.
IGraph sau Networkx oferă suport pentru multe alte unelte de vizualizare. Pentru setul de date mici,
putem folosi software indepen dent (Gephi, Pajek) pentru că putem gestiona cu ușurință software -ul
independent.
Tabelul 2.3 Graf layout suportat de unelte
Layout Networkx IGraph Pajek Gephi
Layout circular Da Da Da Da
Layout
întâmplător Da Da Da Nu
Layout spectral Da Nu Nu Nu
Layout arcuit Da Da Da Da

46
Layout Graphviz Da Nu Nu Nu
Kamanda kawai Nu Da Da Nu
Fruchterman
reingold Nu Da Da Nu
Layout Force
Atlas Nu Nu Da Nu
Sursa: Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali , Analysis of Facebook Social Network , 2013 , pag.
390
➢ Comparație bazată pe complexitatea timpului algoritmului, formatele de
intrare și caracteristicile grafice
Analiza rețelei sociale are mulți algoritmi pentru c aracteristicile grafice. Comparăm aceste
unelte pentru fiecare caracteristică pe baza complexității algoritmilor.
IGraph și Networkx au algoritmi pentru numărul maxim de caracteristici. Pe baza
complexității algoritmilor, putem spune că IGraph este un software mai util, comparativ cu alte
aplicații software. IGraph oferă algoritmi eficienți pentru rangul paginii, toate tipurile de centralizare,
densitate, MST și calea cea mai scurtă.
Comparațiile dintre cele patru rețele sociale bazate pe complexitatea timpului, formatele de
fișiere de intrare și caracteristicile graficelor sunt prezentate în tabelele următoare.
Tabelul 2.4 Complexitățile timpului
CARACTERISTICI NETWORKX IGRAPH GEPHI PAJEK
IZOMORFISM O(n2) EXP NA NA
COREm=nr de linii O(M) O(M) O(M) O(M)
CLICI O(|V|/(log)2) O(3|V|/3) O(N)
CEA MAI
SCURTĂ CALE O(|V|.|E|) O(|V|+|E|) O(|V|+|E|) O(|V|+|E|)
CLUSTRING O(V) NA O(V) NA
TOATĂ CALEA
SIMPLĂ O(|V|+|E|) O(|V|+|E|) NA NA

47
CENTRALITATE
DE APROPIERE O(n.|E|) O(n.|E|) NA NA
DENSITATE O(n3) O(1) NA NA
MST NA O(|V|+|E|) NA NA
CICLURI O((|V|+|E|).c+1) NA NA NA
RANG PAGINĂ NA O(|E|) O(E) NA
BETWEENNESS NA O(|V|.|E|) NA NA
VECTOREIGEN NA O(|V|+|E|) NA NA
Sursa: Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali , Analysis of
Facebook Social Network , 2013 , pag. 3 90
Tabelul 2.5 Formate de fișiere suportate de unelte
FORMATUL
FIȘIERULUI DE
INTRARE NETWORKX IGRAPH GEPHI PAJEK
FORMAT .NET DA DA DA DA
.GML DA DA DA NU
.GRAPHGML DA DA DA NU
EDGESLIST(.TXT) DA DA NU NU
EDGESLIST(.CSV) DA DA NU NU
.DOT DA DA DA NU
.PAJEK NU DA NU DA
.DAT NU NU NU DA
ADJACENCY
LIST DA DA NU NU
.GDF NU NU DA NU
GRAPH DB NU DA DA NU
Sursa: Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali , Analysis of Facebook Social Network , 2013 , pag.
391

48
Tabelul 2.6 Caracteristici grafice variate susținute de unelte
CARACTERISTICĂ
GRAFICĂ NETWORKX IGRAPH GEPHI PAJEK
APROXIMAȚIE DA NU NU NU
ASORTIVITATE DA DA NU NU
CENTRALITATE DA DA DA DA
DIAMETRUL
REȚELEI DA DA DA DA
CLUSTERING DA DA DA DA
FLUX DA DA DA NU
COMUNITĂȚI DA DA NU DA
COEZIUNE NU DA NU NU
BLOCAREA
MODELĂRII DA NU DA NU
DENDROGAM DA DA DA NU
CLICĂ DA DA DA NU
RANG PAGINĂ DA DA DA DA
BFS DA DA DA NU
DFS DA DA DA NU
HITURI DA DA DA DA
DENSITATE DA DA DA DA
NUCLEU DA DA DA NU
IZOMORFISM DA DA DA NU
PARTIȚIE NU NU DA NU
LEGEA PUTERII DA DA NU NU
MST DA DA DA NU
BI PARTILE DA DA DA NU
PUNTE DA DA DA NU

49
DYAD DA DA DA NU
HITURI DA NU NU DA
Sursa: Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali , Analysis of Facebook Social Network , 2013 , pag.
391

Tabelul 2.7 Timp de execuție pentru caracteristici variate
CARACTERISTICI
SNA NETWORKX IGRAPH GEPHI PAJEK
Timp de încărcare 54.67 sec 3.707 sec 29 sec 3 sec
Grad central 58.57 sec 6.199 sec 4 sec 2 sec
Grad grafic 60.87 sec 6.22 sec 4 sec 2 sec
Rang pagină 120.78 sec 9.81 sec 10 sec Nu
Hituri 57.23 sec 15.43 sec 8 sec Nu
Clici 66.98 sec 9.35 sec Na Nu
Densitate 58.94 sec 3.302 sec 4 sec Nu
Modularitate 81.4 sec 9 sec 30 sec 6 sec
Diametrul rețelei 35 sec 3.51 sec 120 sec Nu
Nucleu 65.84 sec 6.532 sec Nu 1 sec
Coeziune Nu 8.943 sec Nu Nu
Coeficientul de
grupare 3303.99 sec 1800 sec 1200 sec 108 sec
Hub 76.57 sec 5.831 sec 3 sec Nu
Autoritate Șirul e prea mare 6.783 sec 3 sec Nu
Sursa: Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali , Analysis of Facebook Social Network , 2013 , pag.
391
Software -ul individual este foarte util pentru vizualizarea graficelor (până la maximum câteva
mii de noduri), conversie în format de date. IGraph este cel mai rapid instrument care oferă cele mai
multe caracteristici grafice și ca re gestionează o rețea mare și complexă. Bibliotecile (Networkx sau

50
IGraph) sunt mai utile pentru sarcinile care implică milioane de noduri și pentru operații precum
uniunea și diferența dintre seturile de noduri sau pentru grupare. Software -urile individu ale sunt ușor
de utilizat și ușor de învățat, astfel încât pentru un începător Pajek și Gephi este un software adecvat.
Pentru setul de date complexe și în scopul cercetării putem folosi software -ul Networkx și IGraph.
Pentru o analiză de rețea într -un mo d sau două moduri putem folosi oricare dintre uneltele
software, dar pentru graficul de rețea multi -relațional, avem doar unelte software Pajek. Pentru un
grafic temporar de rețea avem uneltele Networkx și Pajek.
Tot software -ul poate gestiona formatul de fișier .Net. Dar majoritatea datelor sunt prezente
în format .txt. Putem să înțelegem cu ușurință sau să manipulăm formatul .txt sau multe site -uri web
oferă seturi de date în format .txt, astfel încât să putem fo losi uneltele software IGraph sau Networkx.
Avem multe programe de conversie în format de fișier pe care le po ate converti formatul de fișier .txt
în format .Net, dar aceste programe se pot ocupa doar de fișiere de dimensiuni mici. Deci, pentru un
set de d ate de mari dimensiuni, folosim unelte software IGraph sau Networkx.
IGraph furnizează în cea mai mare parte caracteristici grafice și se ocupă, de asemenea, de o
rețea mare și complexă. Toate acestea pot să calculeze centralizarea, coeficientul de grupare,
diametrul rețelei, rangul paginii, densitatea. Dar dacă vrem să cal culam o caracteristică specifică
alegem software diferit. Dacă vrem să calculam coeziunea, putem folosi uneltele Networkx sau
IGraph. Dacă vrem să calculam Bridge și dyad, putem folosi uneltele software Networkx, IGraph și
Pajek. Gephi nu oferă facilități pentru calculul dyad sau p unte.
IGraph și Pajek sunt unelte de software mai rapide comparativ cu altele. Dar Pajek nu oferă
toate caracteristicile graficului. Deci, dacă vrem să analizăm toate caracteristicile grafice, putem
folosi software -ul IGraph. IGra ph oferă rezultate rapide la aproape toate caracteristicile grafice.
Timpul de încărcare este minim pentru software -ul Pajek. Timpul de execuție pentru centralitate, rang
de pagină, grad de graf și clicuri este minim în software -ul IGraph. Deci, pe baza ti mpului de execuție,
IGraph este un software mai bun.

51
Capitolul III . Analiza rețelei de socializare Facebook folosind
metode implementate în R
3.1 Introducerea pachetului Rfacebook
Pachetul Rfacebook este disponibil pe CRAN. Acest pachet este destinat să ofere accesul la
Facebook Graph API cu R. Include o serie de funcții care permit utilizatorilor R să -și extragă
informațiile lor private, să caute postări publice Facebook care menți onează cuvinte cheie specifice,
să capteze date din paginile Facebook și sa își actualizeze statusul Facebook.
În continuare voi descrie și ilustra funcțiile curente incluse în pachet. Folosit în combinație cu
alte pachete R, Rfacebook poate fi un instru ment foarte puternic pentru cercetătorii interesați de
analizarea datelor sociale.
Instalare și autentificare
Rfacebook poate fi instalat direct din CRAN. Codul de mai jos arată modul de instalare
> install.packages("Rfacebook") # din CRAN
> library(devtools)
Dacă dorim să accesăm datele din Facebook trebuie să avem un cont de Facebook. Pentru a
ccesarea datelor din Facebook , utilizăm Graph API Explorer, o unealtă disponibilă la adresa
https://developers.facebook.com/tools/explorer

52

Există două modalități de a face cereri autentificate cu Rfacebook. O opțiune este generarea
unui token temporar pe Graph API Explorer. Când ci neva se conectează cu o aplicație utilizând
Facebook Login, aplicația va putea să obțină un token de acces care of eră acces temporar și securizat
la API -urile Facebook.

Primim permisiunea de la Facebook folosind Graph API Explorer prin click pe butonul Get Token.
Când facem click pe Get token se va afișa :
Utilizatorul
autentifică și
aprobă
permisiunileClientul solicită
acces și permisiuni
prin SDK și Login
Dialog
Token -ul de
acces este
returnat la
client

53

De asemenea putem alege ce fel de date avem nevoie, apăsăm Get Access Token. Apoi
copiem și inserăm codul în R, îl salvăm ca vector pentru a putea fi transferat ca argument la orice
funcție Rfaceboo k,după cum urmează :
> library(Rfacebook)
# token generat aici: https://developers.facebook.com/tools/explorer
> token <- "XXXXXXXXXXXXXX"
> me <- getUsers(" 589473551153966 ", token, private_info = TRUE)
Acest token de acces este valabil pentru 2 ore.
Este posibil să se genereze un token de lungă durată (valabil timp de două luni) utilizând
funcția fbOAuth , dar procesul este un pic mai complicat.
Mai întâi trebuie să creăm o aplicație pe platforma Facebook. Vom folosi această aplicație
pentru a ne cone cta la Facebook API. În acest fel putem gestiona conexiunile foarte bine, dar are și
unele dezavantaje. Se pot obține doar informații despre prietenii care utilizează aplicația. Acest lucru
creează probleme mari, deoarece nu mai putem crea o rețea cu toți prietenii.
Pentru a crea o nouă aplicație, accesăm https://developers.facebook.com

54

Click pe "My Apps" și alegem "Add New App". În fereastra următoare, alegem "Website" și
dăm aplicației un nume.

Aplicăm modificările cu “Create App ID”. Acum trebuie să conectăm sesiunea R cu aplicația
noastră și să o autentificăm în profilul nostru Facebook pentru Data Mining. Rfacebook oferă o funcție
foarte ușoară pentru asta. Doar copiem ID-ul aplicației și app secret din setările aplicației .
> require("Rfacebook")

> fb_oauth < – fbOAuth(app_id=" 212220329 180038",
app_secret= "e54f301b292d97ed3574013298820bc9 ",extended_permissions =
TRUE)

55
Consola va printa apoi mesajul :

Copiem adresa URL și accesăm setările aplicației Facebook. Facem click pe setări și apoi
selectăm "+ Add platform".

Apoi, adăugăm adresa URL în câmpul "Site URL" și salvăm modificările.

Ne întoarcem în sesiunea R și apăsăm Enter. Apoi,o fereastră de browser se va deschide și
vom permite aplicației să acceseze contul de Facebook.

56
Dacă totul funcționează, browserul ar trebui să afișeze mesajul

Și consola R va confirma cu

> me$name # numele meu
[1] "Alexandru Pușcu"

> me$hometown # orașul meu
[1] "Craiova, Romania"
Exemplul de mai sus arată modul de preluare a informațiilor despre un utilizator din Facebook.
Rețineți că acest lucru poate fi aplicat oricărui utilizator (sau vector al utilizatorilor) și că atât numele,
cât și ID -urile utilizatorilor pot fi folosite ca argumente. Informațiile private vor fi, desigur, returnate
numai pentru prieteni și dacă token -ul a primit permisiunea de a accesa astfel de date.

3.2 Analiza rețelei de prieteni
Funcția getFriends permite utilizatorului să capteze informații despre prietenii lui din
Facebook. Deoarece ID -urile utilizatorilor sunt atribuite în ordine consecutivă, este posibil să aflăm
care dintre prietenii noștri a fost primul care a deschis un cont Facebook.
> my_friends < – getFriends(token, simplify = TRUE)
> head(my_friends$id, n = 1) # cel mai mic ID
[1] "10204293992812508"

Pentru a accesa informații suplimentare despre o listă de prieteni (sau orice alt utilizator),
putem utiliza funcția getUsers , care va retu rna un cadru cu datele utilizatorilor Facebook. Unele dintre
variabilele disponibile pentru toți utilizatorii sunt: sex, limbă și țară. De asemenea, este posibil să
obținem statutul de relație, orașul natal, ziua de naștere și locația pentru prietenii noșt ri dacă am setat
private_info = TRUE.

57
> my_friends_info < – getUsers(my_friends$id, token, private_info = TRUE)
> table(my_friends_info$gender) #sexul

female male
7 9
> table(substr(my_friends_info$locale, 1, 2)) #limba

en ro
4 13
> table(substr(my_friends_info$locale, 4, 5)) #tara

GB RO US
1 13 3

Putem de asemenea să ne actualizăm statusul pe Facebook :
> updateStatus ("Mesaj", token)

3.3 Analiza datelor de pe o pagină de Facebook
Paginile Facebook sunt probabil cea mai bună sursă de informații despre modul în care
indivizii utilizează acest site de socializare, deoarece toate postările, aprecierile și comentariile pot fi
colectate combinând funcțiile getPage și getPost . De exemplu, să presupunem că suntem interesați
să aflăm cum au devenit populare paginile de Facebook ”Liviu Dragnea ” vs “Klaus Iohannis ” pe de
o parte și “Cristiano Ronaldo” vs “Messi” pe de altă parte și ce tip de audiență au. Primul pas ar fi
obținerea unui frame cu informații despre postările acestora utilizând codul de mai jos. Pentru a
analiza cele mai recente 500 de postări am setat n rMaxPosts =500 și funcția se va opri automat când
va ajunge la numărul de postări setat de noi.
3.3.1 Analiză pagini „Liviu Dragnea” și „Klaus Iohannis”
> pageDragnea < – getPage("liviudragnea.ro", token , n rMaxPosts = 500)

25 posts (…) 500

Cea mai popular postare a lui Liviu Dragnea

> pageDragnea[which.max(pageDragnea$likes_count), ]

from_id from_name
154 299049656840455 Liviu Dragnea

message

58
154 M-am întors de la instalarea pre<U+0219>edintelui Americii <U+0219>i
l-am gasit pe pre<U+0219>edintele României în fruntea unei noi mineriade,
o manifesta<U+021B>ie neautorizata, împotriva guvernului României, împotr
iva ordinii constitu<U+021B>ionale <U+0219>i împotriva votului popular di
n 11 decembrie, sabotând legalitatea care sta la baza statului de drept.\
n\nPre<U+0219>edintele <U+021B>arii s-a situat azi în afara legii, vizând
avantaje politice personale <U+0219>i cerând abera<U+021B>ii constitu<U+0
21B>ionale: retragerea unor ordonan<U+021B>e, mai ales a unora care nu au
fost date.\n\nE un început de lovitura de stat. De fapt, pre<U+0219>edint
ele Iohannis vrea, a<U+0219>a cum a vrut <U+0219>i fostul pre<U+0219>edin
te Basescu, sa puna în catu<U+0219>e puterea legitimata prin votul democr
atic. Vrea ca în continuare România sa fie condusa de institu<U+021B>ii f
ara legitimitate democratica, prin teroare, iar românii sa ramâna prizoni
erii unor puteri nealese. \n\nAm spus în campanie ca vreau ca românii sa t
raiasca liberi în <U+021B>ara lor, fara teama ca sunt asculta<U+021B>i, u
rmari<U+021B>i, haitui<U+021B>i, <U+0219>antaja<U+021B>i <U+0219>i nedrep
ta<U+021B>i<U+021B>i. Nu-mi iau cuvintele înapoi. Sus<U+021B>in ac<U+021B
>iunile împotriva corup<U+021B>iei, dar împotriva adevaratei corup<U+021B
>ii.\n\nAsta seara am solicitat Ministrului de Interne sa retraga jandarm
ii din fa<U+021B>a sediului PSD, fiindca eu consider ca PSD n-are motive
sa fie aparat. PSD e aparat de ideile lui politice, de programul de guver
nare <U+0219>i de suportul popular. \n\nÎi asigur pe români ca nu-i voi ma
i permite pre<U+0219>edintelui Iohannis sa rastoarne ordinea constitu<U+0
21B>ionala, sa uzurpe calita<U+021B>i oficiale intrând abuziv în <U+0219>
edin<U+021B>ele de guvern sau sa incite la dezordine sociala <U+0219>i vi
olen<U+021B>a. \n\nVreau ca programul de guvernare sa fie pus în practica
în totalitate. Dincolo de jocul politic egoist al pre<U+0219>edintelui Io
hannis, via<U+021B>a românilor are nevoie de bunastare <U+0219>i siguran<
U+021B>a.
created_time type link id
story
154 2017-01-22T19:46:56+0000 status <NA> 299049656840455_1279923448753066
<NA>
likes_count comments_count shares_count
154 17264 16106 7669
Cea mai populară postare a primit 17264 de aprecieri, 16106 comentarii și a fost distribuită de 7669
de ori.
Același lucru îl facem și pentru pagina “Klaus Iohannis”.
> pageIohanis < – getPage("klausiohannis", token, n rMaxPosts )

25 posts (…) 500

> pageIohanis[which.max(pageIohanis$likes_count) , ]

from_id from_name
436 632184113535510 Klaus Iohannis

message

59
436 Aseara, la recep<U+021B>ia tradi<U+021B>ionala oferita de Pre<U+0219>edintel
e Statelor Unite ale Americii, Barack Obama.
created_time type
436 2015-09-29T16:22:55+0000 photo

link
436 https://www.facebook.com/klausiohannis/photos/a.632202593533662.10737 41828.6
32184113535510/901576036596315/?type=3
id story likes_count comments_count shares_count
436 632184113535510_901576036596315 <NA> 108323 2199 3645
Cea mai populară postare a paginii “Klaus Iohannis” a primit 108323 aprecieri, 2199 comentarii și a
fost distribuită de 3645 de ori.
Reprezentăm grafic informații legate de cele mai puțin populare și cele mai populare postări ale celor
2 politicieni.
> etichete = c(rep("comentarii", 2), rep("aprecieri", 2), rep("distribuir
i", 2))
> politicieni = rep(c("Iohanis", "Dragnea"), 3)
> evalsMax = c(pageIohanis[which.max(pageIohanis$likes_count), ]$comments
_count, pageDragnea[which.max(pageDragnea$likes_count), ]$comments_count,
+ pageIohanis[which. max(pageIohanis$likes_count), ]$likes_co
unt, pageDragnea[which.max(pageDragnea$likes_count), ]$likes_count,
+ pageIohanis[which.max(pageIohanis$likes_count), ]$shares_c
ount, pageDragnea[which.max(pageDragnea$likes_count), ]$shares_count)
> evalsMax
[1] 2199 16106 108310 17263 3644 7669
> evalsMin = c(pageIohanis[which.min(pageIohanis$likes_count), ]$comments
_count, pageDragnea[which.min(pageDragnea$likes_count), ]$comments_count,
+ pageIohanis[which.min(pageIohanis$likes_count), ]$likes_co
unt, pageDragnea[which.min(pageDragnea$likes_count), ]$likes_count,
+ pageIohanis[which.min(pageIohanis$likes_count), ]$shares_c
ount, pageDragnea[which.min(pageDragnea$lik es_count), ]$shares_count)
> evalsMin
[1] 36 4 405 104 280 0
> politicsMin < – ggplot( data = data.frame(etichete, politicieni, evalsMi
n), aes( x = politicieni, y = evalsMin, fill = etichete)) +
+ geom_bar( stat = "identity", position ="dodge") +
+ xlab("Politicieni") + ylab("Numar utilizatori") +
+ theme(text = element_text(size=14)) +
+ ggtitle("Comparatii pentru cea mai putin populara postare")+
+ theme(plot.title = element_text(hjust = 0.5))
> politicsMin

60

Fig 3.1
> politicsMax < – ggplot( data = data.frame(etichete, politicieni, evalsMa
x), aes( x = politicieni, y = evalsMax, fill = etichete)) +
+ geom_bar( stat = "identity", position ="dodge") +
+ xlab("Politicieni") + ylab("Numar utilizatori") +
+ theme(text = element_text(size=14)) +
+ ggtitle("Comparatii pentru cea mai populara postare")+
+ theme(plot.title = element_text(hjust = 0.5))
> politicsMax

Figura 3.2

61
Vom plota evoluția de -a lungul timpului pentru like -uri, comentarii și d istribuiri.
> dataOverTime$Date < – as.Date( dataOverTime$Date)
> comparisonTimePlot < – ggplot( data = dataOverTime, aes( Date, Aprecieri
, color = Politicieni, shape = Politicieni)) +
+ geom_line(size= 0.5) +
+ geom_point(size = 1)+
+ ggtitle("Comparatii aprecieri pentru cele mai recente postari")+
+ theme(plot.title = element_text(hjust = 0.5))
> comparisonTimePlot

Fig 3. 3 – Comparații aprecieri pentru cele mai recente postări
> dataOverTime = data.frame(Politicieni = rep(c("Iohanis", "Dragnea"), 2)
, Comentarii = c(pageIohanis$comments_count,pageDragnea$comments_count),
Date = c(pageIohanis$created_time, pageDragnea$created_time))
> dataOverTime$Date < – as.Date( dataOverTime$Date)
> comparisonTimePlot < – ggplot( data = dataOverTime, aes( Date, Comentari
i, color = Politicieni, shape = Politicieni)) +
+ geom_line(size=1,linetype="dotted") +
+ geom_point(size = 2)+
+ ggtitle("Comparatii comentarii pentru cele mai recente postari")+
+ theme(plot.title = element_text (hjust = 0.5))
> comparisonTimePlot + scale_color_manual(values=c("#ff0000", "#ffff00"))

62

Fig 3.4 – Comparații comentarii pentru cele mai recente postări
> dataOverTime = data.frame(Politicieni = rep(c("Iohanis", "Dragnea"), 2)
, Distribuiri = c(pageIoh anis$shares_count,pageDragnea$shares_count), Dat
e = c(pageIohanis$created_time, pageDragnea$created_time))
> dataOverTime$Date < – as.Date( dataOverTime$Date)
> comparisonTimePlot < – ggplot( data = dataOverTime, aes( Date, Distribui
ri, shape = Politicieni)) +
+
+ geom_line(alpha=0. 5) +
+ geom_point(colour = "black", size = 3) +
+ geom_point(colour = "blue", size = 3) +
+ geom_point(aes(shape = factor(Politicieni)))
> comparisonTimePlot + scale_color_manual(values=c("#ff0000", "#0000ff"))

63

Figura 3.5 – Comparații distribuiri pentru cele mai recente postări
3.3.2 Analiză pagini „Cristiano Ronaldo ” și „Leo Messi”
> pageRonaldo < – getPage("Cristiano", token, nrMaxPosts)
25 posts 50 posts 75 posts 100 posts 125 posts 150 posts 175 posts 200 posts 225
posts 250 posts 275 posts 300 posts 325 posts 350 posts 375 posts 400 posts 425
posts 450 posts 475 posts 500 posts

Cea mai populară postare a lui Ronaldo
> pageRonaldo[which.max(pageRonaldo$likes_count), ]
from_id from_name
325 81221197163 Cristiano Ronaldo

message
325 So happy to be able to hold the two new loves of my life <f0><U+009F><U+0099
><U+008F><U+2764>
created_time type
325 2017-06-29T17:09:41+0000 photo

link
325 https://www.facebo ok.com/Cristiano/photos/a.407367867163.178908.81221197163/
10155535133717164/?type=3
id story likes_count comments_count shares_count
325 81221197163_10155535133717164 <NA> 3905706 126604 190829
107147
Cea m ai populară postare a lui Cristiano Ronaldo a primit 3905706 aprecieri, 126604 comentarii și
190829 distribuiri

64
Cea mai puțin populară postare a lui Ronaldo:
> pageRonaldo[which.min(pageRonaldo$likes_count), ]
from_id from_name
1 81221197163 Cristiano Ronaldo
message
1 When I talk to the ball, it listens. BELIEVE. #JUSTDOIT Nike Football
created_time type
1 2018-06-19T07:00:02+0000 video
link
1 https://www.facebook.com/Cristiano/videos/10156520452692164/
id story
1 81221197163_10156520452692164 Cristiano Ronaldo with Nike Football.
likes_count comments_count shares_count
1 42109 998 1997
Cea mai puțin populară postare a primit 42109 aprecieri, 998 comentarii și 1997 distribuiri
Același lucru îl facem si pentru Messi

> pageMessi < – getPage("leomessi", token, nrMaxPosts)
25 posts 50 posts 75 posts 100 posts 125 posts 150 posts 175 posts 200 posts 225
posts 250 posts 275 posts 300 posts 325 posts 350 posts 375 posts 400 posts 425
posts 450 posts 475 posts 500 posts

Cea mai populară postare a lui Messi:

> pageMessi[which.max(pageMessi$likes_count), ]
from_id from_name
394 176063032413299 Leo Messi
message
394 <f0><U+009F><U+0098><U+0083><f0><U+009F><U+0090><U+00B6>
created_time type
394 2016-09-07T17:23:25+0000 photo

link
394 https://www.facebook.com/leomessi/photos/a.301943896491878.81719.17606303241
3299/1447676691918587/?type=3
id story likes_count comments_count
394 176063032413299_1447676691918587 <NA> 3503930 53780
shares_count
394 107147
Cea mai populară postare a lui Messi a primit 3503930 aprecieri, 53780 comentarii și 107147
distribuiri
Cea mai puțin populară postare a lui Messi:
> pageMessi[which.min(pageMessi$likes_count), ]
from_id from_name message
225 176063032413299 Leo Messi FC Barcelona v Real Betis Balompié
created_time type
225 2017-08-21T18:00:00+0000 photo

link
225 https://www.facebook.com/leomessi/photos/a.1937053546314230.1073741918.17606
3032413299/1937054232980828/?type=3

65
id
225 176063032413299_1937054232980828
story likes_count
225 Leo Messi added 9 new photos — at Barcelona, Camp Nou. 5374
comments_count shares_count
225 173 796
Cea mai puțin populară postare a lui Messi a primit 5374 aprecieri, 173 comentarii și 796 distribuiri
Reprezentăm grafic informații legate de cele mai puțin populare și cele mai populare postări
> #cele mai populare si cele mai putin populare postari
> etichete = c(rep("comentarii", 2), rep("aprecieri", 2), rep("distribuir
i", 2))
> fotbalisti = rep(c("Ronaldo", "Messi"), 3)
> evalsMax = c(pageRonaldo[which.max(pageRonaldo$likes_count), ]$comments
_count, pageMessi[which.max(pageMessi$likes_count), ]$comments _count,
+ pageRonaldo[which.max(pageRonaldo$likes_count), ]$likes_co
unt, pageMessi[which.max(pageMessi$likes_count), ]$likes_count,
+ pageRonaldo[which.max(pageRonaldo$likes_count), ]$shares_c
ount, pageMessi[which.max(pageMessi$ likes_count), ]$shares_count)
> evalsMax
[1] 126604 53780 3905706 3503930 190829 107147
> evalsMin = c(pageRonaldo[which.min(pageRonaldo$likes_count), ]$comments
_count, pageMessi[which.min(pageMessi$likes_count), ]$comments_count,
+ pageRonaldo[which.min(pageRonaldo$likes_count), ]$likes_co
unt, pageMessi[which.min(pageMessi$likes_count), ]$likes_count,
+ pageRonaldo[which.min(pageRonaldo$likes_count), ]$shares_c
ount, pageMessi[which.min(pageMessi$likes_count ), ]$shares_count)
> evalsMin
[1] 998 173 42109 5374 1997 796
> fotbalMin < – ggplot( data = data.frame(etichete, fotbalisti, evalsMin),
aes( x = fotbalisti, y = evalsMin, group = etichete, shape = etichete, co
lor = etichete)) +
+ geom_line(size=1.5) +
+ geom_point(size=3, fill="white") +
+ scale_shape_manual(values=c(22,21,24))+
+ xlab("Fotbalisti") + ylab("Numar utilizatori") +
+ theme(text = element_text(size=14)) +
+ ggtitle("Comparatii pentru cea mai putin populara postare")+
+ theme(plot.title = element_text(hjust = 0.5))
> fotbalMin

66

Fig 3.6 – Comparații pentru cea mai puțin populară postare

> fotbalMax < – ggplot( data = data.frame(etichete, fotbalisti, evalsMax),
aes( x = fotbalisti, y = evalsMax, group = etichete, shape = etichete, co
lor = etichete)) +
+ geom_line(size=1.5) +
+ geom_point(size=3, fill="white") +
+ scale_shape_manual(v alues=c(22,21,23))+
+ xlab("Fotbalisti") + ylab("Numar utilizatori") +
+ theme(text = element_text(size=14)) +
+ ggtitle("Comparatii pentru cea mai populara postare")+
+ theme(plot.title = element_text(hjust = 0.5))
> fotbalMax

67

Fig 3.7 – Comparații pentru cea mai populară postare
Vom plota evoluția de -a lungul timpului pentru like -uri, comentarii și distribuiri.
> dataOverTime = data.frame(Fotbalisti = rep(c("Ronaldo", "Messi"), 2), A
precieri = c(pageMessi$likes_count,pageRonaldo$likes_cou nt), Date = c(pag
eMessi$created_time, pageRonaldo$created_time))
> dataOverTime$Date < – as.Date( dataOverTime$Date)
> comparisonTimePlot < – ggplot( data = dataOverTime, aes( Date, Aprecieri
, size = Fotbalisti,color = Fotbalisti)) +
+
+ geom_point(alpha = 1/2)+
+ ggtitle("Comparatii aprecieri pentru cele mai recente 500 de postari"
)+
+ theme(plot.title = element_text(hjust = 0.5))
> comparisonTimePlot+ scale_color_manual(values=c("blue", "black"))

68

Figura 3.8 – Comparații apreci eri pentru cele mai recente 500 de postări
> dataOverTime = data.frame(Fotbalisti = rep(c("Ronaldo", "Messi"), 2), Comentar
ii = c(pageMessi$comments_count,pageRonaldo$comments_count), Date = c(pageMessi$
created_time, pageRonaldo$created_time))
> dataOverTi me$Date < – as.Date( dataOverTime$Date)
> comparisonTimePlot < – ggplot( data = dataOverTime, aes( Date, Comentarii, shap
e = Fotbalisti)) +
+
+ geom_point(colour = "black", size = 4.5) +
+ geom_point(colour = "pink", size = 4.5) +
+ geom_point(aes(shape = factor(Fotbalisti)))
> ggtitle("Comparatii comentarii pentru cele mai recente 500 de postari")+
+ theme(plot.title = element_text(hjust = 0.5))
NULL
> comparisonTimePlot

69

Figura 3.9 – Comparații comentarii pentru cele mai recente 500 de postări
> dataOverTime = data.frame(Fotbalisti = rep(c("Ronaldo", "Messi"), 2), D
istribuiri = c(pageMessi$shares_count,pageRonaldo$shares_count), Date = c
(pageMessi$created_time, pageRonaldo$created_time))
> dataOverTime$Date < – as.Date( dataOverTime$Date)
> comparisonTimePlot < – ggplot( data = dataOverTime, aes( Date, Distribui
ri, color = Fotbalisti, shape = Fotbalisti)) +
+
+
+ geom_point(shape=1,size = 3,stroke=1)+
+ ggtitle("Comparatii distribuiri pentru cele mai recente 500 de postar
i")+
+ theme(plot.title = element_text(hjust = 0.5))
> comparisonTimePlot + scale_color_manual(values=c("green", "orange"))

70

Figura 3.10 – Comparații distribuiri pentru cele mai recente 500 de postări

71
Concluzii
În aceast ă lucrare a fost prezentat ă analiza de date într-o rețea de socializare, în cazul de fa ță
rețeaua Facebook , cât și conceptele și uneltele necesare analizei unei rețele sociale.
În aceast ă perioad ă modern ă în care via ța social ă se îmbin ă cu cea virtual ă, puternic tehnologizat ă,
analiza de date este foarte important ă într- o rețea de socializare, multe entit ăți și persoane fizice fiind
interesate de obtinerea unor asemenea date pentru stabilirea si automatizarea unor comportamente si
tipologii.
Analiza prezentat ă în lucrare se bazeaz ă pe aportul deosebit al pachetului Rfacebook care
include o serie de funcții care permit utilizatorilor R să -și extragă informațiile lor private, să caute
postări publice Facebook care menționează cuvinte cheie specifice, s ă capteze date din paginile
Facebook și să își actualizeze statusul Facebook . Se face o astfel de analiz ă comparativ ă automat cu
ajutorul R, imediat, se pun la dispozi ție unelte statistice avansate cu care se pot genera informa ții
concludente și intuitive. În combinație cu alte pachete R, acesta poate fi un instrument foarte puternic
pentru cercetătorii interesați de analizarea datelor sociale.
Au fost prezentate modalit ățile de instalare, de autentificare prin generarea unui token
temporar (2 ore) sau a unui token de lungă durată (2 luni) și de preluare a informa țiilor despre un
utilizator. Utilizatorii pot fi at ât prieteni ale căror date s e analizeaz ă cu func ția getFriends c ât și alți
utilizatori pe care ii putem analiza cu ajutorul func ției getUs ers.
Analiza datelor de pe Facebook a fost prezentat ă ca o pa ralelă între doi concuren ți din diferite
domenii de activitate, respectiv domeniul politic si cel sportiv. Astfel au fost analizate
postările,aprecierile, comentariile si distribuirile "perechilo r" Liviu Dragnea -Klaus Iohannis pe de o
parte și Cristiano Ronaldo -Leo Messi pe de alt ă parte. Aceste date au fost colectate cu ajutorul funcției
getPage.
Odat ă încheiat ă acțiunea de ob ținere a informa țiilor necesare și care ne interesau s-a trecut la
opera țiunea de reprezentare grafic ă a acestora folosind pachetul ggplot2 si func țiile specifice acestuia.

72

Bibliografie
Akhtar, Nadeem & Javed, Hira & Sengar, Geetanjali , Analysis of Facebook Social Network , 2013
Crawley, M,. J,. The R Book, John Wiley & Sons Ltd , 2007
David Combe, Christine Largeron, El˝od Egyed -Zsigmond and Mathias Gery, “A comparative
study of social network analysis tools”, International Workshop on Web Intelligence and Virtual
Enterprises 2 ,2010

Graph and Network Analysis Dr. Derek Greene Clique Research Cluster, University College
Dublin, Web Science Doctoral Summer School 2011

Monclar, Rafael Studart, et al. "Using social networks analysis for collaboration and team formation
identification." Computer Supported Cooperative Work in Design (CSCWD), 2011 15th
International Conference on. IEEE, 2011.

Li, Jianfeng, Yan Chen, and Yan Lin. "Research on traffic layout based on social network analysis."
Education Technology and Computer (ICETC), 2010 2nd International Conference on. Vol. 1.
IEEE, 2010.

M A huisman, MAJ van duijn, “ Software for social network analysis”, paginile 270 -316, 2004

Murrell, P ,. R Graphics, London, Chapman & Hall/CRC, 2006 .
Nadeem Akhtar, Hira Javed, Geetanjali Sengar, "Analysis of Facebook Social Network", IEEE
International Conference on Computational Intelligence and Computer Networks (CICN), 27 -29
September, 2013, Mathura, India

Paradis, E,. R pentru incepatori,2013

Social Networks Overview: Current Trends and Research Challenges” November 2010 Coordinated
by the ―NextMEDIA CSA.

Venables, W ,. N,. Smith D,. M,. and the R Development Core Team , An Introduction to R , Version
2.12.1 ,2010
Zelenkauskaite, Asta, et al. "Interconnectedness of complex systems of intern et of things through
social network analysis for disaster management." Intelligent Networking and Collaborativ e
Systems (INCoS), 2012 4th International Conference on. IEEE, 2012.

http://www.edumanager.ro/community/documente/initiere_in_r.pdf

73
https://michalbrys.gitbooks.io/r -google -analytics/content/introduction/about_r.html

https://michalbrys.gitbooks.io/r -google -analytics/content/chapter3/introduction_to_r.html
https://www.sagepub.com/sites/default/files/upm -binaries/35208_Chapter1.pdf
http://pablobarbera.com/blog/ archives/3.html
http://thinktostart.com/analyzing -facebook -with-r/
http://cran.r -project.org/doc/html/interfa ce98 -paper/paper.html

http://r -statistics.co/Top50 -Ggplot2 -Visualizations -MasterList -R-Code.html

http://www.fsf.org/

http://www.cookbook -r.com/Graphs/

International network of Social Network Analysis INSNA www.insna.org

Networkx http://Networkx.lanl.gov/index.html

Gephi https://gephi.org

Pajek http://vlado.fmf.uni -lj.si/pub/networks/

Similar Posts