sábado, 5 de octubre de 2013

Análisis empiricos de redes con R

Trabajando con análisis de redes

Trabajando con análisis de redes

Un grafo nos da cuenta de la relación binaria entre los elementos de un conjunto. Por ejemplo, un grafo nos informa sobre la relación de amistad entre un grupo de personas: personas={A,B,C,D,E}; relación=({A,B}, {A,C},{B,C}, {C,E}). Observamos que A tiene relación con B y C; B con C y C con E. Esta relación ser observa mejor si generamos el grafo. Para ello debemo instalar los paquetes necesarios. A las personas cuyas relaciones deseamos graficar las llamaremos vertices, o nodos.

require(igraph)
require(statnet)

Un gráfico circular simple

g <- graph.ring(5)
plot(g)

plot of chunk graficoInicial

# un gráfico al azar
g <- barabasi.game(20)
plot(g)

plot of chunk graficoInicial

# dándole formato
plot(g, layout = layout.fruchterman.reingold, vertex.size = 4, vertex.label.dist = 0.5, 
    vertex.color = "red", edge.arrow.size = 0.5)

plot of chunk graficoInicial

# con colores diferentes segun componentes
g <- erdos.renyi.game(100, 1/100)
comps <- clusters(g)$membership
colbar <- rainbow(max(comps) + 1)
V(g)$color <- colbar[comps + 1]
plot(g, layout = layout.fruchterman.reingold, vertex.size = 5, vertex.label = NA)

plot of chunk graficoInicial

# comunidades

g <- barabasi.game(20)
plot(g)

plot of chunk graficosVarios

plot(g, vertex.size = 30)

plot of chunk graficosVarios

plot(g, vertex.size = 30, vertex.color = "aliceblue")

plot of chunk graficosVarios

plot(g, vertex.size = 30, vertex.color = "aliceblue", vertex.shape = "none")

plot of chunk graficosVarios

plot(g, vertex.size = 30, vertex.color = "aliceblue", vertex.shape = "none", 
    edge.color = "lightgrey", edge.arrow.size = 0.5)

plot of chunk graficosVarios

plot(g, vertex.size = 30, vertex.color = "aliceblue", vertex.shape = "none", 
    edge.color = "lightgrey", edge.arrow.size = 0.5, edge.arrow.width = 0.5)

plot of chunk graficosVarios

plot(g, vertex.size = 30, vertex.color = "aliceblue", vertex.shape = "none", 
    edge.color = "lightgrey", edge.arrow.size = 0.5, edge.arrow.width = 0.5, 
    edge.curved = -1)

plot of chunk graficosVarios

plot(g, vertex.size = 30, vertex.color = "aliceblue", vertex.shape = "none", 
    edge.color = "lightgrey", edge.arrow.size = 0.5, edge.arrow.width = 0.5, 
    edge.curved = 2, layout = layout.fruchterman.reingold)

plot of chunk graficosVarios

No hay comentarios: