Section A & B: Data Preview, Research Question & Pre Process

1. בחרו דאטסט עם נושא שמסקרן אתכם. כתבו כמה משפטים שמתארים את הדאטסט ומדוע בחרתם דווקא בו:

הדאטה מכיל תוצאות מניסוי שנערך במעבדה של פרופ’ יערה ישורון ובדק את הקשר בין דפוסים פרוזודיים משותפים של בני-שיח לבין ההערכה הסובייקטיבית שלהם לגבי איכות האינטראקציה. הניסוי כלל 120 נבדקים שחולקו ל60 דיאדות מאותו מגדר, וניהלו ראיון חצי-מובנה בזום עם שאלות ברמת אינטימיות עולה. הנתונים הפרוזודיים נאספו ועברו עיבוד ראשוני באמצעות התוכנה Praat, ההערכה הסובייקטיבית לגבי טיב האינטראקציה התבססה על שאלון GOI עליו ענו הנבדקים לאחר הדיאלוג. הדאטה מנותח ברמת הדיאדה כלומר, כל שורה מייצגת את הערך הממוצע של שני הדוברים בכל מדד, או לחלופין את מידת הדמיון ביניהם בכל דפוס פרוזודיה שנדגם. חקר דפוסי שפה אופטימליים המאפיינים אינטראקציה איכותית עשוי לסייע בשיפור התקשורת שלנו בממשק אנושי, וכן בממשק אדם מחשב לדוגמא, באמצעות הטמעת הדפוסים הללו במערכות של סייענים קוליים כמו SIRI.

  • במטרה לשמור על רצף לוגי בניתוח, נבצע במקביל ולסירוגין את שלבי הצגת הנתונים (Data Preview) והעיבוד המקדים (Pre Process) בניתוח שלנו.

Pre Process: Load Data

# Create a df called Data_raw containing the unprocessed data
Data_raw <- read.csv("Data/SharedProsody_vs_InteractionQuality.csv")

Data Structure

נציג את מבנה הדאטה שלנו:

str(Data_raw)
## 'data.frame':    60 obs. of  101 variables:
##  $ Dyad                              : chr  "125_133" "151_152" "163_164" "185_186" ...
##  $ Gender                            : int  1 0 1 1 1 0 0 1 1 0 ...
##  $ utterance_dur_mean.s..diff_avg    : num  15.99 27.84 20.76 9.95 4.87 ...
##  $ utterance_dur_mean.s..avg_avg     : num  47.6 45 35.3 22.9 19.4 ...
##  $ utterance_dur_std.s..diff_avg     : num  11.23 14.4 16.9 4.86 1.79 ...
##  $ utterance_dur_std.s..avg_avg      : num  28.6 25.6 24.4 13.2 10.2 ...
##  $ utterance_dur_min.s..diff_avg     : num  0.0912 0.0705 0.0446 0.0788 0.0142 ...
##  $ utterance_dur_min.s..avg_avg      : num  0.174 0.182 0.153 0.192 0.13 ...
##  $ utterance_dur_max.s..diff_avg     : num  31.23 46.54 38.71 14.35 6.78 ...
##  $ utterance_dur_max.s..avg_Avg      : num  79.7 77.7 64.5 39.7 33.2 ...
##  $ speaking_time.s..diff_avg         : num  45.2 145.2 27 28 14.2 ...
##  $ speaking_time.s..avg_avg          : num  159.2 154.7 122.3 93.9 71.9 ...
##  $ gaps_min.p_r                      : num  0.6 0.553 0.747 0.764 0.402 ...
##  $ overall_speaking_duration.avg_avg : num  1067 1217 985 752 654 ...
##  $ overall_speaking_duration.diff_avg: num  242.98 572.59 61.59 183.7 7.13 ...
##  $ overall_silences_duration.avg_avg : num  1893 2071 1708 1263 1204 ...
##  $ overall_silences_duration.diff_avg: num  243.1 578.9 60.6 184.8 10.5 ...
##  $ gaps_avg.avg_avg                  : num  13.3 -1.67 -1.39 9.43 -1.14 ...
##  $ gaps_avg.diff_avg                 : num  35.57 3.7 1.44 17.98 1.18 ...
##  $ speaking_durations_avg.avg_avg    : num  8.52 10.09 6.14 6.46 6 ...
##  $ speaking_durations_avg.diff_avg   : num  2.276 4.668 0.422 2.012 0.757 ...
##  $ silence_durations_avg.avg_avg     : num  15 15.8 10.7 10.4 10.3 ...
##  $ silence_durations_avg.diff_avg    : num  1.453 3.937 0.245 1.094 2.186 ...
##  $ gaps_min.avg_avg                  : num  -66.8 -63.2 -81.3 -50.3 -37.4 ...
##  $ gaps_min.diff_avg                 : num  16.3 27 49.7 16.9 4.6 ...
##  $ speaking_durations_min.avg_avg    : num  0.112 0.12 0.112 0.112 0.112 0.112 0.136 0.112 0.12 0.184 ...
##  $ speaking_durations_min.diff_avg   : num  5.69e-14 1.60e-02 1.70e-13 0.00 0.00 ...
##  $ silence_durations_min.avg_avg     : num  2 2.01 2.01 2 2.03 ...
##  $ silence_durations_min.diff_avg    : num  0 0.016 0.016 0 0.032 0 0.032 0 0.08 0.032 ...
##  $ gaps_max.avg_avg                  : num  1198 59 51.1 788.6 64.1 ...
##  $ gaps_max.diff_avg                 : num  2297.5 10.9 45.3 1367.5 33.3 ...
##  $ speaking_durations_max.avg_avg    : num  118 109.9 122.3 54.7 41.3 ...
##  $ speaking_durations_max.diff_avg   : num  67.68 82.128 0.576 19.2 0.736 ...
##  $ silence_durations_max.avg_avg     : num  154.7 82.2 125.4 107.6 105.9 ...
##  $ silence_durations_max.diff_avg    : num  46.29 27.55 72.46 8.21 11.88 ...
##  $ GOI_1                             : num  81.5 80.5 60.5 72.5 49.5 65.5 77.5 77.5 26 30 ...
##  $ GOI_2                             : num  97.5 85.5 90 85 71 69 77.5 87.5 70 29 ...
##  $ GOI_3                             : num  95 81 89 80 63 60.5 64 65 64 34 ...
##  $ GOI_4                             : num  59.5 78 77.5 86.5 57 73 75 50 44.5 39.5 ...
##  $ GOI_5                             : num  77.5 93 92.5 88.5 57.5 80.5 49 77.5 54.5 12 ...
##  $ GOI_6                             : num  85 55.5 92 70.5 59.5 50 57 72.5 44.5 33.5 ...
##  $ GOI_7                             : num  89 75.5 88.5 88 63 52.5 63.5 64.5 60 21.5 ...
##  $ GOI_8                             : num  80.5 87 66.5 79 71.5 67 66 72.5 62.5 49.5 ...
##  $ GOI_9                             : num  90 72 89 78.5 55.5 67.5 76.5 80 52.5 21.5 ...
##  $ GOI_10                            : num  92.5 55 81 87 71.5 78 72 66.5 50.5 NA ...
##  $ GOI_11                            : num  95 82.5 90 88.5 78 42 81 80 95 NA ...
##  $ GOI_12                            : num  97.5 92.5 89 89 77.5 77.5 81.5 90 76 NA ...
##  $ GOI_13                            : num  72.5 77 85 65 58 45.5 59.5 71 92.5 NA ...
##  $ GOI_14                            : num  68.5 55.5 80 88.5 53.5 76 75.5 75 70.5 NA ...
##  $ GOI_15                            : num  92.5 76.5 85 89 77.5 80 81.5 75 94.5 NA ...
##  $ GOI_16                            : num  86 78.5 85 80.5 68 77.5 49 74.5 62 NA ...
##  $ GOI_17                            : num  95 50 66.5 73.5 52 60 83 61.5 32 NA ...
##  $ GOI_18                            : num  96 67.5 77.5 81.5 69.5 72.5 71 73.5 47.5 NA ...
##  $ GOI_19                            : num  99 75 85.5 76.5 75 75 77 80 49 NA ...
##  $ GOI_20                            : num  85.5 47.5 66 60 24.5 62.5 65.5 57.5 5.5 NA ...
##  $ GOI_21                            : num  96 49.5 85 75.5 32 71.5 73.5 80 15 NA ...
##  $ GOI_22                            : num  99 70 91.5 85 76.5 80.5 71 54 59 NA ...
##  $ GOI_23                            : num  95 47.5 91 86.5 79 60 73.5 75.5 79.5 NA ...
##  $ GOI_24                            : num  97 68 76 81.5 75 80 53 66 33.5 NA ...
##  $ GOI_25                            : num  94.5 75.5 77.5 81.5 83.5 80 74 81 89 NA ...
##  $ GOI_26                            : num  96.5 80 84.5 81.5 80.5 60 67.5 81 87.5 NA ...
##  $ GOI_27                            : num  100 90 100 95 90.5 85.5 94.5 75 94.5 NA ...
##  $ GOI_28                            : num  100 87.5 87.5 80.5 51.5 34 77.5 71 29 NA ...
##  $ GOI_29                            : num  97.5 60 82.5 83.5 67.5 53 66 77 31.5 NA ...
##  $ GOI_30                            : num  95 60 62.5 76 67 51 79.5 85 14.5 NA ...
##  $ GOI_31                            : num  76.5 65 72.5 75.5 63.5 66 64 75.5 16 NA ...
##  $ GOI_32                            : num  79 49.5 80 73 40.5 57 62.5 73 9 NA ...
##  $ GOI_33                            : num  97.5 87.5 90 83 78.5 77 95.5 87.5 97 NA ...
##  $ GOI_34                            : num  95 60 52.5 64 57.5 53.5 79 75.5 66 NA ...
##  $ GOI_35                            : num  87.5 55 95 75.5 62 48 64 75.5 33 NA ...
##  $ GOI_36                            : num  65 50 67.5 37.5 48 46.5 50 67 13 NA ...
##  $ GOI_37                            : num  94 78.5 95 75.5 68.5 82.5 77 80.5 39 NA ...
##  $ GOI_38                            : num  85 89 80 59.5 60 82.5 74.5 81 62.5 NA ...
##  $ GOI_39                            : num  55 80 86.5 64.5 29.5 43.5 56.5 56.5 49.5 NA ...
##  $ GOI_40                            : num  57.5 55 80.5 27.5 30.5 66 57.5 70.5 37.5 NA ...
##  $ GOI_43                            : num  100 62.5 90 87.5 71 50 88.5 78.5 79 NA ...
##  $ GOI_44                            : num  46.5 55 73.5 33 49 59 10 73.5 71.5 NA ...
##  $ GOI_45                            : num  99.5 65 85 86.5 75 64 78 79 86.5 NA ...
##  $ GOI_46                            : num  96 59.5 75 87.5 69 47.5 90 72.5 88.5 NA ...
##  $ GOI_47                            : num  97 87.5 95 61 38.5 79 62.5 93 54 NA ...
##  $ GOI_48                            : num  88.5 94.5 85 90 98.5 95 82.5 85 92.5 NA ...
##  $ GOI_49                            : num  37 82.5 90 75 84.5 88 36 60 71 NA ...
##  $ GOI_50                            : num  7.5 57.5 55 74 32 46 22.5 57 70.5 NA ...
##  $ GOI_51                            : num  35 57.5 55 87.5 17 56.5 22 55 65 NA ...
##  $ GOI_52                            : num  4.5 12.5 47.5 63 12 78 70 58 79.5 NA ...
##  $ GOI_53                            : num  0 2.5 0 5 10 49 52 11 6 NA ...
##  $ GOI_54                            : num  90.5 92.5 90.5 100 100 90 92.5 96.5 100 NA ...
##  $ GOI_55                            : num  93 92.5 91.5 100 100 91 99.5 100 100 NA ...
##  $ ios.avg_avg                       : num  0.207 0.105 0.684 0.207 0.453 ...
##  $ Sum_of_intimacy_q_peson_A_plus_B  : int  6 7 6 7 7 8 7 5 6 8 ...
##  $ Number_of_mutual_intimacy_q       : int  0 2 1 2 3 2 2 3 3 3 ...
##  $ Number_of_intimacy_q_def          : int  0 5 3 3 2 4 1 0 1 1 ...
##  $ Average_of_comfort                : num  36.2 52.4 56.1 55.6 72.2 ...
##  $ Def_of_comfort                    : num  4.45 10.39 19.92 2.5 -19.67 ...
##  $ Average_of_intimacy               : num  95 82 81.2 78.5 52.2 ...
##  $ Def_of_intimacy                   : num  2.909 2.833 0.917 -43.083 0.667 ...
##  $ Number_of_q_answered_full_convo   : int  11 11 12 12 12 12 12 12 12 12 ...
##  $ friendship.diff_avg               : int  12 5 3 10 2 6 8 8 3 20 ...
##  $ friendship.avg_avg                : num  82 84.5 81.5 86 74 83 67 81 55.5 36 ...
##   [list output truncated]

