1pbacoodpm Ud5qe87w8mdg.png

Fusionar el análisis de redes y la psicología organizacional puede ser un emocionante viaje interdisciplinario. Por ejemplo, Casciaro et al. (2015) abogan por la integración de perspectivas psicológicas y de red en la investigación organizacional, destacando que tales enfoques interdisciplinarios pueden enriquecer significativamente nuestra comprensión de los comportamientos y estructuras organizacionales. Enfatizan que la combinación de estas perspectivas revela dinámicas complejas dentro de las organizaciones que de otro modo permanecerían ocultas, especialmente en áreas como el liderazgo, la rotación y el desempeño del equipo. Esta fusión no solo promueve modelos teóricos sino que también sugiere implicaciones prácticas para la gestión organizacional, instando a una mayor exploración de áreas y metodologías subrepresentadas (Casciaro et al., 2015).

Brass (2012) enfatiza la importancia de reconocer cómo los atributos personales y las estructuras de red impactan colectivamente los resultados organizacionales, sugiriendo que un enfoque dual en las conexiones estructurales y las características individuales es crucial para una visión más profunda de la dinámica organizacional.

¿Pero por qué es eso interesante?

Porque según Briganti et al. (2018), que examinaron un tema psicológico específico, la empatía, concluyeron que las personas centrales dentro de la red son cruciales para predecir la dinámica general de la red, destacando su importancia para comprender las interacciones (empáticas).

En resumen, la literatura ya ha demostrado que examinar a las personas clave en una red puede ayudarnos a predecir factores para toda la red.

¿Cómo construir una red?

Bueno, se podría elegir una forma tradicional de explorar las interconexiones de una organización, por ejemplo, cuestionarios, grupos focales, entrevistas, etc. Los grupos focales y las entrevistas son difíciles de escalar. La validez de los datos de la investigación en ciencias sociales ha sido objeto de una profunda y seria preocupación en las últimas décadas (Nederhof y Zwier, 1983), ¡y esto se expresó en 1983! Las encuestas tradicionales suelen sufrir diferentes tipos de sesgos. Estas podrían ser dificultades con las encuestas de psicología:

  • sesgo de deseabilidad social (Nederhof, 1985) la tendencia de los encuestados a responder preguntas de una manera que los demás vean favorablemente
  • sesgo de actualidad (Murdock, 1962) cuando la información más reciente se recuerda mejor o tiene más influencia en sus percepciones que los datos anteriores
  • efecto aureola (Thorndike, 1920) cuando una impresión general de una persona influye en cómo nos sentimos y pensamos sobre su carácter. Esencialmente, tu impresión general de una persona (“¡Es agradable!”) impacta tus evaluaciones de los rasgos específicos de esa persona (“¡También es inteligente!”).
  • Sesgo de autoservicio (Zuckerman, 1979) atribuyendo los acontecimientos positivos al propio carácter pero atribuyendo los negativos a factores externos, preservando así la autoestima.

Se podría trabajar con evaluaciones ciegas (Rosenthal y Fode, 1963) o recurrir a métodos cualitativos que son excelentes opciones al brindar más profundidad y detalle sobre un tema (Braun y Clarke, 2006) y captar mejor las complejidades (Denzin y Lincoln, 2011). . Los métodos cualitativos también adolecen de limitaciones como la dificultad para unificar y organizar los resultados, el sesgo del investigador (Malterud, 2001), el sesgo de confirmación de los investigadores (Nickerson, 1998), pero en la era de los LLM, con las indicaciones y la automatización adecuadas, estas limitaciones pueden superar.

Presentaré un método simple basado en LLM para extraer relaciones de red a partir del lenguaje natural. Dado que el objetivo de este artículo es la presentación del método, no cualquier resultado psicológico, utilizaré datos sintéticos: con GPT4o generaré 5 personas virtuales con profesiones y personalidades. Les haré tres preguntas con los temas menos fijos posibles:

  • Cuente la historia de su jornada laboral promedio. Su historia debe ser muy detallada e incluir tareas, personas y cualquier cosa que se le ocurra. No hay una respuesta buena o mala.
  • Cuenta una historia en la que te sentiste muy mal en el trabajo. No hay una respuesta buena o mala, pero hágala lo más detallada posible.
  • Cuente una historia en la que se haya sentido genial y exitoso en el trabajo. No hay una respuesta buena o mala, pero hágala lo más detallada posible.

Que empiece el juego

