Kali ini kita akan membahas tentang Network Analysis atau Analisis Jaringan
Lebih lanjut kita hanya akan membahas tentang membuat jaringan dengan fungsi di dalam package igraph.
(Network Analysis) dalam ilmu data bisa menjadi alat yang sangat berguna. Sebagai contoh, analisis jaringan sosial (Social Network Analysis/SNA) dapat diterapkan untuk memahami keterhubungan sosial antara pekerja. Keterhubungan sosial memengaruhi stres dalam banyak cara seperti yang dihipotesiskan oleh Holt-Lunstad et al. Meskipun keterhubungan sosial umumnya diyakini memiliki efek positif pada kesehatan dan kesejahteraan, studi awal kami menunjukkan bahwa itu juga dapat memiliki efek negatif, karena kami mengaitkan keterhubungan sosial dengan peningkatan perilaku destruktif seperti penggunaan obat terlarang dan perilaku kasar. Analisis jaringan juga dapat diterapkan dalam bidang neurologi misalnya, genetika misalnya, dan jaringan teroris misalnya. Dalam bab ini, kami akan menunjukkan beberapa contoh penggunaan alat-alat dari aljabar linear dalam analisis jaringan dalam ilmu data menggunakan paket igraph dan igraphdata. Khususnya, kami akan menggunakan data “UKFaculty” dari paket igraphdata sebagai Contoh Pengantar dalam bab ini.
Dalam bagian ini, kita akan membahas dasar-dasar graf dan jaringan, termasuk definisinya. Kemudian kita akan membahas beberapa properti dari teori graf.
Di sini kita akan membahas beberapa definisi dasar dalam teori graf. Pertama, kita akan mendefinisikan graf terarah dan kemudian kita akan membahas graf terarah.
Definisi 54: Anggap kita memiliki himpunan terbatas simpul (atau node) V = {1, 2, …, n}. Setiap simpul di V diberi label. Jika kita ingin menghubungkan pasangan simpul u dan v di V, maka kita menggambar sebuah tepi di antara keduanya. Ini disebut tepi tak terarah. Sebuah graf tak terarah (undirected graph) adalah objek yang terdiri dari himpunan simpul V dan himpunan tepi tak terarah E. Kita menandai sebuah graf tak terarah sebagai G = (V, E).
library(magick)
## Linking to ImageMagick 6.9.12.3
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11
imgshow <- image_read("gambar9.4.png")
plot(imgshow)
GAMBAR 9.4 Graf acak tak berarah yang dihasilkan dengan model Erdős-Rényi dengan 10 simpul dan probabilitas menghubungkan dua simpul yang sama dengan 0,5, seperti yang ditunjukkan dalam Contoh 159.
library(igraph)
##
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
##
## decompose, spectrum
## The following object is masked from 'package:base':
##
## union
G <-sample_gnp(10,0.5)
plot(G)
library(igraph)
N <-barabasi.game(10)
plot(N)
Create Networks
Kode di bawah ini menghasilkan sebuah graf tidak berarah dengan tiga sisi. Angka-angka tersebut diinterpretasikan sebagai ID vertex, sehingga sisi-sisinya adalah 1->2, 2->3, 3->1.
rm(list = ls()) # Remove all the objects we created so far.
library(igraph) # Load the igraph package
g1 <- graph(edges=c(1,2, 2,3, 3, 1), n=3, directed=F)
plot(g1) # Sebuah plot sederhana dari jaringan - kita akan membahas lebih lanjut tentang plot nanti
class(g1)
## [1] "igraph"
g1
## IGRAPH 69e72fc U--- 3 3 --
## + edges from 69e72fc:
## [1] 1--2 2--3 1--3
g2 <- graph( edges=c(1,2, 2,3, 3, 1), n=10 )
plot(g2)
g3 <- graph( c("John", "Jim", "Jim", "Jill", "Jill", "John"))
# Ketika daftar tepi memiliki nama vertex, jumlah node tidak diperlukan
plot(g3)
g4 <- graph( c("John", "Jim", "Jim", "Jack", "Jim", "Jack", "John", "John"),
isolates=c("Jesse", "Janis", "Jennifer", "Justin") )
# In named graphs we can specify isolates by providing a list of their names.
plot(g4, edge.arrow.size=.5, vertex.color="gold", vertex.size=15,
vertex.frame.color="gray", vertex.label.color="black",
vertex.label.cex=0.8, vertex.label.dist=2, edge.curved=0.2)
Graf kecil juga dapat dihasilkan dengan deskripsi seperti ini: - untuk ikatan tak berarah, +- atau -+ untuk ikatan berarah yang menunjuk ke kanan & kiri, ++ untuk ikatan simetris, dan “:” untuk himpunan vertex.
plot(graph_from_literal(a---b, b---c)) # jumlah tanda hubung tidak penting
plot(graph_from_literal(a--+b, b+--c))
plot(graph_from_literal(a+-+b, b+-+c))
plot(graph_from_literal(a:b:c---c:d:e))
gl <- graph_from_literal(a-b-c-d-e-f, a-g-h-b, h-e:f:i, j)
plot(gl)