viernes, 29 de mayo de 2020

Clarificando regularidades estructurales de redes centro-periferia

Una tipología clarificada de estructura de periferia central en redes

Ryan J. Gallagher, Jean-Gabriel Young y Brooke Foucault Welles
ARXiv



La estructura núcleo-periferia, la disposición de una red en un núcleo denso y una periferia dispersa, es un descriptor versátil de varias redes sociales, biológicas y tecnológicas. En la práctica, los diferentes algoritmos de núcleo-periferia a menudo se aplican indistintamente, a pesar del hecho de que pueden producir descripciones inconsistentes de la estructura núcleo-periferia. Por ejemplo, dos de los algoritmos más utilizados, la descomposición de los núcleos k y el modelo clásico de dos bloques de Borgatti y Everett, extraen estructuras fundamentalmente diferentes: el último divide una red en un diseño binario de cubo y radio, mientras que el primero se divide en una jerarquía en capas. Introducimos una tipología centro-periferia para aclarar estas diferencias, junto con técnicas de modelado de bloques estocásticos bayesianos para clasificar las redes de acuerdo con esta tipología. Empíricamente, encontramos una rica diversidad de estructura núcleo-periferia entre las redes. A través de un estudio de caso detallado, demostramos la importancia de reconocer esta diversidad y situar las redes dentro de la tipología núcleo-periferia al realizar análisis específicos de dominio.


miércoles, 27 de mayo de 2020

Determinantes sociales (incluyendo métricas de redes) de salud y supervivencia en humanos y otros animales

Determinantes sociales de la salud y la supervivencia en humanos y otros animales


Noah Snyder-Mackler, Joseph Robert Burger, Lauren Gaydosh, Daniel W. Belsky, Grace A. Noppert, Fernando A. Campos, Alessandro Bartolomucci, Yang Claire Yang, Allison E. Aiello, Angela O’Rand, Kathleen Mullan Harris, Carol A. Shively, Susan C. Alberts, Jenny Tung

Science  22 May 2020:
Vol. 368, Issue 6493, eaax9553
DOI: 10.1126/science.aax9553

Introducción

El entorno social da forma a la salud humana, produciendo fuertes relaciones entre factores sociales, riesgo de enfermedad y supervivencia. La fuerza de estos vínculos ha llamado la atención de los investigadores de las ciencias sociales y naturales, que comparten intereses comunes en los procesos biológicos que vinculan el entorno social con los resultados de la enfermedad y el riesgo de mortalidad. Los científicos sociales están motivados por un interés en contribuir a políticas que mejoren la salud humana. Los biólogos evolucionistas están interesados ​​en los orígenes de la socialidad y los determinantes de la aptitud darwiniana. Estas agendas de investigación ahora han convergido para demostrar fuertes paralelos entre las consecuencias de la adversidad social en las poblaciones humanas y en otros mamíferos sociales, al menos para los procesos sociales que son más análogos entre las especies. Al mismo tiempo, estudios recientes en modelos animales experimentales confirman que el estrés socialmente inducido es, por sí solo, suficiente para afectar negativamente la salud y acortar la vida útil. Estos hallazgos sugieren que algunos aspectos de los determinantes sociales de la salud, especialmente aquellos que pueden modelarse a través de estudios de interacción social directa en animales no humanos, tienen profundas raíces evolutivas. También presentan nuevas oportunidades para estudiar la aparición de disparidades sociales en el riesgo de salud y mortalidad.




Una perspectiva comparativa sobre los determinantes sociales de la salud. La adversidad social está estrechamente relacionada con los resultados de salud y mortalidad en los humanos, a lo largo del curso de la vida. Estas observaciones se han extendido recientemente a otros mamíferos sociales, en los que se ha demostrado que la integración social, el estado social y la adversidad en la vida temprana predicen la esperanza de vida natural en poblaciones silvestres y resultados moleculares, fisiológicos y de enfermedades en modelos animales experimentales.

Avances

La relación entre el entorno social y el riesgo de mortalidad se conoce desde hace algún tiempo en humanos, pero los estudios en otros mamíferos sociales solo recientemente han podido evaluar el mismo fenómeno general. Estos estudios revelan que las medidas de integración social, apoyo social y, en menor medida, estatus social, independientemente predicen la esperanza de vida en al menos cuatro órdenes diferentes de mamíferos. A pesar de las diferencias clave en los factores que estructuran el entorno social en humanos y otros animales, los tamaños de los efectos que relacionan el estado social y la integración social con la vida natural en otros mamíferos se alinean con los estimados para los efectos ambientales sociales en humanos. También como los humanos, las múltiples medidas distintas de integración social tienen un valor predictivo, y en los taxones examinados hasta ahora, la diversidad social en la vida temprana está particularmente estrechamente vinculada a la supervivencia en la edad adulta. Los modelos animales también han sido clave para avanzar en nuestra comprensión de la integración social. vínculos causales entre procesos sociales y salud. Los estudios en animales de laboratorio indican que el estrés inducido socialmente tiene efectos directos sobre la función inmune, la susceptibilidad a la enfermedad y la vida útil. Los modelos animales han revelado cambios generalizados en la respuesta a la adversidad social que son detectables a nivel molecular. El trabajo reciente en ratones también ha demostrado que el estrés socialmente inducido acorta la vida natural debido a múltiples causas, incluida la aterosclerosis. Este resultado se hace eco de los de los humanos, en los que la adversidad social predice un mayor riesgo de mortalidad por casi todas las principales causas de muerte.


Fig. 1. La adversidad social predice la morbilidad y la mortalidad en humanos. (A a F) Los conjuntos de datos más grandes sobre los correlatos de salud de la adversidad social provienen de poblaciones humanas. Juntos, demuestran que la alta adversidad social es un importante predictor de [(A) a (C)] esperanza de vida y [(D) a (F)] susceptibilidad a una amplia gama de enfermedades. (A) Vida útil esperada a los 40 años para hombres y mujeres en los Estados Unidos en función de los ingresos a los 40 años (n = 1.400 millones de personas-años) (2). (B) Proporción de sujetos de estudio vivos después de un seguimiento de 9 años, para hombres y mujeres adultos en el Condado de Alameda, California, en función de un índice compuesto de relaciones sociales (n = 6298 individuos) (46). (C) Edad media de muerte en función de la adversidad temprana en el estudio ACE en pacientes adultos en la Clínica de Evaluación de Salud Permanente de San Diego de Kaiser (n = 17.337 individuos, n = 1539 que habían muerto por seguimiento) (173). (D) Prevalencia de la enfermedad entre los adultos estadounidenses por ingresos, según la Encuesta nacional de salud de los Centros para el Control de Enfermedades de 2015 (n = 242,501 individuos) (174) (E) Riesgo de enfermedad (log odds ratios ajustados por edad, sexo y raza) en función de una medida compuesta de integración social para hombres y mujeres adultos en los Estados Unidos en la Encuesta Nacional de Examen de Salud y Nutrición III (n = 18,716 individuos) (31). (F) Riesgo de enfermedad (log odds ratios ajustados por edad, sexo, raza y nivel educativo) por número de ACE para pacientes que visitan la Clínica de Evaluación de Salud de San Diego de Kaiser Permanente (n = 9508 individuos) (9).

Panorama

Aunque no todas las facetas de los determinantes sociales de la salud en los humanos pueden modelarse de manera efectiva en otros mamíferos sociales, la fuerte evidencia de que algunos de estos determinantes son compartidos argumenta que los estudios comparativos deberían desempeñar un papel de primera línea en el esfuerzo por comprenderlos. Debería ser una prioridad ampliar el conjunto de especies estudiadas en la naturaleza, así como el rango de poblaciones humanas en las que el entorno social está bien caracterizado. Dichos estudios tienen un alto potencial para arrojar luz sobre las vías que conectan la experiencia social con los resultados del ciclo de vida, así como la lógica evolutiva que explica estos efectos. Los estudios que aprovechan el poder y las herramientas que brindan los organismos modelo de laboratorio también son cruciales debido a su potencial para identificar enlaces causales. Las direcciones de investigación importantes incluyen comprender los predictores de las diferencias interindividuales e intersociales en la respuesta a la adversidad social, probar la eficacia de las intervenciones potenciales y extender la investigación sobre las firmas fisiológicas de los gradientes sociales al cerebro y otros tejidos. Los estudios innovadores en esta área no solo integrarán resultados de diferentes disciplinas sino que también involucrarán esfuerzos interdisciplinarios que comienzan con la concepción y el diseño del estudio.



Fig. 2. Integración social y supervivencia en mamíferos sociales salvajes. Todos los casos mostrados se basan en datos de poblaciones naturales, con la excepción de los macacos rhesus (65), para los cuales los datos provienen de una población de cría en libertad. (A) La relación de integración social-supervivencia se ha evaluado en al menos 12 especies, incluidos los humanos, que juntas representan múltiples transiciones independientes a la vida en grupos sociales (55). El supertree de mamíferos es de (175). (B) Tamaños de muestra y (C) sexo estudiado. Los símbolos grandes indican adultos; pequeños símbolos indican juveniles. El tamaño de la muestra para humanos se basa en un metanálisis de 148 estudios. Cuando se investigaron ambos sexos, se muestran resultados significativos en negro y resultados no significativos en gris. (D) Medida de integración social probada. (E) Dirección del efecto observado. Las flechas azules corresponden a una mejor supervivencia con mayor integración y apoyo; La flecha roja corresponde a una supervivencia reducida con una mayor integración y apoyo. Para los macacos de Barbary, las redes afiliativas no estaban relacionadas con la supervivencia; para la orca, la integración social predijo la supervivencia en los hombres solo en años de recursos limitados. Excluimos varios estudios de mamíferos salvajes que se centraron en el tamaño del grupo social como la medida del apoyo social y la integración [guepardos (176), lobos (177), topillos (178) y murciélagos (179)] porque los efectos de los factores sociales no pueden separarse de los efectos de otros factores dependientes de la densidad (como el grado de competencia de los recursos y la competencia entre grupos). Los datos provienen de las siguientes fuentes: rock hyrax, (180); caballo salvaje, (50); orca, (61); delfín nariz de botella (49); borrego cimarrón, (60); humano, (4); macaco rhesus, (65); Macaco de Berbería, (181); chacma babuino, (47); babuino amarillo, (48); mono azul, (54); marmota de vientre amarillo, (53).



Fig. 3. Estado social y supervivencia en mamíferos sociales salvajes. Todos los casos mostrados se basan en datos de poblaciones naturales. (A) La relación estado-supervivencia social se ha evaluado en al menos 12 especies, incluidos los humanos, que juntas representan múltiples transiciones de la vida solitaria a la social (en carnívoros, ungulados de dedos pares, primates, conejos y liebres y roedores) ( 55) El supertree de mamíferos es de (175), con modificaciones basadas en (182). (B) Tamaños de muestra y (C) sexo estudiado. El tamaño de la muestra para humanos se basa en un metanálisis de 48 estudios. Cuando se investigaron ambos sexos, se muestran resultados significativos en negro y resultados no significativos en gris. (D) Medida del estado social probado. (E) Dirección del efecto observado. Las flechas azules corresponden a una mejor supervivencia con un mayor estatus social o rango; los guiones no corresponden a ninguna relación entre la supervivencia y el estado o rango social, según lo informado según el umbral de significación estadística de los autores. Los datos provienen de las siguientes fuentes: suricata, (79); cabra montés (183); chimpancé, (184); humano, (3); macaco de cola larga, (82); Macaco japonés, (185); macaco rhesus, (81); babuino verde oliva, (186); babuino amarillo (47); chacma babuino, (80); Conejo europeo, (78); marmota alpina, (187).


martes, 26 de mayo de 2020

Modelo de agresión entre usuarios en línea

Sobre un modelo de difusión de agresión y minimización en redes sociales en línea


Marinos Poiitis, Athena Vakali  y Nicolas Kourtellis
ARXiv



La agresión en las redes sociales en línea se ha estudiado hasta ahora, principalmente con varios métodos de aprendizaje automático que detectan tal comportamiento en un contexto estático. Sin embargo, la forma en que la agresión se difunde en la red ha recibido poca atención ya que incorpora desafíos de modelado. De hecho, modelar cómo se propaga la agresión de un usuario a otro es un tema de investigación importante, ya que puede permitir un monitoreo efectivo de la agresión, especialmente en plataformas de medios que ahora aplican técnicas de bloqueo de usuario simplistas. En este documento, nos centramos en cómo modelar propagación de la agresión en Twitter, ya que es una plataforma de microblogging popular en la que la agresión tuvo varios comienzos. Proponemos varios métodos de construcción en dos modelos de difusión conocidos, Cascada Independiente (IC) y Umbral Lineal (LT), para estudiar la evolución de la agresión en la red social. Investigamos experimentalmente cómo el método welleach puede modelar la propagación de la agresión utilizando datos reales de Twitter, mientras que varían los parámetros, como la selección de usuarios para la siembra de modelos, sopesar los bordes de los usuarios, el tiempo de activación de los usuarios, etc. Según el enfoque propuesto, las estrategias de mejor desempeño son las únicas para seleccionar usuarios de semillas con un enfoque basado en grados, sopesan los valores de uso basados ​​en la superposición de sus círculos sociales y activan a los usuarios considerando sus niveles de agresión. Además, empleamos los mejores modelos de rendimiento para predecir qué usuarios reales comunes podrían volverse agresivos (y viceversa) en el futuro, y lograr hasta AU C = 0.89 en esta tarea de predicción. Finalmente, investigamos métodos para minimizar la agresión, lanzando cascadas competitivas para "informar" y "curar" a los agresores. Mostramos que los modelos IC y LT pueden usarse en la minimización de la agresión, proporcionando así alternativas menos intrusivas a las técnicas de bloqueo actualmente empleadas por las populares plataformas de redes sociales en línea.



viernes, 22 de mayo de 2020

COVid19: Caracterizando influyentes en Twitter

Caracterización de líderes de información en Twitter durante la crisis COVID-19


David Pastor-Escudero, Carlota Tarazona
ARXiv

La información es clave durante una crisis como la actual pandemia de COVID-19, ya que da forma a la opinión, el comportamiento e incluso su estado psicológico. El Secretario General de las Naciones Unidas ha reconocido que la infodemia de desinformación es una importante crisis secundaria producida por la pandemia. La infodemia puede amplificar las verdaderas consecuencias negativas de la pandemia en diferentes dimensiones: social, económica e incluso sanitaria. Por ejemplo, la infodemia puede generar odio entre los grupos de población que fragmentan la sociedad que influye en su respuesta o dan como resultado hábitos negativos que ayudan a propagar la pandemia. Por el contrario, se puede utilizar información confiable y confiable junto con mensajes de esperanza y solidaridad para controlar la pandemia, construir redes de seguridad y ayudar a promover la resiliencia y la antifragilidad. Proponemos un marco para caracterizar a los líderes en Twitter basado en el análisis del gráfico social derivado de la actividad en esta red social. Las métricas de centralidad se utilizan para identificar nodos relevantes que se caracterizan aún más en términos de parámetros de usuarios administrados por Twitter. Luego evaluamos la topología resultante de grupos de líderes. Aunque esta herramienta puede usarse para la vigilancia de individuos, la proponemos como la base para una aplicación constructiva para empoderar a los usuarios con una influencia positiva en el comportamiento colectivo de la red y la propagación de información.



martes, 19 de mayo de 2020

Comparación de prestaciones entre (algunos) paquetes de ARS


Benchmark de los populares paquetes de grafos / redes v2

Quasilinear Musings



Esta es una actualización de un punto de referencia de publicaciones populares de gráficos / paquetes de red. Este estudio tiene como objetivo servir como punto de partida para cualquier persona interesada en gráficos aplicados o análisis de redes. Los paquetes de red destacados ofrecen una API conveniente y estandarizada para modelar datos como gráficos y extraer información relacionada con la red. Algunos casos de uso comunes incluyen encontrar el camino más corto entre entidades o calcular una medida de centralidad como el puntaje de rango de página.

Para replicar el ejercicio de referencia y los códigos completos, consulte mi repositorio de github. Las instrucciones sobre cómo configurar e instalar los paquetes también se encuentran en el repositorio. Si usted es un mantenedor de paquetes y desea incluir su paquete, no dude en hacer una solicitud de extracción. Alternativamente, si está interesado en un algoritmo particular que no cubro, siéntase libre de enviar también un RP y lo incluiré en el punto de referencia como parte de la próxima ejecución.

Actualizaciones principales


Aquí hay una lista de los principales desarrollos desde mi publicación anterior en abril de 2019:

  • Los paquetes de Python ahora son referenciales usando timeit en lugar de cprofile para un tiempo de ejecución más preciso y para permitir una mejor comparación entre paquetes1
  • Los resultados se comparan utilizando la mediana del tiempo de ejecución en lugar de la media.
  • Para todos los paquetes, el conjunto de datos se lee como un gráfico dirigido y el tiempo de referencia cubre tanto el tiempo de ejecución analítico como la asignación de memoria.
  • Lightgraphs v2.0-dev se incluye en el ejercicio de referencia.4 Es la primera biblioteca de Julia que se agrega al estudio. Siga leyendo para averiguar cómo le va con el resto.
  • igraph, el titular en el espacio con enlaces populares de R, Mathematica y Python ha sido actualizado a v0.8. ¡El último lanzamiento importante fue en 2014! Para obtener una lista completa de nuevas características y mejoras, consulte la página de lanzamiento de github de igraph
  • SNAP, otro incondicional en el espacio lanza v5.0, que finalmente admite Python 3 y pip install.
  • Networkit lanza v6.0.
  • Los procedimientos de instalación rápidos en  SNAP, graph-tool y networkx, ya que ahora admiten conda o pip. ¡Mira mis instrucciones de configuración para ver lo sencillo que es instalar uno de estos paquetes ahora!