הדאטה כולל נתונים מ-60 אינטראקציות של דיאדות . כל שורה מיוצגת על ידי מספרי הנבדק של חברי הדיאדה מופרדים בקו תחתון, במשתנה מסוג Char. הדאטה מכיל מדדים ממוצעים(avg_avg) ופערים (avg_diff) בין חברי הדיאדה במאפייני פרוזודיה שונים, המקודדים במשתנים נומריים. כמו כן, הדירוגים הממוצעים של חברי הדיאדה בכל אחת מהשאלות בשאלון GOI להערכת אינטראקציה מקודדים גם הם במשתנים נומריים.

Pre Process: Load Libraries

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3

Pre Process: Data Transformation - GOI Factor

על מנת לחוש את הדאטה, נרצה להציג סטטיסטיקה תיאורית והתפלגות עבור המשתנה המנובא במחקר שלנו.
לשם כך, ניצור פקטור של השאלות הרלוונטיות להערכת האינטראקציה החברתית המשותפת על פי שאלון GOI.

Conduct interaction quality factor based on GOI questionnaire

We will average the relevant questions for evaluating interaction quality according to the GOI questionnaire.

Question numbers: 8, 9, 10, 18, 19, 20, 21, 28, 30, 37

Implementation:

# Calculate GOI factor using dplyr
Data_goi <- Data_raw %>%
  rowwise() %>%
  mutate(GOI = mean(c(GOI_8, GOI_9, GOI_10, GOI_18, GOI_19, GOI_20, GOI_21,
                      GOI_28, GOI_30, GOI_37), na.rm = TRUE)) # Exclude NA for valid mean

כעת, נציג סטטיסטיקה תיאורית עבור המשתנה המנובא, ההערכה סובייקטיבית של איכות האינטראקציה, שיצרנו בשלב הקודם.

Descriptive Statistics:

This section will display mean, sd min & max values of our predicted variable.

# Calculate Descriptive Statistics Vector
stats_GOI <- c(
  Average = mean(Data_goi$GOI, na.rm = TRUE),
  Median = median(Data_goi$GOI, na.rm = TRUE),
  SD = sd(Data_goi$GOI, na.rm = TRUE),
  Min = min(Data_goi$GOI, na.rm = TRUE),
  Max = max(Data_goi$GOI, na.rm = TRUE)
)

print(stats_GOI)
##  Average   Median       SD      Min      Max 
## 67.39598 68.93056 16.22897 27.35000 98.25000

Data Preview: Predicted Variable

בצעו הצגת נתונים מקדימה. הצגת הנתונים האקספלורטיבית תאפשר לכם “לחוש” את הדאטה ולהעלות השערות על קשרים אפשריים בין הנתונים. עליכם להשתמש בחבילת ggplot כדי להציג את המשתנים. נסו להשתמש בכמה שיותר פונקציות מתוך החבילה. (10 נק’)

We used geom_density() to plot the distribution of our predicted variable we created earlier.

# Define mean value:
mean_GOI <- mean(Data_goi$GOI)

# Creating the plot
ggplot(Data_goi, aes(x = GOI)) +
  geom_density(aes(fill = "GOI"), alpha = 0.5) +  # Simplified filling with a single color directly
  geom_vline(xintercept = mean_GOI, color = "red", linetype = "dashed") + # Highlight mean value directly
  ggtitle("Density of GOI") +
  xlab("GOI") +
  ylab("Density") +
  scale_x_continuous(limits = c(0, 100),  # Set x-axis limits from 0 to 100
                     breaks = seq(0, 100, by = 5),  # Set breaks every 5 units
                     minor_breaks = seq(0, 100, by = 1)) +  # Minor breaks every 1 unit for detailed scale
  theme_classic() +
  scale_fill_manual(values = c("GOI" = "turquoise"))  # Set a manual fill color

ניכר כי המשתנה המנובא, ההערכה הסובייקטיבית של טיב האינטראקציה, מתפלג בצורה יחסית נורמלית עם נטיה קלה לזנב שמאלי.

Data Preview: Plot Predictors

כעת, נרצה להציג את התפלגות המשתנה המנבא המרכזי במחקר שלנו, מבע (utterance) שהינו יחידת דיבור רציפה בשיחה. מבע נמדד בשניות ועשוי לכלול הברה בודדת עד משפטים ארוכים ורצופים. בהתחשב בתנאי הניסוי שנערך בזום, ציפינו לדגום ערכים חריגים כתוצאה מבעיות טכניות ותקלות אינטרנט. נטפל בערכים הללו בשלב עיבוד הנתונים.

הגרף הבא מציג את התפלגות המשתנים המנבאים במחקר באמצעות בוקס פלוט שמדגים גם הימצאות ערכים קיצוניים בדאטה.

