Analisis Jaringan Sosial di R dan Gephi: Menggali Ke Twitter

Diterbitkan: 2022-03-11

Analisis jaringan sosial lahir pada tahun 1934 ketika Jacob Levy Moreno menciptakan sosiogram, abstraksi interaksi sosial. Secara khusus, sosiogram adalah grafik di mana setiap simpul mewakili seseorang dan tepi mewakili interaksi di antara mereka. Moreno menggunakan sosiogram untuk mempelajari perilaku sekelompok kecil orang.

Mengapa kecil? Karena di era di mana dia bekerja, sulit untuk mendapatkan informasi terperinci tentang sejumlah besar interaksi pribadi. Ini berubah dengan munculnya jejaring sosial online seperti Twitter. Saat ini, siapa pun dapat mengunduh data Twitter yang banyak secara gratis, yang membuka pintu untuk analisis yang menarik, mengarahkan kita ke pemahaman baru tentang bagaimana kita berperilaku dan dampak dari berbagai perilaku pada masyarakat.

Di bagian pertama dari seri analisis jaringan sosial kami, kami mendemonstrasikan cara melakukan beberapa analisis ini menggunakan bahasa R untuk mendapatkan dan memproses data terlebih dahulu, dan Gephi untuk menghasilkan visualisasi yang menakjubkan. Gephi adalah aplikasi open-source yang dirancang khusus untuk memvisualisasikan segala jenis jaringan. Ini memungkinkan pengguna untuk dengan mudah mengkonfigurasi visualisasi melalui beberapa kriteria dan properti.

Mengunduh Data Twitter untuk Analisis Jaringan Sosial di R

Jika Anda tidak memiliki akun pengembang Twitter, buat akun, dan ajukan permohonan akses Esensial. Kemudian, untuk mengunduh data Twitter, buat aplikasi di Portal Pengembang Twitter. Selanjutnya, pilih aplikasi Anda di bagian Proyek & Aplikasi dan buka tab Kunci & Token. Di sana Anda harus membuat kredensial Anda. Ini akan digunakan untuk mengakses API Twitter dan mengunduh data.

Setelah Anda membuat kredensial Anda, Anda dapat memulai analisis. Kami akan menggunakan tiga perpustakaan R:

  1. igraph , untuk membuat grafik interaksi.
  2. rapiverse , untuk menyiapkan data.
  3. rtweet , untuk berkomunikasi dengan Twitter Dev API.

Anda dapat menginstal pustaka ini dengan fungsi install.packages() . Untuk tujuan kami, kami akan berasumsi bahwa Anda telah menginstal R dan RStudio, dan Anda memiliki pemahaman dasar tentang mereka.

Dalam demonstrasi kami, kami akan menganalisis diskusi online yang memanas tentang pesepakbola Argentina yang terkenal Lionel Messi selama minggu pertamanya bersama Klub Sepak Bola Paris Saint-Germain (PSG). Penting untuk dicatat bahwa dengan API Twitter gratis Anda dapat mengunduh tweet hanya tujuh hari sebelum tanggal saat ini. Anda tidak akan dapat mengunduh data yang sama yang kami kutip, tetapi Anda akan dapat mengunduh diskusi saat ini.

Mari kita mulai dengan mengunduh. Pertama, kami akan memuat perpustakaan, lalu membuat token otorisasi menggunakan kredensial, dan akhirnya menetapkan kriteria unduhan.

Blok kode ini merinci cara menerapkan ketiga langkah:

 ## Load libraries library(rtweet) library(igraph) library(tidyverse) ## Create Twitter token token <- create_token( app = <YOUR_APP_NAME>, consumer_key = <YOUR_CONSUMER_KEY>, consumer_secret = <YOUR_CONSUMER_SECRET>, access_token =<YOUR_ACCESS_TOKEN>, access_secret = <YOUR_ACCESS_SECRET>) ## Download Tweets tweets.df <- search_tweets("messi", n=250000,token=token,retryonratelimit = TRUE,until="2021-08-13") ## Save R context image save.image("filename.RData")

Catatan: Ganti semua tag di antara <> dengan informasi yang Anda buat di langkah kredensial sebelumnya.