Los cambios en la metodología de referencia, así como la estandarización de cómo se leen los datos y se muestran los resultados, permite establecer mejores comparaciones entre los paquetes.

Al mismo tiempo, las nuevas características y mejoras en los paquetes han hecho que el análisis de red de alto rendimiento sea extremadamente accesible para cualquier analista, felicitaciones a todos los desarrolladores que lo han hecho posible.

Metodología

El punto de referencia se llevó a cabo utilizando una instancia de Google Compute n1-standard-16 (16vCPU Haswell 2.3GHz, 60 GB de memoria). Consulte la carpeta de configuración para obtener instrucciones de instalación más detalladas.

En su caso, todos los algoritmos se probaron utilizando los 16 núcleos. Comparé 6 paquetes diferentes:

  • graph-tool, v2.31 (Peixoto 2014)
  • igraph, v0.8.2 (Csardi y Nepusz 2006)
  • networkit, v6.1.0 (Staudt, Sazonovs y Meyerhenke 2016)
  • networkx, v2.4 (Hagberg, Swart y S Chult 2008)
  • SNAP, v5.0.0 (Leskovec y Sosič 2016)
  • lightgraphs, v2.0-dev (Seth Bromberger y colaboradores 2017)

Networkx está escrito en Python, mientras que los otros cuatro paquetes, con la excepción de lightgraphs, se basan en C / C ++ pero tienen API de Python. Igraph también tiene un enlace R y Mathematica, aunque el punto de referencia se llevó a cabo en Python. Lightgraphs ofrece una plataforma de alto rendimiento para el análisis de redes y gráficos en Julia.

Seleccionar qué tareas comparar no es realmente una decisión trivial con cada paquete que ofrece varias herramientas y capacidades. Al final, decidí centrarme en 5 problemas específicos:
  • cargando los datos
  • ruta más corta de una sola fuente
  • rango de página
  • descomposición del núcleo k
  • componentes fuertemente conectados
La carga es más una tarea de E / S, mientras que los otros 4 son algoritmos de gráficos comunes.

Descargo de responsabilidad:

  • En la medida de lo posible, trato de especificar los mismos parámetros para cada algoritmo, pero las diferencias en la API entre los paquetes podrían traducirse en diferencias reales en la forma en que se ejecuta el algoritmo y el resultado final. Por ejemplo, algunas de las diferencias observadas en el rendimiento podrían ser el resultado de diferentes criterios de detención utilizados o diferentes implementaciones de algoritmos, etc.
  • Para los lighgraphs, los datos se representan utilizando la estructura SimpleGraphs. Se podría lograr un mejor rendimiento utilizando la estructura StaticGraphs a expensas de la mutabilidad.
  • El benchmark de rendimiento captura las diferencias de tiempo de ejecución entre paquetes en algoritmos de gráficos básicos en gráficos dirigidos. Otras métricas importantes como el consumo de memoria están fuera del alcance de este estudio. Las diferencias en la implementación entre gráficos dirigidos y no dirigidos o algoritmos ponderados y no ponderados limitan la generalización entre las otras funciones.

Conjunto de datos

En el ejercicio se utilizaron 3 conjuntos de datos de la Colección de conjuntos de datos de red grande de Stanford (Leskovec y Krevl 2014):
Si bien es más fácil clasificar los paquetes según el tiempo de ejecución de los algoritmos, es solo una de las muchas consideraciones de lo que hace que un paquete sea bueno. Intento ofrecer una vista más subjetiva basada en mi experiencia con estos paquetes.

Benchmarks relacionados

Aquí hay una lista de otros puntos de referencia comparativos para que el espectador interesado los vea:

  • Comparación de rendimiento de Graph-tool (Peixoto 2015), compara graph-tool con igraph y networkx en la ruta más corta de una sola fuente, rango de página, k-core, árbol de expansión mínima y algoritmos de betweeness.
  • Leskovec y Sosic (2016), comparan snap con igraph y networkx en la generación y carga de gráficos Erdos-Renyi, rango de página, coeficiente de agrupamiento, componentes débilmente conectados, extracción de 3 núcleos de una red y prueba de existencia de borde.
  • Staudt, Sazonovs y Meyerhenke (2016), comparan networkit con igraph y graph-tool en la búsqueda de amplitud, componentes conectados, descomposición del núcleo, cálculo del diámetro de un gráfico, detección de comunidad, coeficiente de agrupación, rango de página, algoritmos de betweeness .
  • Graph500 (Murphy et al. 2010), un punto de referencia notable basado en gráficos basado en la búsqueda de amplitud, principalmente para comparar supercomputadores en lugar de paquetes.

La mayoría de los estudios de comparación de paquetes se escribieron en 2015/2016. Desde entonces, ha habido mejoras sustanciales en el campo y será interesante ver los cambios a lo largo del tiempo.

Resultados

Todos los tiempos reportados son la mediana de la capturada para una tarea en particular. Para el conjunto de datos de Amazon y Google, todos los algoritmos se ejecutaron 100 veces, mientras que para el conjunto de datos Pokec se realizaron 10 ejecuciones para cada paquete. Networkx es la excepción. Dado que es más lento en una magnitud significativa (aproximadamente 10 veces más que la biblioteca más lenta), solo se realizaron 10 ejecuciones en el conjunto de datos de Amazon y Google y 1 en el conjunto de datos Pokec. Por ejemplo, tardó 68 segundos en ejecutar el problema de ruta más corta de una sola fuente en el conjunto de datos Pokec en networkx en comparación con 0.62 segundos para networkit (el siguiente más lento). Por lo tanto, lo dejé fuera de las tramas de comparación.

Estos son los tiempos de ejecución de los otros paquetes en los 3 conjuntos de datos de referencia:



Los resultados completos se pueden ver en la tabla a continuación:




Otra forma de ver los resultados es calculando la cantidad de veces que uno podría ejecutar un algoritmo particular dado el tiempo que toma networkx. Esta métrica da una indicación de cuántas veces más rendimiento tiene un algoritmo particular en comparación con networkx. La puntuación calculada con el conjunto de datos de Google se muestra a continuación:



Cargando

Los conjuntos de datos SNAP se leyeron como un archivo delimitado por tabuladores en un formato de gráfico dirigido. De las parcelas anteriores, igraph y networkit lideran la tarea de carga de gráficos. La diferencia en la velocidad de lectura se puede atribuir a las diferencias en la carga, así como a los métodos de construcción de gráficos (posiblemente de la diferente representación interna de los gráficos) .5

Por ejemplo, la graph-tool utiliza el código Python para analizar la entrada, mientras que igraph y networkit usan las bibliotecas C para leer los archivos que resultan en un mejor rendimiento.6

Algoritmos

Todas las bibliotecas destacadas son mucho más eficaces que networkx.

La biblioteca de menor rendimiento (SNAP) es 13 veces más rápida en el problema de ruta más corta de una sola fuente, 14 veces más rápido en el rango de página, 32 veces más rápido en el cálculo del núcleo k y 5 veces más rápido en la identificación de componentes conectados.

Lightgraphs es ~ 300 veces más rápido que networkx en el problema de ruta más corta de una sola fuente, y aproximadamente 10 veces más rápido que los otros competidores. Logra la aceleración con una versión multiproceso del algoritmo.

Lightgraphs y networkit se destacan en el algoritmo de rango de página, con graph-tool que exhiben el siguiente mejor rendimiento.7

Una vez más, lightgraphs se desempeña extremadamente bien en la descomposición de k-core, siendo más de> 250 veces más rápido que networkx. Nota: En el primer estudio de referencia, networkit se desempeñó increíblemente bien en esta medida cuando el conjunto de datos se leyó como un gráfico no dirigido. No parece que la funcionalidad de subprocesos múltiples se extienda a gráficos dirigidos.

La graph-tool, lightgraphs y la networkx funcionaron igualmente bien en el fuerte problema de los componentes conectados.

Además de que SNAP está en el lado más lento, el resto de los paquetes se desempeñaron muy bien en todas las tareas.

¿Cómo han mejorado los paquetes con respecto al año anterior? 8 Igraph ciertamente mejoró tanto en el rango de página como en la prueba de componentes conectados con resultados al menos 2 veces más rápidos desde la ejecución anterior. Networkit ha hecho grandes avances en la carga utilizando un nuevo formato de gráfico binario, así como una mejora en la búsqueda de amplitud y los componentes conectados. El cambio de lightgraphs 1.x a 2.0 también ha llevado a ganancias significativas en el rendimiento general con muchos algoritmos de subprocesos múltiples ahora disponibles.

Multithreads

Además de tener algoritmos eficientes de un solo hilo, los paquetes como la graph-tool, networkit y lightgraphs también aprovechan el procesamiento paralelo para acelerar los cálculos.