ggplot(Data_goi) +
# Create Boxplot for each predictor
  geom_boxplot(aes(x = "utterance_dur_mean.s..avg_avg", y = utterance_dur_mean.s..avg_avg), fill = "red") + 
  geom_boxplot(aes(x = "utterance_dur_mean.s..diff_avg", y = utterance_dur_mean.s..diff_avg), fill = "pink") +
  geom_boxplot(aes(x = "utterance_dur_std.s..avg_avg", y = utterance_dur_std.s..avg_avg), fill = "blue") + 
  geom_boxplot(aes(x = "utterance_dur_std.s..diff_avg", y = utterance_dur_std.s..diff_avg), fill = "lightblue") +
  labs(title = "Predictors Boxplot", x = "Dyad's Utterance Attributes", y = "Time [s]") +
  scale_y_continuous(breaks = seq(0, max(Data_goi$utterance_dur_mean.s..avg_avg, na.rm = TRUE)
                                  , by = 5)) +  # Set y-axis breaks
  scale_x_discrete(labels = c("utterance_dur_mean.s..avg_avg" = "Average Utterance",
                              "utterance_dur_mean.s..diff_avg" = "Average Utterance Δ",
                              "utterance_dur_std.s..avg_avg" = "Utterance std",
                              "utterance_dur_std.s..diff_avg" = "Utterance std Δ")) +  
                              # Custom x-axis labels
  theme_classic()

  • הגרף מציג את משך המבע הממוצע של חברי הדיאדה בשניות, את סטיית התקן באורך המבע ואת מידות הדמיון בין הדוברים בדפוסים הללו.
    (הדמיון מיוצג על ידי הפער בערך מוחלט בין הערכים של חברי הדיאדה ומסומן באמצעות דלתא כאשר, 0 = דפוס זהה)

Pre Process: Clean Data

נעבד את הדאטה כך שיכיל את המשתנים הרלוונטים לניתוח ונגדיר עבורם שמות אינטואיטיביים יותר. לשם כך, נשתמש בפונקציה select מתוך הספרייה dplyr.

Data_clean <- Data_goi %>%
  select(3:6,102,
         Average_Utterance = "utterance_dur_mean.s..avg_avg",
         Average_Utterance_diff = "utterance_dur_mean.s..diff_avg",
         Utterance_std = "utterance_dur_std.s..avg_avg",
         Utterance_std_diff = "utterance_dur_std.s..diff_avg")

Data Preview: Heatmap

בשלב זה נציג מטריצת קורלציות כמפת חום בין כלל המשתנים שלנו במטרה לבנות מודל רגרסיה אופטימלי לניבוי טיב האינטראקציה.

4. בונוס: השתמשו בפונקציה מחבילה שלא למדנו במהלך הקורס. חפשו בגוגל (או בChatGPT) דרך יעילה לממש פעולה מסוימת. (5 נק’ בונוס)

נשתמש בחבילה pheatmap המיועדת ליצירת מפות חום בצורה אינטואטיבית ומציעה מגוון רחב של פיצ’רים רלוונטים.

library(pheatmap)
## Warning: package 'pheatmap' was built under R version 4.3.3
# Calculate the correlation matrix
correlation_matrix <- cor(Data_clean, use = "complete.obs" )

# Create the heatmap
pheatmap(correlation_matrix, 
         color = colorRampPalette(c("blue", "white", "red"))(50), # Define color by size effect 
         display_numbers = TRUE, #Show values 
         main = "Correlation Matrix Heatmap")

מפת החום מצביעה על כך שהמשתנים משך מבע ממוצע וסטיית תקן של משך המבע הם המנבאים החזקים ביותר של טיב האינטראקציה (GOI). הפער בין הערכים של חברי הדיאדה במדדים הללו נמצא גם הוא בקורולציה חיובית מתונה עם המשתנה המנובא. כמו כן, ניכר כי המנבאים נמצאים בקורלוציה גבוהה ביניהם ולכן עולה החשש למולטיקולינאריות במודל. נתייחס לכך בשלב ניתוח הנתונים.

Research Question

בחרו שאלה מורכבת כך שהקשר אם וכאשר תמצאו כזה יהיה משמעותי ומלמד

לאחר שהדגמנו כיצד מתאפיינים משתני המחקר שלנו ואת הקשר הגולמי ביניהם, נשאף להציע מודל אופטימלי לניבוי ההערכה הסובייקטיבית של איכות האינטראקציה באמצעות מאפייני מבע משותפים והאינטראקציה ביניהם. כמו כן, אנו משערים כי הפער בין חברי הדיאדה במשתני המבע עשוי למתן את הקשר בין הערך המשוקלל של חברי הדיאדה במדד לבין המשתנה המנובא.

Research question: How do shared utterance patterns between interlocutors may interact to predict self-assessment of interaction quality?

Define Variables

1. נסו להבין אילו משתנים מנבאים/מנובאים אתם צריכים עבור הניתוח. לצורך הניתוח תרצו להשתמש לא בנתונים הגולמיים שקיבלתם, אלא באיזה שהוא עיבוד שלהם. (הגדירו את המשתנים בצורה ברורה - 5 נק’)

משתנה מנובא:

איכות האינטראקציה- ההערכה העצמית הממוצעת של חברי הדיאדה את איכות האינטראקציה באמצעות מיצוע שאלות רלוונטיות משאלון GOI עליו ענו המשתתפים בתום הדיאלוג. המשתנה נוצר בחלק הקודם של התרגיל במטרה לבצע עבורו הצגת נתונים מקדימה לקראת הניתוחים הסטטיסטיים. הציון ניתן בסקאלה בין 0 ל-100.

משתנים מנבאים:

משך מבע ממוצע - ממוצע בין משך המבע הממוצע של שני הדוברים, מבע הוא יחידת דיבור רציפה שתחומה בין שתי מקטעים של שתיקה ונמדד בשניות.

פער במשך מבע ממוצע - הפער בערך מוחלט בין משך המבע הממוצע של כל דובר בדיאדה.

סטיית תקן במשך המבעים - ממוצע בין סטיות התקן במשך המבע של שני הדוברים.

פער בסטיית התקן של משך המבעים - הפער בערך מוחלט בין סטיות התקן במשך המבע של כל דובר.

Pre Process: Conduct a function to clean outliers

3. השתמשו בפונקציה שיצרתם בעצמכם. צרו פונקציה משלכם והפעילו אותה על הדאטה שלכם. (5 נק’ עבור מימוש הפונקציה)