Dengan kode ini, kami menanyakan API Twitter untuk semua tweet (hingga 250.000) yang berisi kata “messi” dan diposting antara 8 Agustus 2021, dan 13 Agustus 2021. Kami menetapkan batas 250.000 tweet karena Twitter memerlukan nilai kuantitas dan karena jumlahnya cukup besar untuk memungkinkan analisis yang menarik.

Kecepatan unduhan Twitter adalah 45.000 tweet per 15 menit, jadi mengunduh 250.000 tweet membutuhkan waktu lebih dari satu jam.

Terakhir, kami menyimpan semua variabel konteks dalam file RData untuk dapat memulihkannya jika kami menutup RStudio atau mematikan mesin.

Membuat Grafik Interaksi

Setelah unduhan selesai, kami akan memiliki tweet di dalam tweets.df . Matriks kerangka data ini berisi satu baris per tweet dan satu kolom per bidang tweet. Pertama, kita akan menggunakannya untuk membuat grafik interaksi di mana setiap node mewakili pengguna, dan edge mewakili interaksi (retweet atau mention) di antara mereka. Dengan rapiverse dan igraph, kita dapat membuat grafik ini dengan cepat dan hanya dalam satu pernyataan:

 ## Create graph filter(tweets.df, retweet_count > 0) %>% select(screen_name, mentions_screen_name) %>% unnest(mentions_screen_name) %>% filter(!is.na(mentions_screen_name)) %>% graph_from_data_frame() -> net

Setelah mengeksekusi baris ini, kami memiliki grafik dalam variabel net yang siap untuk dianalisis. Misalnya, untuk melihat berapa banyak node dan edge yang ada:

 summary(net) # IGRAPH fd955b4 DN-- 138963 217362 --

Data sampel kami menghasilkan 138.000 node dan 217.000 edge. Itu adalah grafik besar. Kami dapat menghasilkan visualisasi melalui R jika kami mau, tetapi menurut pengalaman saya, mereka membutuhkan waktu terlalu lama untuk dihitung dan tidak semenarik visualisasi Gephi. Oleh karena itu, mari kita lanjutkan dengan Gephi.

Memvisualisasikan Grafik Dengan Gephi

Pertama kita perlu membuat file yang bisa dibaca Gephi. Ini mudah, karena kita dapat menghasilkan file .gml menggunakan fungsi write_graph :

 write_graph(simplify(net), "messi_network.gml", format = "gml")

Sekarang, buka Gephi, buka "Buka file grafik," cari file messi_network.gml , dan buka. Ini akan memunculkan jendela yang merangkum informasi grafik. Pilih Terima. Ini akan muncul:

Tangkapan layar yang menunjukkan antarmuka pengguna Gephi tempat pengguna dapat membuka file grafik baru.
Membuka file grafik baru di Gephi

Tak perlu dikatakan, ini sangat tidak informatif. Itu karena kami belum menerapkan tata letak.

Tata Letak Jaringan

Dalam grafik dengan ribuan node dan tepi, posisi node dalam grafik sangat penting. Ini adalah tujuan dari tata letak. Mereka menempatkan node di posisi yang ditetapkan oleh kriteria yang ditentukan.

Untuk tutorial analisis jaringan sosial kami, kami akan menggunakan tata letak ForceAtlas2, yang merupakan opsi standar untuk analisis semacam ini. Ini memposisikan node dengan mensimulasikan kekuatan fisik tarik-menarik dan tolakan di antara mereka. Jika dua node terhubung, mereka akan berada dalam jarak yang lebih dekat satu sama lain; jika mereka tidak terhubung, mereka akan terpisah lebih jauh. Tata letak ini menghasilkan grafik yang informatif dalam hal komunitas, karena pengguna yang tergabung dalam komunitas yang sama akan dikelompokkan bersama sementara pengguna dari komunitas yang berbeda akan berada di wilayah yang berbeda.

Untuk menerapkan tata letak ini ke kasus kami, kami menavigasi ke jendela Tata Letak (di sudut kiri bawah), pilih ForceAltas 2, dan klik Jalankan. Ketika Anda melakukan ini, Anda akan melihat simpul mulai bergerak dan membentuk banyak "awan". Setelah beberapa detik, Anda akan memiliki pola yang sangat stabil dan Anda dapat mengklik Stop. Harap dicatat bahwa mungkin perlu banyak waktu untuk berhenti secara otomatis.