En esta sección, comparo el rendimiento en 1, 4, 8 y 16 núcleos para estos 3 paquetes.10 El conjunto de datos web de Google se utilizó para esta parte del análisis.

Un problema que enfrenté cuando utilicé la graph-tool y networkx es que no es inmediatamente evidente qué algoritmo tiene implementaciones de subprocesos múltiples. Ejecutar el punto de referencia ayuda a arrojar algo de luz en esta área.

Graph-tool, networkit y lightgraphs ofrecen una implementación roscada de rango de página. Tanto networkit como lightgraphs tienen una versión roscada del algoritmo k-cores, aunque la versión networkit parece aplicarse solo a gráficos no dirigidos. Solo los lightgraphs proporcionan una versión roscada del problema de la ruta más corta de fuente única fuera de la caja.

Primero, veamos cómo difiere el rendimiento a medida que aumentamos el número de hilos en el algoritmo de Pagerank.



Para la graph-tool y networkx, vemos una aceleración sustancial al aumentar de 1 a 4 a 8 núcleos. Sin embargo, los rendimientos decrecientes se activan al aumentar de 8 a 16 núcleos. Por ejemplo, el tiempo de ejecución del algoritmo de rango de página es 0.42s para 8 núcleos y 0.28s usando 16 núcleos para la graph-tool, mientras que para networkit fue 0.098s para 8 núcleos y 0.1s para 16 núcleos. Lightgraphs es una anomalía aquí, ya que su rendimiento es realmente rápido incluso en 1 hilo y relativamente consistente en todas las configuraciones.11

A continuación, echamos un vistazo al algoritmo roscado k-core de lightgraphs.


Al ejecutarse en un hilo, lightgraphs tarda 0.57s para ejecutar el algoritmo k-core, un poco más lento que la graph-tool a 0.39s pero más rápido que networkit a 0.83s. Correr con los 16 núcleos le da una aceleración de 3.5x.

Finalmente, echamos un vistazo al algoritmo de ruta más corta de fuente única roscada entre lightgraphs.



Este gráfico nos da una idea de cómo lightgraphs superan a los otros paquetes en el punto de referencia de ruta más corta de una sola fuente. Si tuviéramos que considerar solo el rendimiento de un solo hilo, lightgraphs (0.08s) serían comparables a la graph-tool. El subprocesamiento múltiple le da una velocidad de aproximadamente 8x.

Los resultados de la ruta más corta de k-core y de fuente única también exhiben rendimientos decrecientes que van de 8 a 16 núcleos. Esto podría deberse al tamaño del conjunto de datos y sería interesante saber si esto también es válido para el conjunto de datos pokec.
Otras Consideraciones

También hay otros puntos importantes a considerar antes de hacer un cambio o comenzar un proyecto en uno de estos paquetes. Además de la evaluación comparativa numérica pura, se deben examinar otras consideraciones, como la curva de aprendizaje, la documentación, la popularidad y el apoyo.

Paquetes

Primero, los algoritmos disponibles difieren bastante significativamente entre los paquetes. Los usuarios interesados ​​en cambiar a uno de estos paquetes deben leer la documentación en la lista de características disponibles. Por ejemplo, si bien todos contienen las herramientas básicas necesarias para manipular redes, la graph-tool carece de las herramientas de agrupación modular más habituales, pero tiene funcionalidades adicionales en la inferencia estadística en gráficos que utilizan modelos de bloques estocásticos. igraph también agrega una función de inclusión espectral en la actualización reciente.

La visualización de redes también es una parte importante de la cadena de herramientas analíticas. Igraph implementa bastantes algoritmos de diseño y los representa usando la biblioteca de El Cairo. Snap es compatible con graphviz, mientras que la graph-tool es compatible con graphviz y cairo. Networkit adopta un enfoque diferente y se basa en networkx para dibujar, al tiempo que proporciona soporte e integración con Gephi a través de su complemento de transmisión. Lightgraphs también se basa en otros paquetes de gráficos en el ecosistema de Julia y tiene una estrecha integración con otros paquetes de JuliaGraph como GraphPlot.jl.

API

Alejarse de Python nativo o R significa que la sintaxis de los paquetes a veces puede ser bastante complicada. Comparemos la sintaxis para derivar una matriz de la distancia de ruta más corta desde un nodo de origen.
networkx:

nx.shortest_path_length(g, nodeid)

igraph:
g.shortest_paths([g.vs[node_index]])[0]

graph-tool:

shortest_distance(g, g.vertex(node_index)).a

networkit:
distance.BFS(g, node_index, storePaths=False).run().getDistances(False)

snap:

NIdToDistH = snap.TIntH()
snap.GetShortPath(g, node_index, NIdToDistH, True)
[(item, NIdToDistH[item]) for item in NIdToDistH]

lightgraphs:
distances(g, node_index, BreadthFirst(sort_alg=RadixSort)) # Non-threaded
distances(g, node_index, ThreadedBreadthFirst()) # Threaded

Si bien esto puede ser una cuestión de gustos, considero que la API de SNAP es la más engorrosa, ya que uno tiene que definir una variable adicional (con el tipo de variable correcto) para almacenar los resultados antes de ejecutarla. La ejecución de funciones más avanzadas en graph-tool y networkx también requiere que el usuario defina previamente las variables con el tipo correcto para almacenar resultados. Esta es la compensación que se paga por paquetes más efectivos.

Lightgraphs ofrece implementaciones no roscadas y roscadas de algoritmos particulares y depende del usuario especificar el algoritmo a ejecutar.12 Por otro lado, networkit y la graph-tool 'automáticamente' usa la implementación roscada a través de openmp, aunque esto se aplica solo a los seleccionados algoritmos y no está claro de inmediato sin profundizar en el código fuente o probarlo (como este punto de referencia).

Código fuente

Además de networkx, los otros paquetes basados ​​en python tienen código fuente subyacente en C / C ++ y dependen de otras bibliotecas, como la biblioteca de impulso y la metaprogramación de plantillas. Esto hace que sumergirse en el código fuente sea más difícil a menos que esté bien versado en C / C ++. La simplicidad de networkx y el hecho de que está escrito en Python facilita la comprensión de la lógica de los algoritmos de red y una buena herramienta de enseñanza. Las Lightgraphs que se escriben completamente en Julia también son relativamente legibles, pero requieren aprender otro idioma para dominarlo realmente.

Soporte y documentación

El soporte al usuario y la documentación son realmente importantes cuando uno quiere usar el proyecto en una configuración de proyecto real. Networkx es, con mucho, el ganador en esta categoría con más de 4k estrellas github y muchos problemas documentados en github y stackoverflow. También grabo ferias decentemente con más de mil estrellas en sus diferentes módulos, aunque no hay actualizaciones consistentes (hasta hace poco) o hojas de ruta de desarrollo.

La graph-tool y networkx tienen seguidores mucho más pequeños, aunque los creadores parecen relativamente receptivos a los problemas del usuario y los paquetes están en desarrollo activo.

lightgraphs es probablemente el equivalente de networkx en Julia y actualmente se encuentra cerca de 450 estrellas gihub y está en desarrollo muy activo. Las mejoras de v1.xa 2.0 en los últimos meses son realmente increíbles.

Conclusión

Aquí están mis tres conclusiones principales de este estudio. Primero, es mucho más fácil instalar cualquiera de estos paquetes. Ya no es necesario revisar toda la documentación y jugar con la instalación. La mayoría de los paquetes ahora se pueden instalar desde administradores de paquetes populares con una sola línea. Algunos incluso ofrecen versiones de Docker.

En segundo lugar, ha habido una mejora significativa en todos los paquetes. No estoy seguro de si esto se debe a que el análisis de red se ha vuelto más popular o es simplemente una coincidencia que la mayoría de los encargados del paquete decidieron lanzar actualizaciones importantes en 2019. De cualquier manera, son buenas noticias para los usuarios finales que pueden disfrutar de 2- Aceleración 10x en algoritmos populares.

En tercer lugar, para la mayoría de estos paquetes, el tiempo de ejecución de un algoritmo es relativamente comparable, especialmente si se basa en un lenguaje compilado (C, C ++, Julia). Vea los resultados de los componentes conectados para ver un ejemplo. Si la velocidad es de suma importancia, la siguiente consideración es probablemente encontrar el paquete correcto que implemente una versión roscada del algoritmo.

Si está buscando recomendaciones sobre paquetes que provienen de un fondo R / Python (como yo), recomendaría networkx para retomar los conceptos básicos de los algoritmos de gráficos. Si está buscando un siguiente paso y una solución más eficiente, igraph y graph-tool y networkit parecen buenas opciones, siempre que los algoritmos listos para usar le ofrezcan todo lo que necesita. Si está dispuesto a considerar un nuevo lenguaje, lightgraphs es muy prometedor y parece tener una curva de aprendizaje más baja que otras alternativas C / C ++. Por supuesto, si tiene un problema específico que resolver, sin duda vale la pena compararlo, dado que ningún paquete es ampliamente superior a todos los demás. En ese caso, siéntase libre de ampliar mi código y modificarlo para satisfacer sus necesidades.