כפי שציפינו והדגמנו קודם, הדאטה שלנו כולל ערכים חריגים שאנו מעריכים שנדגמו כטעות מדידה בעקבות תנאי הניסוי שנערך בזום.
על כן, כפי שקבענו מראש, ניצור פונקציה שתמיר ערכים חריגים עם סטיית תקן גבוהה מ-3 לערכים חסרים.

# Function to convert outliers to NA and count them
outlier_na <- function(x){
  x_mean <- mean(x, na.rm = TRUE)  # Calculate mean excluding NAs
  x_sd <- sd(x, na.rm = TRUE)      # Calculate standard deviation excluding NAs
  outliers <- sum(abs(x - x_mean) > 3 * x_sd, na.rm = TRUE)  # Count outliers
  x <- ifelse(abs(x - x_mean) > 3 * x_sd, NA, x)  # Convert outliers to NA
  return(list(data = x, outliers = outliers))
}

Implantation:

# Apply the function to each column and gather results
results <- lapply(Data_clean, outlier_na)

# Extract data and outlier counts
Data_processed <- as.data.frame(lapply(results, `[[`, "data"))  # Reconstruct the dataframe without outliers
outlier_counts <- sapply(results, `[[`, "outliers")  # Vector of outlier counts per column

# Print number of outliers converted to NA for each column
print(outlier_counts)
## Average_Utterance_diff      Average_Utterance     Utterance_std_diff 
##                      0                      1                      2 
##          Utterance_std                    GOI 
##                      0                      0
# Table of outliers converted to NA by each variable ^

Section C: Data Analysis

שלב ג’ - ניתוח הנתונים - 50 נק’

כעת, כשהנתונים מוכנים, החליטו מהם הניתוחים הסטטיסטיים שאתם צריכים לבצע על מנת לענות על שאלת המחקר שלכם.

ניתן לחלק את ארבעת המנבאים שלנו לשני סוגים:

  1. ערכים משוקללים (משך מבע ממוצע וסטיית התקן הממוצעת של חברי הדיאדה)
  2. הפער בין חברי הדיאדה במשתנים הללו.

לקראת בניית המודלים, נתייחס למשמעות ערכי האפס במשתנים שלנו ונבחן אילו מניפולציות עשויות לסייע ביצירת ממצאים אינפורמטיביים יותר. עבור המשתנים המציינים ערכים משוקללים, אין משמעות פרקטית לערך האפס שכן אורך המבע הממוצע או סטיית התקן שלו לא סבירים להימצא סביב ערך זה. על כן, נמרכז את המשתנים הללו על מנת שערך האפס יייצג את הערך הממוצע של המשתנה ויהיה אינפורמטיבי יותר בשלב הפרשנות. לעומת זאת, ערך אפס במשתני הפער מייצג שאין כלל הבדל בין הדוברים במשתנה הנמדד, מספק לנו נקודת ייחוס אינפורמטיבית, ועל כן נשאיר אותו כפי שהוא.

Pre Process: Centering

נוסיף שתי עמודות לדאטה המעובד שיכילו את הערכים המשוקללים לאחר המרכוז.

# Center predictors: subtract mean from each obs
  # Center avg utt
Data_processed$Average_Utterance_C <- Data_clean$Average_Utterance - mean(Data_processed$Average_Utterance, na.rm = TRUE)
  # Center utt sd
Data_processed$Utterance_std_C <- Data_processed$Utterance_std - mean(Data_clean$Utterance_std, na.rm = TRUE)

Data Analysis

1. בצעו שלושה ניתוח רגרסיה מתוך האפשרויות שלמדנו: פשוטה/מרובה/פולינומיאלית/עם אינטרקציה ועוד. שימו לב להתאים את הניתוח להשערה ולנתונים. (15 נק’ עבור השימוש בניתוח מתאים)

2. עבור כל אחד מהניתוחים, פרשו את התוצאות שקיבלתם. התייחסו למקדמים שהתקבלו ולפרשנות שלהם. (20 נק’)

Model 1: Average_Utterance * Utterance_std

על פי מפת החום שיצרנו בסעיף הקודם, ניכר כי המנבאים החזקים ביותר עבור טיב האינטראקציה הם המדדים שמציינים את הערך המשוקלל של חברי הדיאדה הן עבור משך המבע הממוצע והן עבור סטיית התקן במשך המבע. על כן, המודל הראשון שנציע יהיה מודל רגרסיה מרובה עם אינטראקציה לניבוי איכות האינטראקציה(GOI) באמצעות שני המשתנים שמתייחסים לערכים המשוקללים אשר מירכזנו בשלב הקודם, וכן לאינטראקציה ביניהם.

# Load 'car' to evaluate multicollinearity in the model
library(car)
## Warning: package 'car' was built under R version 4.3.3
## Warning: package 'carData' was built under R version 4.3.3
m1 = lm(GOI ~ Average_Utterance_C * Utterance_std_C, data = Data_processed)
summary(m1)
## 
## Call:
## lm(formula = GOI ~ Average_Utterance_C * Utterance_std_C, data = Data_processed)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.314  -8.176   0.950   8.888  25.615 
## 
## Coefficients:
##                                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                         71.32532    2.21405  32.215  < 2e-16 ***
## Average_Utterance_C                  0.59473    0.41492   1.433  0.15731    
## Utterance_std_C                      0.70167    0.63655   1.102  0.27504    
## Average_Utterance_C:Utterance_std_C -0.05859    0.01846  -3.174  0.00245 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.78 on 56 degrees of freedom
## Multiple R-squared:  0.3156, Adjusted R-squared:  0.279 
## F-statistic: 8.609 on 3 and 56 DF,  p-value: 8.605e-05
vif(m1, type = 'predictor') # MCL check: GVIF
##                     GVIF Df GVIF^(1/(2*Df))      Interacts With
## Average_Utterance_C    1  3               1     Utterance_std_C
## Utterance_std_C        1  3               1 Average_Utterance_C
##                     Other Predictors
## Average_Utterance_C             --  
## Utterance_std_C                 --

coefficients

אינטרספט: 71.325 הציון המנובא במדד GOI כאשר משך ממוצע וסטיית התקן של המבע בקרב הדיאדה שווים לממוצע.