Karena ini adalah algoritme stokastik, Anda akan memiliki keluaran yang sedikit berbeda di setiap proses. Output Anda harus mirip dengan ini:

Gambar yang menunjukkan keluaran tata letak ForceAtlas2 dalam warna hitam dan putih, menghasilkan grafik tanpa warna atau nuansa abu-abu.
Output Monochrome Gephi menggunakan tata letak ForceAtlas2

Grafiknya mulai terlihat menarik. Sekarang mari kita tambahkan beberapa warna padanya.

Deteksi Komunitas

Kita dapat mewarnai node menggunakan beberapa kriteria; pendekatan yang paling standar adalah dengan komunitas. Jika kita memiliki empat komunitas dalam grafik kita, kita akan memiliki empat warna. Melalui warna, lebih mudah untuk memahami bagaimana grup berinteraksi, berdasarkan data Anda.

Untuk mewarnai node, pertama kita harus mengidentifikasi komunitas. Di Gephi, klik tombol Modularity di jendela di bawah tab Statistics—tombol ini menerapkan algoritme klaster grafik Louvain yang populer, salah satu algoritme tercepat yang tersedia, dianggap canggih karena kinerjanya yang tinggi. Di jendela yang muncul, klik Terima. Jendela lain akan muncul, berisi plot pencar dari komunitas yang didistribusikan berdasarkan ukuran. Sekarang kita memiliki atribut baru di setiap node bernama Modularity Class, yang berisi komunitas yang dimiliki oleh pengguna.

Setelah menyelesaikan langkah sebelumnya, sekarang kita dapat mewarnai grafik dengan cluster. Untuk melakukannya, di tab Penampilan, klik Terapkan.

Tangkapan layar yang menampilkan tab "Tampilan" di ruang kerja Gephi. Gambar menunjukkan berbagai warna yang digunakan dalam grafik.
Menggunakan Penampilan Gephi untuk menambahkan warna

Di sini kita bisa melihat ukuran (dalam hal persentase pengguna) dari setiap komunitas. Dalam kasus kami, komunitas utama (ungu dan hijau) masing-masing terdiri dari 11,34% dan 9,29% dari total populasi.

Menggunakan tata letak dan palet saat ini, grafik akan terlihat seperti ini:

Gambar grafik berwarna. Bentuknya identik dengan grafik monokrom sebelumnya, tetapi warna membantu mengidentifikasi komunitas tertentu, dengan komunitas terbesar (ungu) di sudut kiri bawah dan komunitas terbesar kedua (hijau) di sudut kanan atas. Di antara mereka, komunitas yang lebih kecil diwakili oleh warna lain, termasuk cyan, oranye, merah, dan hitam.
Grafik berwarna memungkinkan kita untuk dengan mudah mengidentifikasi komunitas yang berbeda.

Deteksi Influencer Twitter

Terakhir, kami ingin mengidentifikasi peserta utama dalam diskusi untuk memahami, misalnya, siapa yang termasuk dalam komunitas mana. Kami dapat mengukur pengaruh setiap pengguna dengan properti yang berbeda; salah satunya adalah dengan gelar mereka. Ini menunjukkan berapa banyak pengguna yang me-retweet atau menyebut mereka.

Untuk menyorot pengguna dengan banyak interaksi, kami akan mengubah ukuran node menggunakan properti Derajat:

Tangkapan layar yang menunjukkan cara mengubah properti Derajat di Gephi, di bawah tab Penampilan yang sama yang disebutkan pada gambar sebelumnya. Ukuran minimum diatur ke 0,1 dan ukuran maksimum diatur ke 10.
Mengubah properti Gelar di Gephi

Grafik sekarang akan menampilkan influencer sebagai node yang diwakili oleh lingkaran yang lebih besar:

Gambar grafik berwarna mirip dengan yang sebelumnya tetapi dengan tambahan lingkaran yang mewakili node influencer. Setiap kelompok warna memiliki beberapa node tersebut.
Output berwarna menunjukkan influencer sebagai node yang lebih besar