Referencias

Csardi, Gabor, and Tamas Nepusz. 2006. “The Igraph Software Package for Complex Network Research.” InterJournal Complex Systems: 1695. https://igraph.org/.

Hagberg, Aric, Pieter Swart, and Daniel S Chult. 2008. “Exploring Network Structure, Dynamics, and Function Using Networkx.” Los Alamos National Lab.(LANL), Los Alamos, NM (United States).

Leskovec, Jure, and Andrej Krevl. 2014. “SNAP Datasets: Stanford Large Network Dataset Collection.” http://snap.stanford.edu/data.

Leskovec, Jure, and Rok Sosic. 2016. “SNAP: A General Purpose Network Analysis and Graph Mining Library.” http://arxiv.org/abs/1606.07550.

Leskovec, Jure, and Rok Sosič. 2016. “SNAP: A General-Purpose Network Analysis and Graph-Mining Library.” ACM Transactions on Intelligent Systems and Technology (TIST) 8 (1): 1.

Murphy, Richard C, Kyle B Wheeler, Brian W Barrett, and James A Ang. 2010. “Introducing the Graph 500.” Cray Users Group (CUG) 19: 45–74.

Peixoto, Tiago P. 2014. “The Graph-Tool Python Library.” Figshare. https://doi.org/10.6084/m9.figshare.1164194.

———. 2015. “Graph-Tool Performance Comparison.” https://graph-tool.skewed.de/performance.

Seth Bromberger, James Fairbanks, and other contributors. 2017. “JuliaGraphs/Lightgraphs.jl: An Optimized Graphs Package for the Julia Programming Language.” https://doi.org/10.5281/zenodo.889971.

Staudt, Christian L, Aleksejs Sazonovs, and Henning Meyerhenke. 2016. “NetworKit: A Tool Suite for Large-Scale Complex Network Analysis.” Network Science 4 (4): 508–30.

  1. Hay una sobrecarga adicional del código de creación de perfiles en comparación con solo cronometrarlo.
  2. La mediana es más robusta que los valores atípicos. Resultados completos: min, median, mean, max están disponibles en los archivos de salida respectivos para cada ejecución de creación de perfiles para un conjunto de datos.
  3. Esto hace que las comparaciones entre paquetes sean más comparables en comparación con la ejecución anterior.
  4. Los resultados iniciales basados ​​en v1.3 se comprometieron con el repositorio a principios de año. Este punto de referencia revisado utiliza v2.0-dev que se puede extraer de la rama maestra.
  5. Probablemente se requiera un ejercicio de referencia basado en la construcción pura para separar los dos factores.
  6. Graph-tool debería leer de otros tipos de archivos, como graphml o dot, mucho más rápido, aunque en realidad no lo probé.
  7. Nota: esto podría deberse a diferencias en los criterios de detención. Matthew Galati de SAS señaló que para el algoritmo de rango de página, networkit (a partir de la versión 6.0) usa la norma L2 como criterio de detención, mientras que otros paquetes usan la norma L1. Esto significa que está haciendo menos iteraciones y la velocidad es algo artificial↩
  8. Este párrafo se basa en mi experiencia de volver a ejecutar el punto de referencia anterior antes de realizar cambios en los códigos. Debido a las diferencias en la metodología, es decir, timeit vs cprofile, así como la mediana vs la media, uno debería esperar que todos los resultados sean más bajos que las ejecuciones anteriores, que son. Destaco resultados que difieren significativamente de la ejecución anterior.
  9. Graph-tool y networkit dependen de openmp y se puede establecer el número de subprocesos utilizando la función openmp_set_num_threads o las funciones setNumberOfThreads respectivamente. Para lightgraphs, la variable de entorno JULIA_NUM_THREADS debe configurarse antes de ejecutar las funciones de subprocesos múltiples.
  10. lightgraphs ofrecen una versión explícita del algoritmo con o sin hilos. Los resultados de subprocesos individuales para lightgraphs se informan utilizando el algoritmo sin subprocesos ejecutado en un solo núcleo.
  11. La versión "sin subprocesos" utiliza BLAS, que es inherentemente multiproceso.
  12. Esto se basa en la versión de desarrollo de Lightgraphs v2.0-dev. Los usuarios de versiones 1.x existentes pueden encontrarlo ligeramente diferente.

lunes, 18 de mayo de 2020

ARS 101: Centralidad de intermediación (en Nodus Lab)

Centralidad de intermediación: Árbitros de tópicos

Dmitry Paranyushkin || Nodus Lab





En el contexto de la teoría de grafos y la ciencia de redes, la centralidad de intermediación es una medida importante de la influencia del nodo dentro de toda la red. Mientras que el grado simplemente muestra el número de conexiones que tiene un nodo, la centralidad de intermediación muestra con qué frecuencia el nodo aparece en la ruta más corta entre dos nodos elegidos al azar en una red (Brandes 2001).

Por lo tanto, la centralidad de intermediación es una medida de influencia mucho mejor porque tiene en cuenta toda la red, no solo la conectividad local a la que pertenece el nodo.

En el contexto del análisis de la red de texto, los nodos con una alta centralidad de intermediación sirven como 'encrucijada' para las vías de significado o intermediarios tópicos, a menudo vinculando los diferentes contextos o grupos temáticos juntos. Pueden ser los nodos que no solo se usan con más frecuencia, sino que también ocurren en los cambios narrativos, vinculando diferentes temas en un texto.

En la visualización de red, a menudo, los tamaños de nodo varían según su grado o centralidad de intermediación para indicar los nodos más influyentes (se muestran más grandes en los grafos InfraNodus).

Estos nodos con la centralidad de intermediación más alta se muestran en el panel Analytics> Essence> Most Influential Elements, así como en el panel Insight> Topical Brokers.




Ejemplo de red social: intermediación, centralidad e influencia


Puede ser más fácil comprender la noción de centralidad de intermediación utilizando un ejemplo de red social. En el contexto del análisis de redes sociales, los nodos con la centralidad de intermediación más alta son las personas que tienden a tener no solo muchas conexiones, sino también el mayor nivel de diversidad de esas conexiones.

Es decir, es posible que no conozca a tantas personas, pero si las personas que conoce brindan acceso a las diversas comunidades, entonces, dado que no hay otras personas mejor posicionadas que usted en la red, tendrá una alta centralidad de intermediación.

Por ejemplo, supongamos que tenemos una red social. Habrá algunos nodos que tendrán menos conexiones pero una mayor centralidad de intermediación si brindan un camino hacia la parte de la comunidad, que de lo contrario es inalcanzable. Es decir, un nodo puede tener una centralidad de alto grado pero baja intermediación. Esto indica que está bien conectado dentro del clúster al que pertenece, pero no tan bien conectado con el resto de los nodos que pertenecen a los otros clústeres dentro de la red. Dichos nodos pueden tener una gran influencia local, pero no globalmente en toda la red.


Dinámica de influencia de la red

Alternativamente, otros nodos pueden tener una centralidad de bajo grado pero alta intermediación. Es posible que dichos nodos tengan menos conexiones, pero las conexiones que tienen están vinculando diferentes grupos y clústeres, lo que hace que dichos nodos tengan influencia en toda la red. De hecho, muchos networkers y políticos eficientes a menudo intercambiarán cierto grado por la centralidad intermedia, ya que reduce drásticamente su carga mientras mantienen su posición central dentro de la red.

En el ejemplo anterior, "Sean" es un nodo con una centralidad de intermediación baja, mientras que "Usted" tiene una centralidad de intermediación alta. "Usted" está conectado a todos los nodos diferentes dentro de un grupo, a excepción de Sean, mientras que Sean solo está conectado a Mark. Sin embargo, si Sean hace enlaces tanto a Sergey como a Larry en el primer grupo, se conecta a Priscilla y mantiene su enlace a Mark, tendrá una centralidad de intermediación más alta que Usted, porque conecta todos los diferentes grupos que existen dentro de la red , a pesar de que tienes más conexiones que Sean.

sábado, 16 de mayo de 2020

Modelado de dinámicas de enfermedades infecciosas

Modelado de dinámicas de enfermedades infecciosas


Sarah Cobey


Science  15 de mayo de 2020:
Vol. 368, número 6492, págs. 713-714
DOI: 10.1126/science.abb5659