B1: 0.595 השינוי בערך המנובא של Y כתוצאה מעלייה של שנייה אחת באורך המבע, כאשר סטיית התקן של המבע שווה לממוצע.

B2: 0.702 השינוי בערך המנובא של Y כתוצאה מעלייה של שנייה אחת בסטיית התקן של אורכי המבע של הדיאדה, כאשר אורך המבע שווה לממוצע.

B3: -0.059 השינוי בהשפעת אורך המבע הממוצע על איכות האינטראקציה, ברמות השונות של סטיית התקן באורכי המבע.

Model 1: Report

We conducted a linear regression analysis to assess the impact of average utterance duration and utterance variability on the quality of interaction (GOI). The interaction effect suggests that utterance variability moderates the relationship between the average utterance duration of the dyad and GOI, with a significant negative effect (p = 0.002). However, the main effects of both average utterance duration and utterance variability were positive but yet not statistically significant (p = 0.157 and p = 0.275, respectively). The model explains approximately 31.56% of the variance in GOI, with an adjusted R-squared of 27.9%. Multicollinearity testing indicated no concerns, with GVIFs for each predictor adjusted to 1, confirming the reliability of the regression estimates.

המודל השני שנציע יהיה מודל רגרסיה מרובה עם אינטראקציה לניבוי איכות האינטראקציה (GOI) באמצעות משך המבע הממוצע של הדיאדה והפער ביניהם באותו מדד.

Model 2: Average_Utterance * Average_Utterance_diff

m2 <- lm(GOI ~ Average_Utterance_C * Average_Utterance_diff, data = Data_processed)
summary(m2)
## 
## Call:
## lm(formula = GOI ~ Average_Utterance_C * Average_Utterance_diff, 
##     data = Data_processed)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.290  -5.624   2.071   9.626  22.716 
## 
## Coefficients:
##                                            Estimate Std. Error t value Pr(>|t|)
## (Intercept)                                66.78180    3.62616  18.417  < 2e-16
## Average_Utterance_C                         1.46573    0.34770   4.216 9.17e-05
## Average_Utterance_diff                      0.30516    0.28710   1.063  0.29239
## Average_Utterance_C:Average_Utterance_diff -0.05170    0.01608  -3.215  0.00216
##                                               
## (Intercept)                                ***
## Average_Utterance_C                        ***
## Average_Utterance_diff                        
## Average_Utterance_C:Average_Utterance_diff ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.88 on 56 degrees of freedom
## Multiple R-squared:  0.3057, Adjusted R-squared:  0.2685 
## F-statistic: 8.217 on 3 and 56 DF,  p-value: 0.0001272
vif(m2, type = 'predictor') # MCL check: GVIF
## GVIFs computed for predictors
##                        GVIF Df GVIF^(1/(2*Df))         Interacts With
## Average_Utterance_C       1  3               1 Average_Utterance_diff
## Average_Utterance_diff    1  3               1    Average_Utterance_C
##                        Other Predictors
## Average_Utterance_C                --  
## Average_Utterance_diff             --

Coefficients

אינטרספט: 66.78 הציון המנובא במדד GOI כאשר משך המבע שווה לממוצע וללא פער כלל בין הדוברים באותו מדד.

B1: 1.466 השינוי בY כתוצאה מעלייה של שנייה אחת במשך המבע הממוצע, כאשר הפער בין הדוברים במדד שווה לאפס.

B2: 0.305 השינוי בY כתוצאה מעלייה של שנייה אחת בפער בין הדוברים במשך המבע הממוצע, כאשר משך המבע מקובע לממוצע שלו.

B3: -0.052 השינוי בהשפעת משך המבע הממוצע על ההערכה הסובייקטיבית של איכות האינטראקציה מעבר לרמות השונות של הפערים במדד זה בין שני הדוברים.

Model 2: Report

In our regression analysis, we assessed how average utterance duration (Average_Utterance_C) and differences in utterance duration between speakers (Average_Utterance_diff) affect the quality of interaction (GOI), including their interaction effect. We found a significant positive effect of average utterance duration on GOI (p = 9.17e-05), suggesting that longer utterances are associated with higher interaction quality. However, the difference in utterance duration itself did not significantly impact GOI (p = 0.29239). Notably, the interaction between these variables significantly reduces GOI (p = 0.00216), indicating that increasing differences in utterance duration diminish the positive influence of longer utterances. The model explains about 30.57% of the variance in GOI, with an adjusted R-squared of 0.2685. Multicollinearity tests confirmed the reliability of the estimates, with GVIFs adjusted to 1 for each predictor.

Model 3: Utterance_std * Utterance_std_diff

המודל השלישי יציג ניתוח רגרסיה מרובה עם אינטראקציה לניבוי איכות האינטראקציה (GOI) באמצעות סטיית התקן של משך המבע והפער בין הדוברים באותו מדד.

m3 <- lm(GOI ~ Utterance_std_C * Utterance_std_diff, data = Data_processed)
summary(m3)
## 
## Call:
## lm(formula = GOI ~ Utterance_std_C * Utterance_std_diff, data = Data_processed)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -31.457  -9.782   2.427   9.537  23.225 
## 
## Coefficients:
##                                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                        67.68557    4.16770  16.241  < 2e-16 ***
## Utterance_std_C                     2.67506    0.60686   4.408    5e-05 ***
## Utterance_std_diff                  0.65336    0.60212   1.085  0.28270    
## Utterance_std_C:Utterance_std_diff -0.18264    0.06099  -2.994  0.00414 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.71 on 54 degrees of freedom
##   (2 observations deleted due to missingness)
## Multiple R-squared:  0.3221, Adjusted R-squared:  0.2845 
## F-statistic: 8.554 on 3 and 54 DF,  p-value: 9.645e-05
vif(m3, type = 'predictor') # MCL check: GVIF
## GVIFs computed for predictors
##                    GVIF Df GVIF^(1/(2*Df))     Interacts With Other Predictors
## Utterance_std_C       1  3               1 Utterance_std_diff             --  
## Utterance_std_diff    1  3               1    Utterance_std_C             --