Sekarang kami telah mengidentifikasi pengguna dengan jumlah interaksi yang tinggi, kami dapat mengungkapkan nama mereka. Untuk melakukannya, klik panah hitam di bilah di bagian bawah layar:

Tangkapan layar ruang kerja Gephi, menunjukkan panah hitam di sudut kanan bawah UI.
Mengakses konfigurasi label di Gephi

Kemudian, klik Label dan Konfigurasi. Di jendela yang muncul, pilih kotak centang Nama dan klik Terima. Selanjutnya, klik kotak centang Nodes. Garis hitam kecil akan muncul di grafik. Ini adalah nama semua pengguna. Tapi kami tidak ingin melihat semuanya , hanya yang paling penting.

Untuk mendefinisikannya, ubah ukurannya berdasarkan derajat simpul menggunakan jendela yang sama yang kita gunakan untuk ukuran simpul. Kami meningkatkan ukuran minimum dari 0,1 menjadi 10 dan meningkatkan ukuran maksimum dari 10 menjadi 300.

Dengan penambahan nama, grafik menjadi jauh lebih informatif, karena menampilkan bagaimana komunitas yang berbeda berinteraksi dengan influencer:

Gambar grafik berwarna dengan lingkaran yang mewakili pengguna signifikan, dengan nama pengguna terpenting dihamparkan di atasnya. Ukuran teks sesuai dengan ukuran (pengaruh) setiap pengguna, dengan beberapa yang terbesar adalah ESPNFC berwarna ungu, TrollFootball berwarna abu-abu, dan PSG_inside berwarna merah muda.
Menambahkan nama memungkinkan kita untuk melihat bagaimana komunitas yang berbeda berinteraksi dengan influencer.

Kami sekarang memahami lebih banyak tentang diskusi Twitter khusus ini. Misalnya, penyertaan akun komunitas hijau seperti mundodabola dan neymarjrdepre mengungkapkan lokus Brasilnya. Komunitas oranye dan abu-abu berisi pengguna berbahasa Spanyol seperti sc_espn dan InvictosSomos. Khususnya, komunitas abu-abu dan hitam tampaknya berbahasa Spanyol karena mereka memiliki pengguna seperti IbaiOut, LaScaloneta, dan streamer populer IbaiLlanos. Terakhir, komunitas ungu dan merah tampaknya berbahasa Inggris karena mereka menampilkan akun seperti ESPNFC dan brfootball.

Sekarang kita dapat lebih memahami mengapa pengguna ini terdiri dari komunitas yang berbeda dalam hal sosiologi dan tidak hanya perhitungan grafik: Mereka berbicara bahasa yang berbeda! Mereka semua men-tweet tentang Messi dan tim barunya, tetapi masuk akal jika penutur bahasa Spanyol lebih banyak berinteraksi dengan penutur bahasa Spanyol lainnya daripada dengan penutur bahasa Portugis atau Inggris. Selain itu, kita juga dapat memahami bahwa meskipun komunitas abu-abu dan oranye berbicara bahasa Spanyol, mereka melakukannya dari perspektif yang berbeda. Komunitas abu-abu menggunakan pendekatan yang lebih lucu yang menjelaskan mengapa mereka lebih banyak berinteraksi satu sama lain daripada dengan akun resmi sepak bola atau jurnalis.

Membuka Potensi R dan Gephi

Seandainya kami tidak menggunakan Gephi untuk membuat grafik, kami dapat menggunakan pustaka Ggplot R. Namun, dari sudut pandang saya, perpustakaan itu jauh lebih terbatas dalam hal grafik jaringan. Tidak dinamis seperti Gephi, lebih sulit dikonfigurasi, dan tampilan yang dihasilkan kurang jernih.

Di sisa seri, kami akan mengambil analisis ini lebih lanjut. Kami akan melakukan beberapa analisis teks pemodelan topik untuk melihat seberapa banyak pengguna berbicara dan topik apa yang menarik bagi mereka; kami akan melakukan analisis sentimen untuk melihat apakah mereka positif atau negatif; dan kami akan melakukan analisis grafik yang lebih dalam untuk menganalisis influencer terbesar Twitter.

Anda dapat menggunakan langkah-langkah ini untuk menganalisis diskusi Twitter baru dan melihat wawasan apa yang dapat Anda peroleh dari grafik plot Anda.