La aparición del síndrome respiratorio agudo severo – coronavirus 2 (SARS-CoV-2) ha ofrecido al mundo un curso intensivo en epidemiología moderna, comenzando con lecciones sobre detección de casos y crecimiento exponencial. También ha recordado a los científicos los desafíos de comunicarse efectivamente durante la incertidumbre. La pandemia actual no tiene paralelo en la historia moderna, pero el nuevo virus sigue reglas comunes a otros patógenos. Los principios derivados de las infecciones por el virus de la influenza y otras enfermedades infecciosas ofrecen confianza para dos predicciones: el SARS-CoV-2 probablemente haya llegado para quedarse, y la alta tasa de transmisión continuará forzando una elección entre infección generalizada y trastornos sociales, al menos hasta que una vacuna está disponible. La dificultad de esta elección se amplifica por la incertidumbre, común a otros patógenos respiratorios, sobre los factores que impulsan la transmisión. Esta pandemia presenta una oportunidad más amplia para interrogar cómo manejar los patógenos.

La historia moderna está plagada de pandemias que han dado forma al estudio de las enfermedades infecciosas. En los últimos 200 años, al menos siete oleadas de cólera, cuatro nuevas cepas del virus de la influenza, la tuberculosis y el VIH se han extendido por todo el mundo y matado al menos a 100 millones de personas. Prácticamente todas las enfermedades transmisibles continúan evolucionando y transmitiéndose a nivel mundial una vez establecidas, borrando los límites conceptuales entre una pandemia y una temporada de gripe particularmente mala. Más de un siglo estudiando el tamaño y el momento de los brotes, incluidas las intervenciones que son efectivas para detenerlos, ha dado lugar a una teoría cuantitativa y parcialmente predictiva bien fundada de la dinámica de las enfermedades infecciosas.

Una epidemia se extingue cuando una infección promedio ya no puede reproducirse. Esto ocurre cuando una gran fracción de los contactos de un huésped infectado son inmunes. Este umbral, entre donde una infección puede y no puede reproducirse, define la fracción de la población requerida para la inmunidad del rebaño. Se puede calcular con precisión si la epidemiología del patógeno es bien conocida y se utiliza para guiar las estrategias de vacunación. La inmunidad del rebaño se ve constantemente erosionada por los nacimientos de nuevos hospedadores susceptibles y, a veces, por la disminución de la inmunidad en los hospedadores previamente infectados. Todavía no se conoce la durabilidad de la inmunidad al SARS-CoV-2, pero los nacimientos promoverán la supervivencia del virus. Por lo tanto, al igual que otros patógenos transmisibles, es probable que el SARS-CoV-2 circule en los humanos durante muchos años.

Si es lo suficientemente rápido y generalizado, la disminución de la disponibilidad de individuos susceptibles o la tasa de transmisión pueden provocar la extinción de los patógenos. Por ejemplo, en 1957 y 1968, las cepas residentes del virus de la influenza estacional se extinguieron porque la inmunidad cruzada entre estas cepas y las cepas pandémicas emergentes redujo el número de individuos susceptibles (1). Cuatro linajes de coronavirus ya circulan en humanos. Las diferencias genéticas entre estos virus y el SARS-CoV-2 y su rápida propagación sugieren que no compiten entre sí por hospedadores susceptibles, en contraste con el virus de la influenza. Las intervenciones actuales, como el distanciamiento social, tienen como objetivo reducir la transmisión del SARS-CoV-2. El comportamiento humano puede tener efectos sutiles y obvios en la transmisión. Por ejemplo, el horario de vacaciones escolares, que modula los contactos entre niños susceptibles e infectados, influyó en el momento de las epidemias históricas de sarampión en Inglaterra y Gales (2).

Los esfuerzos regionales para impulsar la extinción del SARS-CoV-2 pueden no tener éxito a largo plazo debido a factores estacionales que influyen en la susceptibilidad o la transmisión. Los virus de la influenza fluyen de las regiones tropicales a las templadas y regresan en el invierno respectivo de cada hemisferio. Dentro de las poblaciones tropicales y subtropicales, los virus de la influenza se mueven de manera menos predecible entre las ciudades y pueblos interconectados (3). Estas dinámicas desincronizadas limitan las oportunidades para la disminución de la población mundial. El SARS-CoV-2 y el virus de la influenza son epidemiológicamente similares en que ambos son altamente transmisibles por vía respiratoria, ambos causan infecciones agudas, y ambos infectan y son transmitidos por adultos. Esto sugiere que, en ausencia de intervenciones generalizadas, cuidadosamente coordinadas y altamente efectivas para detener la transmisión del SARS-CoV-2, el virus podría persistir a través de patrones migratorios similares, suponiendo que esté influenciado por fuerzas estacionales similares.

Esta suposición es provisional porque exactamente por qué la mayoría de los patógenos respiratorios exhiben picos de prevalencia en el invierno de las regiones templadas es un enigma de larga data. Los experimentos en hurones mostraron que una humedad absoluta más baja aumenta las tasas de transmisión del virus de la influenza, y los experimentos recientes mostraron que una mayor humedad mejora la eliminación inmunológica del virus de la influenza en los pulmones de los ratones (4, 5). Pero aunque las caídas en la temperatura y la humedad están correlacionadas con el inicio de las temporadas de influenza en los Estados Unidos (6), las epidemias anuales de influenza estacional a menudo comienzan en el sureste húmedo de los Estados Unidos, no en el norte más frío y seco. No existe evidencia clara que sugiera una menor incidencia de infección por el virus de la influenza en las poblaciones tropicales en comparación con las templadas. Desenredar el medio ambiente de los impulsores inmunes endógenos de la dinámica de las enfermedades infecciosas ha sido un desafío estadístico de larga data (7).

La propagación temprana del SARS-CoV-2 ha revelado información crítica sobre el tamaño potencial de la pandemia, si se le permitiera crecer sin control. Esta información tiene bases matemáticas desarrolladas a partir del modelado de otras enfermedades infecciosas (ver la figura). El número total de personas infectadas en una población está determinado por el número reproductivo intrínseco, R0. Este número es el número esperado de casos secundarios causados ​​por un caso índice en una población de otra manera susceptible. De manera equivalente, R0 puede expresarse como la tasa de transmisión dividida por la tasa a la que las personas se recuperan o mueren. Es más preciso describir R0 en referencia a un patógeno y una población huésped, porque el número está parcialmente bajo control del huésped. También determina en parte la prevalencia promedio a largo plazo en la población, suponiendo que los nuevos individuos susceptibles eviten que la enfermedad desaparezca. A medida que progresa una epidemia y parte de la población se vuelve inmune, el número promedio de casos secundarios causados ​​por un individuo infectado se denomina número reproductivo efectivo, Rt.

Por lo tanto, hay dos razones principales para reducir las tasas de transmisión de SARS-CoV-2. En poblaciones con acceso a atención médica avanzada, reducir la tasa de transmisión puede disminuir la mortalidad al aumentar la fracción de casos graves que reciben tratamientos, como la ventilación mecánica. Las intervenciones que reducen la transmisión también reducen el número total de personas que se infectan. Como advierte un informe reciente (8), las intervenciones dramáticas para reducir la Rt podrían no cambiar sustancialmente el número total de infecciones a largo plazo si el comportamiento luego vuelve a la normalidad. Por lo tanto, las reducciones en la transmisión deben mantenerse para disminuir la fracción de la población que se infecta. Los altos costos de las intervenciones actuales subrayan la necesidad de identificar rápidamente las medidas más útiles para reducir la transmisión hasta que se pueda aumentar la capacidad de atención médica y aumentar la inmunidad mediante la vacunación.

Comparar las intervenciones de las poblaciones con la gravedad de sus epidemias es una forma de aprender qué funciona. Las comparaciones de las respuestas de las ciudades de EE. UU. A la primera ola de la pandemia de influenza H1N1 de 1918 demostraron que el distanciamiento social, incluidas las decisiones tempranas de cerrar escuelas, teatros e iglesias, redujo la prevalencia y la mortalidad (9, 10). Del mismo modo, se observan grandes diferencias en el nivel de control del SARS-CoV-2 entre países y pueden ser atribuibles a diferencias en las pruebas de diagnóstico, localización de contactos, aislamiento de individuos infectados y restricciones de movimiento. La prueba de anticuerpos específicos contra el SARS-CoV-2, un marcador de infección, en muestras de sangre proporcionará una confirmación importante de la verdadera cantidad de personas infectadas en diferentes áreas y puede mejorar las estimaciones de los efectos de las intervenciones y la posible cantidad de casos futuros.

Los modelos matemáticos y las pandemias históricas de influenza brindan una advertencia sobre la comparación de los efectos de las intervenciones en diferentes poblaciones. Una disminución rápida en los casos de enfermedad por coronavirus 2019 (COVID-19) o una pequeña epidemia de primavera podría tomarse como evidencia de que las intervenciones han sido especialmente efectivas o de que se ha logrado la inmunidad del rebaño (11). Pero los modelos simples muestran que la dinámica epidémica se vuelve profundamente poco intuitiva cuando hay una variación estacional en la susceptibilidad o la transmisión, y especialmente cuando hay movimiento entre las poblaciones (11). Para el SARS-CoV-2, como el virus de la influenza, la forma de la variación estacional es incierta. Las correlaciones lineales podrían conducir a inferencias causales espurias sobre qué intervenciones funcionan mejor y no deben ser sobreinterpretadas. Las pandemias de influenza anteriores demostraron variabilidad regional en el número, el momento y la gravedad de sus ondas pandémicas (1, 12). Las diferencias entre las poblaciones en su inmunidad preexistente y los factores estacionales podrían haber contribuido a esta variación, incluso antes de que se tengan en cuenta las intervenciones. Dichas diferencias también advierten contra las comparaciones directas entre pandemias anteriores y la pandemia SARS-CoV-2, sin las matemáticas como intermediario.