Necesitamos algunos detalles sobre nuestro equipo imaginario para generar datos textuales realistas para nuestra entrada.

Le pasé este mensaje al LLM:

Generate 5 virtual personas to me. They work on the same project. They should have
- first name
- age
- profession/position at the company
- a short description of their personalities.
Their personalities should have negative sides as well.
At least one pair should be in a manager-subordinate relationship.

Generó las siguientes personas:

Name: Emily
Age: 29
Profession/Position: Project Manager
Personality Description: Emily is highly organized and decisive, often seen as the backbone of the team.
She is empathetic and approachable but can sometimes be overly controlling and resistant to deviating from her planned schedules.
Emily's insistence on efficiency can occasionally overlook the need for creative freedom.

Name: Josh
Age: 34
Profession/Position: Lead Software Engineer
Personality Description: Josh is tech-savvy and a problem solver with a passion for new technologies.
He is introverted and sometimes struggles with communication, which can lead to misunderstandings with teammates.
His calm demeanor is an asset, although it sometimes appears as disinterest in team discussions.

Name: Leah
Age: 26
Profession/Position: Junior Software Engineer
Personality Description: Leah is creative and energetic, full of ideas and great at networking.
However, her enthusiasm can sometimes manifest as impatience with slower-paced tasks or details.
She can be overly ambitious, pushing the team towards unfeasible goals.

Name: Carlos
Age: 42
Profession/Position: Financial Analyst
Personality Description: Carlos is meticulous and deeply knowledgeable about finances
but tends to be pessimistic and overly critical, which can dampen team morale.
His cautious nature sometimes slows down decision-making processes, frustrating more dynamic team members.

Name: Fiona
Age: 38
Profession/Position: UX/UI Designer
Personality Description: Fiona is creative and a great listener, making her designs user-friendly.
However, she can be overly sensitive to criticism and sometimes takes feedback personally.
She tends to avoid conflict, which can lead to unresolved issues in the team dynamics.

Ahora le pedí al LLM que actuara como estas personas y le hice las tres preguntas dadas. Como estoy hablando con una modelo, con mi indicación me aseguro de incluir información sobre las relaciones interpersonales. Para ahorrar algo de espacio y tiempo de lectura, hablaremos de una sola persona. Mensaje de ejemplo:

You need to act now like Emily. 
You are taking part in an online HR assessment.
Here are some data about your profession, personality, etc:

Name: Emily
Age: 29
Profession/Position: Project Manager
Personality Description: Emily is highly organized and decisive, often seen as the backbone of the team. She is empathetic and approachable but can sometimes be overly controlling and resistant to deviating from her planned schedules. Emily's insistence on efficiency can occasionally overlook the need for creative freedom.

In this assessment, you, Emily, are asked these three questions:
- Tell the story of your average workday. Your story needs to be very detailed, including tasks, people - and anything that comes to your mind. There is no good or bad answer.
- Tell a story where you felt really bad at work. There is no good or bad answer - but please make it as detailed as you can.
- Tell a story where you felt great and successful at work. There is no good or bad answer - but please make it as detailed as you can.

Your team consists of the following people, if you have any relationship with them, please include in your answers:
<Description of other teammates>

Los resultados para Emily:

1. Average Workday:
My typical day starts with a quick review of my to-do list, which I prepare the night before.
I arrive at the office by 8 AM, settle in, and start with a 30-minute session to review the progress on ongoing projects against their timelines.
At 8:30 AM, I hold a brief stand-up meeting with the team, which includes Josh, Leah, Carlos, and Fiona, to catch up on their progress and address any immediate concerns.

After the stand-up, I typically meet with Carlos to discuss budget updates or financial issues.
His insights are crucial, though I occasionally need to guide the conversation to keep it from veering into
overly pessimistic territory, which helps us stay focused on solutions rather than problems.

Mid-morning is usually reserved for one-on-one sessions with team members needing guidance.
For instance, I often spend time with Fiona reviewing design timelines.
She appreciates clear, empathetic feedback which I strive to provide, though I must balance this with the need to maintain our project schedule.

Lunch is a quick affair, often at my desk, as I catch up on emails and plan for the afternoon.
Post-lunch, I review Leah's latest marketing initiatives or software developments. Leah's energy is infectious,
though her ambition sometimes requires tempering to align with our practical deliverables.

My afternoons often involve strategic planning sessions, where I work with Josh
to align our technology needs with business goals.
His technical expertise is invaluable, though I sometimes mediate
to ensure his ideas are clearly communicated to the rest of the team.