Coefficients:

אינטרספט: 67.68 הציון המנובא במדד GOI כאשר סטיית התקן של אורך המבע שווה לממוצע ולא קיים כלל הבדל בין הדוברים במדד זה.

B1: 2.675 השינוי בערך המנובא בעקבות עלייה של שנייה אחת בסטיית התקן של אורך המבע כאשר הפער בין הדוברים במדד שווה לאפס.

B2: 0.653 השינוי בערך המנובא בעקבות עלייה של שנייה אחת בפער בין הדוברים בסטיית התקן של אורך המבע כאשר סטיית התקן המשוקללת של אורכי המבע של שני הדוברים שווה לממוצע שלה.

B3: -0.182 השינוי בהשפעה של סטיית התקן של הדוברים על הציון במדד GOI ברמות השונות של הפערים בין הדוברים במדד.

Model 3: Report

We conducted a linear regression analysis to investigate how utterance standard deviation (Utterance_std_C) and the difference in standard deviation between speakers (Utterance_std_diff) impact the quality of interaction (GOI). The analysis demonstrated that a higher utterance standard deviation significantly improves GOI (p = 5e-05), suggesting that more variability within a speaker’s utterance length correlates with better interaction quality. However, the difference in standard deviation itself did not significantly influence GOI (p = 0.28270). The interaction between these variables was significant (p = 0.00414) and negative, indicating that increasing differences in standard deviation between speakers decrease the positive effect of utterance standard deviation on GOI. The model explains about 32.21% of the variance in GOI, with an adjusted R-squared of 28.45%. Multicollinearity testing showed no concerns, with GVIFs for each predictor adjusted to 1, ensuring the model’s reliability.

Plot Results

3. הוסיפו גרף אשר מתאר את האפקט שקיבלתם. (15 נק’)

ניתוחי הרגרסיה מצביעים על כך שהקשר בין מאפייני המבע המשותפים של דיאדה לבין ההערכה הסובייקטיבית של איכות האינטרקציה מתוווכים אחד על ידי השני. הגרפים הבאים יתארו את האפקטים שנמצאו וידגימו את האפקט של משתני המבע ברמות השונות של המשתנים הנוספים לפי הרביעונים כפי שהצגנו קודם בבוקספלוט.

Plot Effect Function

This function will display the effects we found by each quartile for demonstrating the moderator effects.

library(tidyr)