Tamaño potencial de pandemia e inmunidad colectiva
La fracción de la población que se infecta con una enfermedad transmisible en un modelo epidémico simple aumenta de forma no lineal con el número reproductivo intrínseco, R0, y excederá el umbral para la inmunidad del rebaño. R0 es el número esperado de casos causados por un caso índice. Las intervenciones pueden reducir R0, la fracción total de la población infectada y el umbral para la inmunidad del rebaño. 



Dada la incertidumbre en la dinámica de transmisión del SARS-CoV-2 y la alta certeza en su virulencia, es comprensible que las respuestas tempranas se hayan basado en intervenciones contundentes, como prohibiciones de movimiento y cierres, para salvar vidas. El desafío científico ahora es identificar, a través de inferencia y simulación, medidas que podrían proporcionar una protección tan buena o mejor con un menor costo social. La efectividad de las medidas de control dirigidas, menos disruptivas socialmente, depende de manera crítica de los parámetros biológicos del patógeno (13). Contener el coronavirus del SARS en 2003 requirió un seguimiento intensivo de contactos coordinado por varios países. Finalmente, se identificaron 8098 casos, que probablemente representaban a la mayoría de las personas infectadas con el virus. El control fue factible porque el inicio de la infecciosidad coincidió con el inicio de los síntomas, que fueron consistentemente severos. Con el SARS-CoV-2, la transmisión puede ocurrir antes de que se desarrollen los síntomas, y los perfiles de los síntomas son heterogéneos. La transmisión asintomática y presintomática sustancial hace que las intervenciones basadas en la contención, especialmente aquellas que dependen del reconocimiento de síntomas tempranos o pruebas limitadas, sean más desafiantes y potencialmente inviables.

Una tarea complementaria y urgente es identificar si alguna de las subpoblaciones o entornos contribuyen de manera desproporcionada a la transmisión y dirigirles intervenciones. Por ejemplo, los niños en edad escolar tienden a conducir la transmisión del virus de la influenza en las comunidades, aunque están subrepresentados entre los casos clínicos graves y las muertes (14). Las intervenciones para reducir las infecciones por el virus de la influenza en niños han producido efectos desproporcionados en la reducción de infecciones en adultos. Identificar oportunidades para aumentar los efectos indirectos de las intervenciones es particularmente importante si algunas, como la vacunación, son menos efectivas o no están disponibles en poblaciones vulnerables (por ejemplo, mayores). Los estudios serológicos a nivel de la población para estimar infecciones pasadas, acompañados de estudios en el hogar para medir la duración y la cantidad de eliminación viral en diferentes personas, pueden ayudar a identificar las poblaciones correspondientes para el SARS-CoV-2. Estas poblaciones podrían cambiar con el tiempo si la inmunidad al virus es duradera.

Esta pandemia ilumina las opciones en el manejo de patógenos respiratorios. La mayoría de las personas no tienen acceso o no optan por la vacuna contra el virus de la influenza estacional, aunque el virus de la influenza mata a más de medio millón de personas por año en todo el mundo. No se comunica ampliamente que un caso infeccioso típico del virus de la influenza no tenga fiebre (15), lo que podría promover la propagación de personas que piensan que solo tienen un resfriado (causado por rinovirus, coronavirus estacionales y otros). Las poblaciones han diferido durante mucho tiempo en su apoyo formal e informal para el control de infecciones, por ejemplo, si las personas que se sienten enfermas usan mascarillas o pueden quedarse fácilmente en casa. Las consecuencias son algo predecibles. El SARS-CoV-2 es un virus en evolución, y actualmente se desconoce si esta evolución erosionará la efectividad de una futura vacuna. Las elecciones que se enfrentan ahora seguirán siendo importantes.


Referencias y Notas

  1. E. D. Kilbourne, Infect. Dis. 12, 9 (2006). Google Scholar 
  2. O. N. Bjørnstad, B. Finkenstadt, B. Grenfell, Ecol. Monogr. 72, 169 (2002). CrossRefWeb of ScienceGoogle Scholar 
  3. C. A. Russell et al., Science 320, 340 (2008).Abstract/FREE Full TextGoogle Scholar 
  4. J. Shaman, M. Kohn, Proc. Natl. Acad. Sci. U.S.A. 106, 3243 (2009). Abstract/FREE Full TextGoogle Scholar 
  5. E. Kudo et al., Proc. Natl. Acad. Sci. U.S.A. 116, 10905 (2019).Abstract/FREE Full TextGoogle Scholar 
  6. J. Shaman, V. E. Pitzer, C. Viboud, B. T. Grenfell, M. Lipsitch, PLOS Biol. 8, e1000316 (2010).CrossRefPubMedGoogle Scholar 
  7. K. Koelle, M. Pascual, Am. Nat. 163, 901 (2004). CrossRefPubMedWeb of ScienceGoogle Scholar 
  8. N. M. Ferguson, “Report 9: Impact of non-pharmaceutical interventions (NPIs) to reduce COVID-19 mortality and healthcare demand,” Imperial College London, 16 March 2020. Google Scholar 
  9. M. C. J. Bootsma, N. M. Ferguson, Proc. Natl. Acad. Sci. U.S.A. 104, 7588 (2007). Abstract/FREE Full TextGoogle Scholar 
  10. R. J. Hatchett, C. E. Mecher, M. Lipsitch, Proc. Natl. Acad. Sci. U.S.A. 104, 7582 (2007). Abstract/FREE Full TextGoogle Scholar 
  11. R. A. Neher, R. Dyrdak, V. Druelle, E. B. Hodcroft, J. Albert, Swiss Med. Wkly. 150, w20224 (2020).CrossRefPubMedGoogle Scholar 
  12. C. Viboud, R. F. Grais, B. A. P. Lafont, M. A. Miller, L. Simonsen, ; Multinational Influenza Seasonal Mortality Study Group, J. Infect. Dis. 192, 233 (2005). CrossRefPubMedWeb of ScienceGoogle Scholar 
  13. C. M. Peak, L. M. Childs, Y. H. Grad, C. O. Buckee, Proc. Natl. Acad. Sci. U.S.A. 114, 4023 (2017). Abstract/FREE Full TextGoogle Scholar 
  14. C. J. Worby et al., Epidemics 13, 10 (2015). CrossRefPubMedGoogle Scholar 
  15. D. K. Ip et al., Clin. Infect. Dis. 64, 736 (2017). CrossRefPubMedGoogle Scholar

jueves, 14 de mayo de 2020

22 paquetes de software gratuitos para ARS

22 herramientas gratuitas de análisis de redes sociales

Por Varun Kumar || RankRed



Las herramientas de análisis de redes sociales facilitan el análisis cualitativo o cuantitativo de las redes sociales al describir las características de la red mediante representación visual o numérica. Generalmente usa la teoría de redes o gráficas para examinar las estructuras sociales. Los componentes principales son los nodos (personas) y los bordes que los conectan. Algunos de ellos también realizan análisis predictivos. A continuación, hemos enumerado algunos de los software de análisis de redes sociales más efectivos que están disponibles de forma gratuita.


22. AllegroGraph




AllegroGraph es una base de datos de gráficos desarrollada para almacenar triples RDF. Es una base de datos OLTP totalmente transaccional, que almacena datos estructurados en gráficos en lugar de en tablas. Incluye una biblioteca de análisis de redes sociales y un componente de almacenamiento para el proyecto TwitLogic que tiene como objetivo llevar la web semántica a los datos de Twitter.

21. Commetrix



Commetrix es un software dinámico de visualización y análisis de redes que proporciona un acceso exploratorio fácil y completo a los datos de la red. Crea un rico mapa de red experto, sistemas de recomendación a partir de registros de comunicación, y se enfoca en analizar patrones evolutivos de comunicación electrónica como correo electrónico, voz sobre IP y mensajería instantánea.

20. Socilab



Socilab es una herramienta en línea que le permite visualizar y analizar la red de LinkedIn utilizando métodos derivados de la investigación científico-social. Muestra una serie de medidas de red extraídas de la investigación sociológica en redes profesionales, y barras de percentiles que comparan sus medidas de red agregadas con usuarios anteriores. Además, hay una función de mensajería que le permite escribir y enviar un mensaje a los contactos seleccionados de LinkedIn.

19. Cuttlefish



Cuttlefish es una aplicación de banco de trabajo de red que permite la visualización de datos de red, edición de gráficos, manipulación interactiva del diseño y visualización de procesos.