I end my day by updating our project management tools, responding to any final emails,
and preparing the next day’s priority list. Before leaving,
I always walk around to say a quick goodbye to the team, ensuring I leave on a personal note.

2. Negative Experience:
A particularly challenging day occurred when we were nearing a major project deadline.
Tensions were high, and despite my efforts to keep the team on track, a critical integration flaw was discovered.
The error was in a section Josh had worked on; his usual calm demeanor made it difficult to gauge his concern,
which initially seemed like disinterest. This misunderstanding escalated under pressure.

I felt overwhelmed and responsible, fearing the mistake would reflect poorly on my ability to manage.
It was a stark reminder that my need for control and perfection could blind me to the team's stress levels.
That day ended with us missing a deadline, a first for me, which deeply upset me.

3. Positive Experience:
One of my proudest moments was leading the team during the launch of a new product that was pivotal to our company’s expansion.
The project had complex components, requiring tight coordination between all departments.
Despite the challenges, including balancing Carlos' cautious financial strategies
with Leah's ambitious marketing plans, we executed a flawless launch.

The success was made sweeter by the positive feedback from upper management and the client’s satisfaction.
It reinforced the value of my organizational skills and my ability to gently
but effectively guide the team through high-pressure situations.
That day, I truly felt accomplished, seeing the tangible results of our hard work and my leadership.

El resto de las indicaciones y resultados se pueden encontrar aquí: llm-network-extraction/ en principal · sugartrauma/llm-network-extraction (github.com)

Extrayendo interacciones

Ahora que tenemos los datos para nuestro análisis de red, necesitamos extraer las relaciones de las interacciones mencionadas.

You are a social network extraction tool.
You are given an input marked in <input> tag.

Extract the relationships between people mentioned in the <input> text and
structure them into a CSV format with columns:
- source
- target
- edge_type
- interaction_type

The relationships can be of two types: knowledge and personal.
The interaction types for knowledge can be "gives knowledge" or "receives knowledge,"
For personal, the interaction_type can be "positive interaction" or "negative interaction."

Example input:
<input>
Josh helps Leah with coding challenges, sharing his expertise regularly.
Emily and Fiona often collaborate creatively and have a positive working relationship.
</input>

Example output:
source,target,edge_type,interaction_type
Josh,Leah,knowledge,gives knowledge
Emily,Fiona,personal,positive interaction

The relationship must be represented only once.
You must not represent an edge in the opposite direction.
Bad example:
source,target,edge_type,interaction_type
Josh,Leah,knowledge,gives knowledge
Leah,Josh,knowledge,receives knowledge

Good example:
source,target,edge_type,interaction_type
Josh,Leah,knowledge,gives knowledge

<input>
Input comes here
</input>

El LLM duplicó algunas relaciones como:

Josh, Leah, conocimiento, da conocimiento.
Leah, Josh, conocimiento, recibe conocimiento.

Los dedupliqué y comencé el análisis de la red real.

Aunque hablo Python con fluidez, quería mostrar las capacidades de GPT4o también para los no programadores. Entonces utilicé el LLM para generar mis resultados con este mensaje:

Please build a network in Python from this data. 
There should be two types of edges: "knowledge", "personal".
You can replace the textual interaction_types to numbers, like -1, 1.
I need this graph visualized.
I want to see the different edge_types with different type of lines and the weights with different colors.

Lo intenté muchas veces, GPT4o no pudo resolver la tarea, así que con las buenas formas antiguas, generé una visualización gráfica escribiendo código Python:

import networkx as nx
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

cleaned_data = pd.read_csv(<file_destination>)
# For knowledge, we don't punish with negative values if there is no sharing
# For personal relationships, a negative interaction is valued -1
for idx, row in cleaned_data.iterrows():
if row["edge_type"] == "knowledge":
# If the source received knowledge, we want to add credit to the giver, so we swap this
if row["interaction_type"] == "receives knowledge":
swapped_source = row["target"]
swapped_target = row["source"]
cleaned_data.at[idx, "target"] = swapped_target
cleaned_data.at[idx, "source"] = swapped_source
cleaned_data.at[idx, "interaction_type"] = 1
elif row["edge_type"] == "personal":
cleaned_data.at[idx, "interaction_type"] = -1 if row["interaction_type"] == "negative interaction" else 1

# Aggregate weights with a sum
aggregated_weights = cleaned_data.groupby(["source", "target", "edge_type"]).sum().reset_index()