# Function to create interaction plots based on quartile grouping of a moderator variable
# Arguments: data, variable, moderator
create_interaction_plot <- function(data, variable_x, variable_m) {
  # Calculate IQR thresholds for grouping
  iqr_values <- quantile(data[[variable_m]], probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
  iqr_breaks <- c(-Inf, iqr_values[1], iqr_values[2], iqr_values[3], Inf)
  
  # Create groups based on the IQR
  data <- data %>%
    mutate(Quartile_Group = cut(data[[variable_m]],
                                breaks = iqr_breaks,
                                labels = c("Q1", "Q2", "Q3", "Q4")))

  # Generate the interaction plot
  p <- ggplot(data, aes(x = .data[[variable_x]], y = GOI, color = Quartile_Group)) +
    geom_point(alpha = 0.6, size = 3) +
    geom_smooth(method = "lm", aes(group = Quartile_Group), se = FALSE, size = 1) +
    scale_color_viridis_d(option = "magma") +
    labs(title = paste("Moderating Effect of Grouped", variable_m, "on", variable_x, "and GOI"),
         subtitle = "Regression lines for each level of grouped Quartile",
         x = paste(variable_x, "[s]"),
         y = "Interaction Quality (GOI)",
         color = paste("Grouped", variable_m, "Levels")) +
    theme_minimal()

  # Return the plot
  return(p)
}

Implantation:

Model 1

Utterance std as a mediator of the relationship between average utterance and GOI.

Model1 <- create_interaction_plot(Data_processed, "Average_Utterance_C", "Utterance_std_C")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
print(Model1)
## `geom_smooth()` using formula = 'y ~ x'

ביצענו ניתוח רגרסיה לבחינת השפעת סטיית התקן של אורך המבע (Utterance_std_C) על איכות האינטראקציה (GOI), תוך התחשבות ברמות שונות של קבוצות רבעוניות של סטיית התקן. התרשים מדגים כיצד היחסים בין המדדים משתנים לפי קבוצות הרבעון:

  • ניכר כי קבוצת הרבעון השני Q2 מציגה קשר חיובי ברור בין משך המבע הממוצע לאיכות האינטראקציה.

  • לעומת זאת, בקבוצות הרבעון Q1, Q2, Q3 הקשר נראה מתון באופן משמעותי ואף שלילי.

על כן, נציע כי הקשר בין משך המבע הממוצע לאיכות האינטראקציה משתנה ואף עשוי להתהפך ברמות השונות של סטיית התקן באורך המבע.

Model 2

Average utterance difference as a mediator of the relationship between average utterance and GOI

plot2 <- create_interaction_plot(Data_processed, "Average_Utterance_C", "Average_Utterance_diff")
print(plot2)
## `geom_smooth()` using formula = 'y ~ x'

ביצענו ניתוח רגרסיה לבחינת השפעת משך המבע הממוצע (Utterance_std_C) על איכות האינטראקציה, GOI, תוך התחשבות ברמות השונות של קבוצות רבעוניות של פער בין הדוברים במשך המבע הממוצע.

  • קבוצות הרבעון Q1, Q2, Q3 מציגות קשר חיובי יציב בין משך המבע הממוצע של הדיאדה לבין איכות האינטראקציה.

  • לעומת זאת, בקבוצת הרבעון Q4 בה הפערים במדד היו הגבוהים ביותר, נראה כי האפקט נחלש באופן משמעותי ואף מתהפך.

Model 3

plot3 <- create_interaction_plot(Data_processed, "Utterance_std_C", "Utterance_std_diff")
print(plot3)
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 2 rows containing missing values (`geom_point()`).

בדומה לתרשים הקודם, בעוד ששלושת קבוצת הרבעון הראשונות של רמת ההפרש בין הדוברים בסטיית התקן של אורכי המבע מוצגים בקשר חיובי ויציב עם איכות האינטראקציה (GOI), בקבוצת הרבעון הרביעי בה הפער בין הדוברים היה הגבוהה ביותר, ניכר כי הקשר מתמתן באופן משמעותי ואף מתהפך.

Summary

הניתוח התמקד בניבוי ההערכה הסובייקטיבית של טיב האינטראקציה באמצעות מאפייני מבע של הדיאדה והאינטראקציה ביניהם. נמצאו קשרים חיוביים בין המשתנה המנובא לכלל המשתנים; משך מבע ממוצע, סטיית תקן באורך המבע והפערים בין חברי הדיאדה במשתנים הללו. כלומר, ככל שמשך המבע הממוצע, סטיית התקן באורכי המבע והפער בין הדוברים במדדים הללו היו גדולים יותר, כך האינטראקציה החברתית דורגה איכותית יותר. עם זאת, ניכר כי הפערים במדדים עשויים לתווך את השפעת המדדים המשוקללים על ההערכה הסובייקטיבית של טיב האינטראקציה. בפרט, ניכר כי הקשר בין המשתנים המשוקללים(משך המבע הממוצע וסטיית התקן של משך המבעים) לטיב האינטראקציה מתמתן באופן מובהק על ידי הפערים באותו מדד. התוצאות מצביעות על תמונה מורכבת בקשר בין מאפיינים פרוזודיים שונים של בני-שיח לרמה בה הם יעריכו את האינטראקציה החברתית ביניהם. מחקרי המשך יכולים לבחון האם המאפיינים שמצאנו קשורים לאינטראקציה חברתית איכותית עשויים לשפר את איכות האינטראקציה, גם בממשק אדם-מחשב לדוגמה באינטראקציה עם סייענים קוליים כמו SIRI.

Appendix: GOI Questionnaire

Goodness of Interaction Questionnaire

אנא סמן בין 0 (במידה פחותה) ל-100 (במידה רבה) את תשובתך לשאלות הבאות:

  1. עד כמה לדעתך אתה מצליח לקרוא אותו?
  2. מה מידת החיבה שלך כלפיו?
  3. האם היית רוצה שתכירו יותר?
  4. עד כמה לדעתך האופי שלכם דומה?
  5. עד כמה לדעתך הערכים שלכם דומים?
  6. עד כמה היית מרגיש בנוח לשתף אותו בדברים אישיים?
  7. האם תרצה להיפגש איתו שוב?
  8. עד כמה לדעתך אתם על “אותו גל”?
  9. עד כמה אתה מרגיש שנוצרה ביניכם קירבה?
  10. האם אתה חושב שיכולתם להיות חברים טובים?
  11. עד כמה לדעתך הוא אמין?
  12. עד כמה לדעתך הוא חברותי כלפייך?
  13. עד כמה לדעתך הוא דומיננטי?
  14. עד כמה לדעתך הוא אדם חם?
  15. עד כמה לדעתך הוא בעל יכולת, כלומר עם מסוגלות גבוהה?
  16. עד כמה לדעתך ההשקפות שלכם דומות?
  17. עד כמה לדעתך מה שאתה חושב עליו דומה למה שהוא חושב עליך (הדדיות באיך שאתם תופסים אחד את השני)?
  18. עד כמה לדעתך יש ביניכם כימיה?
  19. עד כמה לדעתך אתם מבינים אחד את השני?
  20. עד כמה אתה מרגיש כאילו אתם כבר מכירים לאורך זמן?
  21. האם היה ביניכם קליק (במובן של חברות בקליק)?
  22. עד כמה הזדהית איתו?
  23. עד כמה הקול שלו נעים בעיניך?
  24. עד כמה הוא יפה בעיניך?
  25. עד כמה הוא חכם בעיניך?
  26. עד כמה צורת הדיבור שלו נעימה בעיניך?
  27. עד כמה הוא דיבר ברור כך שהיה לך קל להבין מה הוא אומר?
  28. האם התחברתם במהירות?
  29. עד כמה היית רוצה להמשיך לדבר איתו?
  30. באיזו מידה אתה מרגיש שהקרבה ביניכם הדדית?
  31. באיזו מידה אתה מרגיש קרוב אליו?
  32. באיזו מידה אתה חושב שהשותף שלך לשיחה מרגיש קרוב אליך?
  33. באיזו מידה אתה מרגיש שהוא כנה?
  34. באיזו מידה אתה סומך עליו?
  35. באיזו מידה אתה מרגיש בנח לשתף אותו בדברים אישיים?
  36. באיזו מידה אתה מרגיש שדעתו משנה לך?
  37. באיזו מידה אתה מרגיש שיש ביניכם שפה משותפת?
  38. באיזו מידה חשוב לך שיהיה לו טוב?
  39. באיזו מידה אתה מרגיש מחויבות לעזור לו במידה ויזדקק לעזרה?
  40. באיזו מידה אתה מרגיש שיש לך השפעה על מצב רוחו של שותפך לשיחה?
  41. עד כמה הרגשת בטוח?
  42. עד כמה הרגשת מובך?
  43. עד כמה ההרגשה הכללית שלך הייתה טובה?
  44. עד כמה הרגשת בנוח?
  45. עד כמה אתה רגיל לשיחות וידאו (למשל בזום)?
  46. עד כמה אתה מעדיף שאינטרקציות יהיו פנים אל פנים?
  47. עד כמה היית מעדיף שהאינטרקציה הזו תהיה פנים אל פנים?
  48. עד כמה הרגשת שקטיעת הרצף של השיחה הפריע ליצירת קירבה?
  49. עד כמה הרגשת שמענה על איך אתה מרגיש תוך כדי הפריע לזרימה של האינטראקציה?
  50. עד כמה הרגשת שהשאלונים בין החלקים השפיעו על אופי האיטרקציה?
  51. האם הרגשת שעצם כך שמחשב הנסיין/ית הושאר בשיחת הזום לאורך האינטרקציה השפיע על השיחה?
  52. עד כמה ראית את השותף לשיחה בצורה טובה וברורה?
  53. עד כמה שמעת את השותף לשיחה בצורה טובה וברורה?