Para representar los datos de la red, la herramienta utiliza el formato extendido Cuttlefish que define los datos de la red en términos de bordes, vértices, pesos e información visual como formas, colores y etiquetas. El otro formato de archivo es el formato Cuttlefish Evolution que define los cambios que ocurren en una red. También es compatible con formatos de archivo más antiguos, incluidos GraphML y ​​Pajek.

18. Social Network Visualizer



Esta es una herramienta fácil de usar multiplataforma que le permite dibujar redes sociales con unos pocos clics en un lienzo virtual. Cargue datos de campo de un archivo (en formato compatible) o rastree Internet para crear una red social de páginas web conectadas.

Social Network Visualizer calcula grafos estándar y métricas de cohesión de la red (como densidad, excentricidad, coeficiente de agrupamiento, etc.), rutinas matriciales e índices de centralidad y prestigio. Además, admite algoritmos rápidos para la detección comunitaria, el análisis de equivalencia estructural, la carga y edición de redes multirrelacionales y la creación aleatoria de redes utilizando varios modelos de generación de redes aleatorias.

17. JUNG



JUNG significa Java Universal Network / Graph Framework. Esta aplicación Java proporciona un lenguaje extensible para el análisis, modelado y visualización de datos que podrían representarse como un gráfico o una red. JUNG admite numerosos tipos de gráficos (incluidas las hipergrafías) con cualquier propiedad.

Permite visualizaciones personalizables e incluye algoritmos de teoría de gráficos, análisis de redes sociales y minería de datos. Sin embargo, está limitado por la cantidad de memoria asignada a Java.

16. Tulip




Tulip se dedica al análisis y visualización de datos relacionales. Permite el desarrollo de algoritmos, técnicas de interacción, visualización específica de dominio, codificaciones visuales y modelos de datos. También permite la reutilización de componentes, lo que hace que el marco sea eficiente para la creación de prototipos de investigación y el desarrollo de aplicaciones para el usuario final.

15. Statnet


Statnet es un conjunto de paquetes R que realizan una amplia gama de tareas de gestión de datos, visualización y análisis estadístico de redes. Este marco analítico se basa en el modelo de gráfico aleatorio de familia exponencial y proporciona herramientas para la estimación, evaluación, simulación y visualización de redes del modelo.

Además, el modelado estadístico incluye modelos dinámicos y de sección transversal, espacio latente y modelos de clúster latente.

14. Netlytic




Netlytic es un analizador de texto basado en la nube y visualizador de redes sociales que puede resumir automáticamente grandes conjuntos de datos de texto y visualizar redes sociales a partir de conversaciones en sitios de redes sociales como Twitter, YouTube, foros en línea y comentarios de blogs. La herramienta está desarrollada principalmente para que los investigadores identifiquen componentes clave e influyentes y descubran cómo fluye la información en una red.

13. NetworkX




NetworkX es un paquete de Python para crear, manipular y estudiar la estructura de la dinámica y las funciones de redes complejas. Incluye muchos algoritmos, métricas y generadores de gráficos. La herramienta es capaz de construir gráficos aleatorios de forma incremental y es capaz de encontrar camarillas, subgráficos y núcleos k. Además, puede explorar adyacencia, grado, diámetro, centro, radio y dibujar redes en 3 dimensiones.

12. Cytoscape




Cytoscape se utiliza para visualizar redes complejas e integrarlas con cualquier tipo de datos de atributos. La herramienta es muy amplia en funciones: le permite personalizar la visualización de datos de la red, filtrar la red para seleccionar subconjuntos de nodos, buscar nodos y bordes de destino, y diseñar la red en dos dimensiones a partir de diferentes algoritmos de diseño de red que incluyen cíclico, árbol, borde- peso, fuerza dirigida y más.

11. Subdue



Subdue descubre patrones estructurales y relacionales en datos que representan entidades y relaciones. Utiliza la metodología de longitud de descripción mínima para identificar patrones que disminuyen el número de bits necesarios para describir el gráfico de entrada después de ser comprimido por el patrón.

Subdue también puede realizar numerosas tareas de aprendizaje, como aprendizaje supervisado y no supervisado, agrupamiento y aprendizaje de gramática gráfica. Además del análisis de redes sociales, se ha aplicado con éxito en Bioinformática, lucha contra el terrorismo, aviación y minería de estructuras web.


10. Graphviz




Este software de visualización de gráficos representa información estructural como un diagrama de gráficos abstractos y redes. Graphviz tiene muchos programas de diseño gráfico adecuados para la visualización de redes sociales. Toma la descripción de gráficos en un lenguaje de texto simple y crea diagramas en formatos útiles, como PDF para incluir en otros documentos, mostrar en un navegador de gráficos interactivo o SVG para páginas web.

Además, tiene diferentes características útiles para diagramas concretos, por ejemplo, opciones para fuentes, color, estilos de línea, diseño de nodo tabular, formas personalizadas e hipervínculos.

9. NetMiner



NetMiner viene con un período de prueba de 14 días. Se utiliza para el análisis y la visualización de vastos datos de red basados ​​en el análisis de redes sociales. Las características como transformación de datos, visualización de datos de red, gráficos y lenguaje de script Python lo ayudan a detectar patrones y estructuras subyacentes de la red.

8. SocioViz




SocioViz es una plataforma de análisis de redes sociales para periodistas digitales, investigadores sociales y especialistas en marketing de medios. Le permite analizar cualquier tema, término o hashtag, identificar personas influyentes clave, opiniones y contenidos y exportar los datos en formato Gephi para su posterior análisis.

7. UNISoN



UNISoN es una aplicación Java que puede analizar mensajes para guardarlos en un archivo en formato Pajek para el análisis de redes sociales. Genera redes utilizando el autor de cada publicación. Si alguien interactúa con una publicación, se crea un enlace unidireccional del autor de la publicación al autor del mensaje al que está respondiendo. Además, hay un panel de vista previa que muestra la red visualmente.

6. NetworKit




NetworKit es una plataforma en crecimiento para el análisis de redes a gran escala, desde miles hasta miles de millones de bordes. Implementa un algoritmo gráfico eficiente, la mayoría de ellos son paralelos para utilizar la arquitectura multinúcleo. Se supone que deben calcular medidas estándar de análisis de red, como coeficientes de agrupación, secuencias de grados y medidas de centralidad. Además, su objetivo es admitir una variedad de formatos de entrada y salida.

5. GraphStream




GraphStream está diseñado para el modelado y análisis de gráficos dinámicos. Le permite crearlos, importarlos, exportarlos, darles forma y visualizarlos. En lugar de solo un conjunto de aristas y nodos, los gráficos se definen como un "flujo de eventos gráficos". Los eventos indican cuándo cambia un borde, nodo o componente asociado. Por lo tanto, un gráfico no se describe como una representación fija, sino por toda la historia en evolución de los elementos del gráfico.

4. NodeXL




NodeXL es una plantilla de código abierto para Microsoft Excel para análisis y visualización de redes. Le permite ingresar una lista de borde de red en una hoja de trabajo, hacer clic en un botón y visualizar su gráfico, todo en el entorno familiar de la ventana de Excel.

La herramienta admite la extracción de correo electrónico, YouTube, Facebook. Red social Twitter, WWW y Flickr. Puede manipular y filtrar fácilmente los datos subyacentes en formato de hoja de cálculo.

3. R




El lenguaje de programación R está repleto de numerosos paquetes relevantes para el análisis de redes sociales: igraph para análisis de red genérico, red para manipular y mostrar objetos de red, sna para realizar análisis sociométrico, tnet para realizar análisis de red ponderada o longitudinal, Bergm para análisis bayesiano para exponencial modelos de gráficos aleatorios, redes para simular redes bipartitas con marginales fijos y muchos más.

2. Gephi



Gephi suele ser un software de exploración y manipulación de gráficos escrito en Java. Proporciona una manera fácil de crear conectores de datos sociales para mapear organizaciones comunitarias y redes de mundo pequeño. Junto con el análisis de redes sociales, realiza análisis exploratorios de datos y enlaces, y análisis de redes biológicas. Quizás la herramienta de análisis gratuita más avanzada.


El software te ayuda a explorar y comprender gráficos. Puede interactuar con las figuras, manipular las estructuras, el color y la forma para revelar propiedades ocultas. La arquitectura flexible y de tareas múltiples le permite trabajar con datos complejos y producir resultados visuales valiosos. Además, hay un motor de renderizado 3D capaz de mostrar grandes redes en tiempo real, solo para acelerar la exploración.

1. Pajek



Pajek se utiliza para el análisis y visualización de grandes redes que contienen hasta mil millones de vértices. El programa realiza esto utilizando seis tipos de datos: gráficos, vértices, vectores (propiedades de vértices), clúster (subconjunto de vértices), permutación (reordenamiento de vértices) y jerarquía (estructura de árbol general en vértices).