# Filter the data by edge_type
knowledge_edges = aggregated_weights[aggregated_weights['edge_type'] == 'knowledge']
knowledge_edges["interaction_type"] = knowledge_edges["interaction_type"].apply(lambda x: x**2)
personal_edges = aggregated_weights[aggregated_weights['edge_type'] == 'personal']
personal_edges["interaction_type"] = personal_edges["interaction_type"].apply(lambda x: x**2 if x >=0 else -(x**2))

# Normalize the weights for knowledge interactions since it has only >= 0 values, so the viz wouldn't be great
if not knowledge_edges.empty:
min_weight = knowledge_edges['interaction_type'].min()
max_weight = knowledge_edges['interaction_type'].max()
knowledge_edges['interaction_type'] = knowledge_edges['interaction_type'].apply(
lambda x: 2 * ((x - min_weight) / (max_weight - min_weight)) - 1 if max_weight != min_weight else 0)

# Create separate graphs for knowledge and personal interactions
G_knowledge = nx.DiGraph()
G_personal = nx.DiGraph()

# Add edges to the knowledge graph
for _, row in knowledge_edges.iterrows():
G_knowledge.add_edge(row['source'], row['target'], weight=row['interaction_type'])

# Add edges to the personal graph
for _, row in personal_edges.iterrows():
G_personal.add_edge(row['source'], row['target'], weight=row['interaction_type'])

custom_cmap = LinearSegmentedColormap.from_list('red_green', ['red', 'yellow', 'green'])

# Find the knowledge center
knowledge_center = knowledge_edges.groupby("source").sum().idxmax().values[0]
least_knowledge_node = knowledge_edges.groupby("source").sum().idxmin().values[0]

# Draw the knowledge interaction graph with arrows
plt.figure(figsize=(12, 8))
pos = nx.spring_layout(G_knowledge, k=0.5, iterations=50)
nx.draw_networkx_nodes(G_knowledge, pos, node_size=100, node_color='lightblue')
knowledge_weights = [d['weight'] for u, v, d in G_knowledge.edges(data=True)]
nx.draw_networkx_edges(G_knowledge, pos, edgelist=G_knowledge.edges(), edge_color=knowledge_weights, edge_cmap=custom_cmap, edge_vmin=-1, edge_vmax=1, width=2, arrows=True)
nx.draw_networkx_labels(G_knowledge, pos, font_size=14)
plt.title('Knowledge Interactions')
plt.annotate(f'Knowledge Center: {knowledge_center}', xy=(1.05, 0.95), xycoords='axes fraction', fontsize=14, color='darkred')
plt.annotate(f'Least knowledge sharing: {least_knowledge_node}', xy=(1.0, 0.85), xycoords='axes fraction', fontsize=14, color='darkred')
plt.axis('off')
plt.show()

# Find the personal center
personal_center = personal_edges.groupby("source").sum().idxmax().values[0]
least_personal_center = personal_edges.groupby("source").sum().idxmin().values[0]

# Draw the personal interaction graph
plt.figure(figsize=(12, 8))
pos = nx.spring_layout(G_personal, k=0.5, iterations=50)
nx.draw_networkx_nodes(G_personal, pos, node_size=100, node_color='lightblue')
weights = [d['weight'] for u, v, d in G_personal.edges(data=True)]
nx.draw_networkx_edges(G_personal, pos, edgelist=G_personal.edges(), edge_color=weights, edge_cmap=custom_cmap, edge_vmin=-1, edge_vmax=4, width=2, arrows=True)
nx.draw_networkx_labels(G_personal, pos, font_size=14)
plt.title('Personal Interactions')
plt.annotate(f'Personal Center: {personal_center}', xy=(1.05, 0.95), xycoords='axes fraction', fontsize=14, color='darkred')
plt.annotate(f'Least positive person: {least_personal_center}', xy=(1.05, 0.85), xycoords='axes fraction', fontsize=14, color='darkred')
plt.axis('off')
plt.show()

Los resultados de la red de intercambio de conocimientos:

Gráfico generado a través de matplotlib a partir de datos públicos del autor

Podemos descubrir que, excepto Carlos, todos son bastante cercanos en el ecosistema de intercambio de conocimientos. Emily es el nodo con mayor peso saliente en nuestro gráfico.

¿Qué podemos hacer con esos datos?
1. Definitivamente deberíamos mantener a Emily en la empresa; si necesitamos elegir a una persona para que haga el máximo esfuerzo por los beneficios y reciba un compromiso a largo plazo, esa debería ser Emily.
2. Carlos es analista financiero, lo que dista bastante del trabajo real del equipo. Puede que no sea un problema que no comparta tanta información. La parte crucial podría verse en la otra parte del gráfico, que no tenemos: cuánto conocimiento comparte en el equipo de finanzas. Así que tenga cuidado al interpretar resultados que podrían parecer malos a primera vista.

Los resultados para la red de positividad/negatividad de interacciones:

Gráfico generado a través de matplotlib a partir de datos públicos del autor

Se puede ver que Leah, nuestra ingeniera de software junior, es la persona más positiva según la cantidad de interacciones positivas.
1. Como acción, podríamos iniciar un programa de mentoría para ella, para poder viralizar su actitud positiva y facilitarle la adquisición de experiencia profesional para aumentar su confiabilidad en todos los ámbitos de trabajo.
2. Emily es la persona que tiene menos interacciones positivas y más negativas. Como director de proyectos, no es de extrañar que los PM a menudo tengan que tomar decisiones difíciles. Por otro lado, esto podría necesitar una doble verificación para ver si la negatividad de sus interacciones proviene de sus deberes de PM o de su personalidad real.
Una vez más, ¡no asumas lo peor a primera vista!

Resumen

En este artículo, compartí un método novedoso para extraer y analizar redes sociales organizacionales con LLM y análisis de gráficos.
No olvide que se trata de datos sintéticos, generados por GPT4o; mostré la tecnología en lugar de hallazgos reales relacionados con la psicología. Esa parte podría ser el próximo objetivo de mi investigación si tengo acceso a datos de la vida real.
Con suerte, este pequeño proyecto puede facilitar una investigación más profunda en el futuro.

Espero que hayas disfrutado del artículo, no dudes en comentar.

Fuentes:

Latón, DJ (2012). Una perspectiva de redes sociales en psicología organizacional. Manuales de Oxford en línea. doi:10.1093/oxfordhb/9780199928309.013.0021

Braun, V. y Clarke, V. (2006). «Uso del análisis temático en psicología». Investigación Cualitativa en Psicología, 3(2), 77–101. Este artículo analiza cómo el análisis temático en la investigación cualitativa puede descubrir datos ricos y detallados.

Briganti, G., Kempenaers, C., Braun, S., Fried, EI y Linkowski, P. (2018). Análisis de redes de ítems de empatía del índice de reactividad interpersonal en 1973 adultos jóvenes. Investigación en psiquiatría, 265, 87–92. DOI: 10.1016/j.psychres.2018.03.082

Casciaro, T., Barsade, SG, Edmondson, AC, Gibson, CB, Krackhardt, D. y Labianca, G. (2015). La integración de perspectivas psicológicas y de red en el mundo académico organizacional. Ciencia de la organización, 26(4), 1162-1176. DOI: 10.1287/orsc.2015.0988

Denzin, NK y Lincoln, YS (Eds.). (2011). «El manual sabio de investigación cualitativa». Sabio. Este manual analiza las fortalezas de la investigación cualitativa para capturar las complejidades del comportamiento humano y los fenómenos sociales.

Malterud, K. (2001). «Investigación cualitativa: estándares, desafíos y directrices». Lanceta358(9280), 483–488.

Murdock, BB (1962). «El efecto de la posición en serie del recuerdo libre». Revista de Psicología Experimental64(5), 482–488.

Nederhof, AJ y Zwier, AG (1983). ‘La “crisis” en psicología social, un enfoque empírico’, Revista Europea de Psicología Social, 13: 255–280.

Nederhof, AJ (1985). Métodos para afrontar el sesgo de deseabilidad social: una revisión. Revista europea de psicología social, 15 (3), 263–280. doi:10.1002/ejsp.2420150303

Nickerson, RS (1998). «Sesgo de confirmación: un fenómeno omnipresente en muchas formas». Repaso de Psicología General2(2), 175–220.

Rosenthal, R. y Fode, KL (1963). «El efecto del sesgo del experimentador en el desempeño de la rata albina». Ciencia del comportamiento8(3), 183–189.

Thorndike, EL (1920). «Un error constante en las valoraciones psicológicas». Revista de Psicología Aplicada4(1), 25–29.

Zuckerman, M. (1979). «Revisión de la atribución de éxito y fracaso, o: el sesgo motivacional está vivo y coleando en la teoría de la atribución». Diario de personalidad47(2), 245–287.