Load the csv data located at
../data/processed/R_mos_dataframe.csv
, and display the head
of the data.
# Read and prepare data
data <- read.csv("../data/processed/R_mos_dataframe.csv")
# set is_calibration and has_counterpart as boolean
data$is_calibration <- as.logical(data$is_calibration)
data$has_counterpart <- as.logical(data$has_counterpart)
# Remove calibration tasks
data_filtered <- data[!data$is_calibration, ]
# Only keep rows that have counterparts
data_analysis <- data_filtered[data_filtered$has_counterpart, ]
# Rename columns to match model specifications
names(data_analysis)[names(data_analysis) == "task_type"] <- "Condition"
names(data_analysis)[names(data_analysis) == "score"] <- "Rating"
names(data_analysis)[names(data_analysis) == "pov_id"] <- "POV"
names(data_analysis)[names(data_analysis) == "panoid"] <- "Panorama"
head(data_analysis)
## POV Condition Panorama heading Rating
## 1 1Lg37smPwqvAXl4bdDqhlw__162 img 1Lg37smPwqvAXl4bdDqhlw 162 4.5
## 2 1Lg37smPwqvAXl4bdDqhlw__162 img 1Lg37smPwqvAXl4bdDqhlw 162 3.7
## 3 1Lg37smPwqvAXl4bdDqhlw__162 img 1Lg37smPwqvAXl4bdDqhlw 162 4.3
## 4 1Lg37smPwqvAXl4bdDqhlw__162 img 1Lg37smPwqvAXl4bdDqhlw 162 3.0
## 5 1Lg37smPwqvAXl4bdDqhlw__162 img 1Lg37smPwqvAXl4bdDqhlw 162 1.8
## 6 1Lg37smPwqvAXl4bdDqhlw__162 img 1Lg37smPwqvAXl4bdDqhlw 162 4.5
## unbiased_score zrec_weight score_idx is_calibration has_counterpart
## 1 4.526985 1.6559975 0 FALSE TRUE
## 2 2.275518 2.6094937 1 FALSE TRUE
## 3 3.338297 3.1341152 2 FALSE TRUE
## 4 3.429386 2.3681205 3 FALSE TRUE
## 5 2.581924 0.8220169 4 FALSE TRUE
## 6 3.973958 6.2963303 5 FALSE TRUE
data description: Each pov was viewed under two conditions by different participants. We want to compare the scores given to the same pov under the different conditions. columns: - user_id - POV (string with format {panoid}_{heading}) - heading (int) - Condition (“pano” or “img”) - has_counterpart (boolean). True if this task has a counterpart image or pano task, with the same pov_id. - is_calibration : is a calibration image, should not be used in the models. - score (int) : user rating of the task - unbiased_score: score corrected - zrec_weight: a weight for the score
Perform weighted t-test on the unbiased scores, for each POV, by splitting the population according to Condition Use weighted.t.test from the weights package
library(weights)
## Loading required package: Hmisc
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
##
## format.pval, units
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:Hmisc':
##
## src, summarize
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Initialize a list to store results
results_list <- list()
# Get unique POVs
unique_povs <- unique(data_analysis$POV)
# Loop through each POV and perform weighted t-test
for (pov in unique_povs) {
# Filter data for the current POV
pov_data <- data_analysis[data_analysis$POV == pov, ]
# Split data into pano and image groups
pano_data <- pov_data[pov_data$Condition == "pano", ]
image_data <- pov_data[pov_data$Condition == "img", ]
# Perform weighted t-test if both groups have data
if (nrow(pano_data) > 0 & nrow(image_data) > 0) {
result <- wtd.t.test(
x = pano_data$unbiased_score,
y = image_data$unbiased_score,
weight = pano_data$zrec_weight,
weighty = image_data$zrec_weight,
samedata = FALSE,
alternative = "two.tailed",
mean1 = FALSE # https://stackoverflow.com/questions/60384681/different-results-with-weighted-t-test-between-r-and-python
)
# Store results in the list
results_list[[pov]] <- list(
pov = pov,
Panorama = pov_data$Panorama[1],
Heading = pov_data$heading[1],
t_statistic = result$coefficients["t.value"],
p_value = result$coefficients["p.value"],
mean_diff = result$additional["Difference"],
pano_mean = result$additional["Mean.x"],
image_mean = result$additional["Mean.y"]
)
}
}
# Display results
# for (pov in names(results_list)) {
# cat("POV:", pov, "\n")
# cat("t-statistic:", round(results_list[[pov]]$t_statistic, 4), "\n")
# cat("p-value:", round(results_list[[pov]]$p_value, 4), "\n")
# cat("Mean difference:", round(results_list[[pov]]$mean_diff, 4), "\n")
# cat("Weighted mean for pano condition:", round(results_list[[pov]]$pano_mean, 4), "\n")
# cat("Weighted mean for image condition:", round(results_list[[pov]]$image_mean, 4), "\n")
# cat("\n")
# }
# Calculate the percentage of significant p-values
significant_results <- sapply(results_list, function(x) x$p_value < 0.05)
percent_significant <- sum(significant_results) / length(significant_results) * 100
# Make the results_list a data frame
results <- do.call(rbind, lapply(results_list, as.data.frame))
results <- as.data.frame(results)
cat("Percentage of significant p-values:", round(percent_significant, 2), "%\n")
## Percentage of significant p-values: 54.17 %
Correction
# Apply corrections for multiple comparisons
p_adjusted_holm <- p.adjust(results$p_value, method = "holm")
results$p_adjusted_holm = p_adjusted_holm
# Show results
# Calculate the number of significant results after correction
significant_results_holm <- p_adjusted_holm < 0.05
percent_significant_holm <- sum(significant_results_holm) / length(significant_results_holm) * 100
cat("Percentage of significant p-values after Holm correction:", round(percent_significant_holm, 2), "%\n")
## Percentage of significant p-values after Holm correction: 18.75 %
results
## pov Panorama
## 1Lg37smPwqvAXl4bdDqhlw__162 1Lg37smPwqvAXl4bdDqhlw__162 1Lg37smPwqvAXl4bdDqhlw
## 1Lg37smPwqvAXl4bdDqhlw__342 1Lg37smPwqvAXl4bdDqhlw__342 1Lg37smPwqvAXl4bdDqhlw
## GnReLERfph4NUc7ZCnYYIA__30 GnReLERfph4NUc7ZCnYYIA__30 GnReLERfph4NUc7ZCnYYIA
## GnReLERfph4NUc7ZCnYYIA__210 GnReLERfph4NUc7ZCnYYIA__210 GnReLERfph4NUc7ZCnYYIA
## J6b4uNaJXJePwh3i4g-J9g__63 J6b4uNaJXJePwh3i4g-J9g__63 J6b4uNaJXJePwh3i4g-J9g
## J6b4uNaJXJePwh3i4g-J9g__243 J6b4uNaJXJePwh3i4g-J9g__243 J6b4uNaJXJePwh3i4g-J9g
## OES3M70uJAKNvDX2lKkMPQ__145 OES3M70uJAKNvDX2lKkMPQ__145 OES3M70uJAKNvDX2lKkMPQ
## OES3M70uJAKNvDX2lKkMPQ__325 OES3M70uJAKNvDX2lKkMPQ__325 OES3M70uJAKNvDX2lKkMPQ
## P4F4QKFaTE5d-QNz_Jx0kg__158 P4F4QKFaTE5d-QNz_Jx0kg__158 P4F4QKFaTE5d-QNz_Jx0kg
## P4F4QKFaTE5d-QNz_Jx0kg__248 P4F4QKFaTE5d-QNz_Jx0kg__248 P4F4QKFaTE5d-QNz_Jx0kg
## PGxyIaP90yNpqgAOQylGog__170 PGxyIaP90yNpqgAOQylGog__170 PGxyIaP90yNpqgAOQylGog
## PGxyIaP90yNpqgAOQylGog__350 PGxyIaP90yNpqgAOQylGog__350 PGxyIaP90yNpqgAOQylGog
## SQRLJrD2KYe1d2VA6txyig__11 SQRLJrD2KYe1d2VA6txyig__11 SQRLJrD2KYe1d2VA6txyig
## SQRLJrD2KYe1d2VA6txyig__191 SQRLJrD2KYe1d2VA6txyig__191 SQRLJrD2KYe1d2VA6txyig
## ToX0MGNWH-VsUEqq5wSCzQ__167 ToX0MGNWH-VsUEqq5wSCzQ__167 ToX0MGNWH-VsUEqq5wSCzQ
## ToX0MGNWH-VsUEqq5wSCzQ__347 ToX0MGNWH-VsUEqq5wSCzQ__347 ToX0MGNWH-VsUEqq5wSCzQ
## UHt0RLnWk1TJnhkBTp6DeA__103 UHt0RLnWk1TJnhkBTp6DeA__103 UHt0RLnWk1TJnhkBTp6DeA
## UHt0RLnWk1TJnhkBTp6DeA__283 UHt0RLnWk1TJnhkBTp6DeA__283 UHt0RLnWk1TJnhkBTp6DeA
## Wv_rNo6f8bMLVKkHdZotfg__142 Wv_rNo6f8bMLVKkHdZotfg__142 Wv_rNo6f8bMLVKkHdZotfg
## Wv_rNo6f8bMLVKkHdZotfg__322 Wv_rNo6f8bMLVKkHdZotfg__322 Wv_rNo6f8bMLVKkHdZotfg
## _zI03ND3kqbk0lyGr6va_A__43 _zI03ND3kqbk0lyGr6va_A__43 _zI03ND3kqbk0lyGr6va_A
## _zI03ND3kqbk0lyGr6va_A__223 _zI03ND3kqbk0lyGr6va_A__223 _zI03ND3kqbk0lyGr6va_A
## aOT4Hl_n33HvBXyWpvYb4Q__152 aOT4Hl_n33HvBXyWpvYb4Q__152 aOT4Hl_n33HvBXyWpvYb4Q
## aOT4Hl_n33HvBXyWpvYb4Q__332 aOT4Hl_n33HvBXyWpvYb4Q__332 aOT4Hl_n33HvBXyWpvYb4Q
## dTb77iHE5hYvcqD26Y99TA__98 dTb77iHE5hYvcqD26Y99TA__98 dTb77iHE5hYvcqD26Y99TA
## dTb77iHE5hYvcqD26Y99TA__278 dTb77iHE5hYvcqD26Y99TA__278 dTb77iHE5hYvcqD26Y99TA
## iDUxUuJHoy4jOx-Yt8laNA__58 iDUxUuJHoy4jOx-Yt8laNA__58 iDUxUuJHoy4jOx-Yt8laNA
## iDUxUuJHoy4jOx-Yt8laNA__238 iDUxUuJHoy4jOx-Yt8laNA__238 iDUxUuJHoy4jOx-Yt8laNA
## iZ2ARYVKACAF8KFRIHr15w__75 iZ2ARYVKACAF8KFRIHr15w__75 iZ2ARYVKACAF8KFRIHr15w
## iZ2ARYVKACAF8KFRIHr15w__165 iZ2ARYVKACAF8KFRIHr15w__165 iZ2ARYVKACAF8KFRIHr15w
## jI40EDTDeCsmBibs1jbXzQ__35 jI40EDTDeCsmBibs1jbXzQ__35 jI40EDTDeCsmBibs1jbXzQ
## jI40EDTDeCsmBibs1jbXzQ__215 jI40EDTDeCsmBibs1jbXzQ__215 jI40EDTDeCsmBibs1jbXzQ
## m4kX2Djw5DmJbL40tel9Yw__125 m4kX2Djw5DmJbL40tel9Yw__125 m4kX2Djw5DmJbL40tel9Yw
## m4kX2Djw5DmJbL40tel9Yw__305 m4kX2Djw5DmJbL40tel9Yw__305 m4kX2Djw5DmJbL40tel9Yw
## pKtV8k7abhxUSE9JAkZLsA__8 pKtV8k7abhxUSE9JAkZLsA__8 pKtV8k7abhxUSE9JAkZLsA
## pKtV8k7abhxUSE9JAkZLsA__188 pKtV8k7abhxUSE9JAkZLsA__188 pKtV8k7abhxUSE9JAkZLsA
## qgpfKJzOZ5OBo5JdvCAp8Q__152 qgpfKJzOZ5OBo5JdvCAp8Q__152 qgpfKJzOZ5OBo5JdvCAp8Q
## qgpfKJzOZ5OBo5JdvCAp8Q__332 qgpfKJzOZ5OBo5JdvCAp8Q__332 qgpfKJzOZ5OBo5JdvCAp8Q
## tlPLzx1D7MRgcvFowbmWGw__128 tlPLzx1D7MRgcvFowbmWGw__128 tlPLzx1D7MRgcvFowbmWGw
## tlPLzx1D7MRgcvFowbmWGw__308 tlPLzx1D7MRgcvFowbmWGw__308 tlPLzx1D7MRgcvFowbmWGw
## v9YEYuKKwMPo3RZWKewZEQ__0 v9YEYuKKwMPo3RZWKewZEQ__0 v9YEYuKKwMPo3RZWKewZEQ
## v9YEYuKKwMPo3RZWKewZEQ__90 v9YEYuKKwMPo3RZWKewZEQ__90 v9YEYuKKwMPo3RZWKewZEQ
## vTjGNS9tAM-xTV0j85XRtA__172 vTjGNS9tAM-xTV0j85XRtA__172 vTjGNS9tAM-xTV0j85XRtA
## vTjGNS9tAM-xTV0j85XRtA__352 vTjGNS9tAM-xTV0j85XRtA__352 vTjGNS9tAM-xTV0j85XRtA
## x_gO8pWHTNMwQxHg9Xv5Sg__86 x_gO8pWHTNMwQxHg9Xv5Sg__86 x_gO8pWHTNMwQxHg9Xv5Sg
## x_gO8pWHTNMwQxHg9Xv5Sg__266 x_gO8pWHTNMwQxHg9Xv5Sg__266 x_gO8pWHTNMwQxHg9Xv5Sg
## ySFr8WwsE0Y1vkN1nZ19Rw__164 ySFr8WwsE0Y1vkN1nZ19Rw__164 ySFr8WwsE0Y1vkN1nZ19Rw
## ySFr8WwsE0Y1vkN1nZ19Rw__344 ySFr8WwsE0Y1vkN1nZ19Rw__344 ySFr8WwsE0Y1vkN1nZ19Rw
## Heading t_statistic p_value mean_diff
## 1Lg37smPwqvAXl4bdDqhlw__162 162 0.51678735 6.075905e-01 0.095126631
## 1Lg37smPwqvAXl4bdDqhlw__342 342 -0.07398424 9.411515e-01 -0.007523302
## GnReLERfph4NUc7ZCnYYIA__30 30 2.12897033 3.586276e-02 0.298607160
## GnReLERfph4NUc7ZCnYYIA__210 210 -2.25287710 2.677753e-02 -0.315094604
## J6b4uNaJXJePwh3i4g-J9g__63 63 1.89292370 6.019275e-02 0.147668404
## J6b4uNaJXJePwh3i4g-J9g__243 243 2.69495245 7.817848e-03 0.333411336
## OES3M70uJAKNvDX2lKkMPQ__145 145 -1.29062258 2.011150e-01 -0.150616151
## OES3M70uJAKNvDX2lKkMPQ__325 325 -0.37280491 7.103391e-01 -0.061816432
## P4F4QKFaTE5d-QNz_Jx0kg__158 158 -0.53395317 5.942374e-01 -0.038211495
## P4F4QKFaTE5d-QNz_Jx0kg__248 248 2.34250862 2.063378e-02 0.274292579
## PGxyIaP90yNpqgAOQylGog__170 170 3.06570085 2.645863e-03 0.256126286
## PGxyIaP90yNpqgAOQylGog__350 350 2.60347033 1.002055e-02 0.155171108
## SQRLJrD2KYe1d2VA6txyig__11 11 -2.75227032 7.234292e-03 -0.365407720
## SQRLJrD2KYe1d2VA6txyig__191 191 1.58665590 1.166285e-01 0.155689704
## ToX0MGNWH-VsUEqq5wSCzQ__167 167 2.45960308 1.583334e-02 0.423522050
## ToX0MGNWH-VsUEqq5wSCzQ__347 347 3.70848719 3.967050e-04 0.524238357
## UHt0RLnWk1TJnhkBTp6DeA__103 103 1.10466704 2.721294e-01 0.116404642
## UHt0RLnWk1TJnhkBTp6DeA__283 283 2.56692101 1.213358e-02 0.292369891
## Wv_rNo6f8bMLVKkHdZotfg__142 142 -4.51686455 1.963253e-05 -0.402175248
## Wv_rNo6f8bMLVKkHdZotfg__322 322 0.02118792 9.831303e-01 0.002066643
## _zI03ND3kqbk0lyGr6va_A__43 43 1.31246324 1.932107e-01 0.181103317
## _zI03ND3kqbk0lyGr6va_A__223 223 2.83056553 5.968584e-03 0.360746992
## aOT4Hl_n33HvBXyWpvYb4Q__152 152 -1.41955206 1.608161e-01 -0.185614569
## aOT4Hl_n33HvBXyWpvYb4Q__332 332 0.41272327 6.806098e-01 0.056770756
## dTb77iHE5hYvcqD26Y99TA__98 98 -2.24321840 2.726585e-02 -0.257535600
## dTb77iHE5hYvcqD26Y99TA__278 278 -1.34550300 1.815255e-01 -0.127203015
## iDUxUuJHoy4jOx-Yt8laNA__58 58 2.61190084 1.049452e-02 0.256215399
## iDUxUuJHoy4jOx-Yt8laNA__238 238 3.56407949 6.208583e-04 0.425648387
## iZ2ARYVKACAF8KFRIHr15w__75 75 2.27832240 2.392607e-02 0.237076616
## iZ2ARYVKACAF8KFRIHr15w__165 165 1.12274513 2.633747e-01 0.084243675
## jI40EDTDeCsmBibs1jbXzQ__35 35 1.60765148 1.112485e-01 0.193377600
## jI40EDTDeCsmBibs1jbXzQ__215 215 -1.68192027 9.620590e-02 -0.192027050
## m4kX2Djw5DmJbL40tel9Yw__125 125 2.67775481 8.852240e-03 0.286583709
## m4kX2Djw5DmJbL40tel9Yw__305 305 0.30452195 7.614780e-01 0.031007346
## pKtV8k7abhxUSE9JAkZLsA__8 8 1.32586980 1.879186e-01 0.130866895
## pKtV8k7abhxUSE9JAkZLsA__188 188 3.86782203 2.052078e-04 0.481967009
## qgpfKJzOZ5OBo5JdvCAp8Q__152 152 2.53879585 1.309847e-02 0.233650415
## qgpfKJzOZ5OBo5JdvCAp8Q__332 332 1.52264307 1.314249e-01 0.162734864
## tlPLzx1D7MRgcvFowbmWGw__128 128 -4.24305409 5.263999e-05 -0.535633658
## tlPLzx1D7MRgcvFowbmWGw__308 308 -4.37600990 3.026744e-05 -0.623507896
## v9YEYuKKwMPo3RZWKewZEQ__0 0 3.02117077 2.984263e-03 0.272798753
## v9YEYuKKwMPo3RZWKewZEQ__90 90 1.80104541 7.359854e-02 0.155359237
## vTjGNS9tAM-xTV0j85XRtA__172 172 0.51507617 6.072425e-01 0.043414593
## vTjGNS9tAM-xTV0j85XRtA__352 352 3.60334416 4.339736e-04 0.250197524
## x_gO8pWHTNMwQxHg9Xv5Sg__86 86 2.23950560 2.719999e-02 0.200017651
## x_gO8pWHTNMwQxHg9Xv5Sg__266 266 -1.66234731 1.000472e-01 -0.250908959
## ySFr8WwsE0Y1vkN1nZ19Rw__164 164 4.43734324 3.165192e-05 0.609107299
## ySFr8WwsE0Y1vkN1nZ19Rw__344 344 3.63775657 5.100709e-04 0.578933172
## pano_mean image_mean p_adjusted_holm
## 1Lg37smPwqvAXl4bdDqhlw__162 3.734631 3.639504 1.0000000000
## 1Lg37smPwqvAXl4bdDqhlw__342 3.206558 3.214081 1.0000000000
## GnReLERfph4NUc7ZCnYYIA__30 3.286174 2.987567 0.8248434205
## GnReLERfph4NUc7ZCnYYIA__210 3.117008 3.432103 0.6962158574
## J6b4uNaJXJePwh3i4g-J9g__63 3.785655 3.637987 1.0000000000
## J6b4uNaJXJePwh3i4g-J9g__243 3.313977 2.980566 0.2736246971
## OES3M70uJAKNvDX2lKkMPQ__145 2.768731 2.919347 1.0000000000
## OES3M70uJAKNvDX2lKkMPQ__325 2.699490 2.761306 1.0000000000
## P4F4QKFaTE5d-QNz_Jx0kg__158 3.487025 3.525237 1.0000000000
## P4F4QKFaTE5d-QNz_Jx0kg__248 2.933251 2.658959 0.5777458893
## PGxyIaP90yNpqgAOQylGog__170 4.234656 3.978529 0.1031886674
## PGxyIaP90yNpqgAOQylGog__350 4.301175 4.146004 0.3306780627
## SQRLJrD2KYe1d2VA6txyig__11 2.816046 3.181454 0.2604345178
## SQRLJrD2KYe1d2VA6txyig__191 3.310400 3.154710 1.0000000000
## ToX0MGNWH-VsUEqq5wSCzQ__167 3.008051 2.584529 0.4591667895
## ToX0MGNWH-VsUEqq5wSCzQ__347 3.293625 2.769386 0.0170583131
## UHt0RLnWk1TJnhkBTp6DeA__103 3.575518 3.459114 1.0000000000
## UHt0RLnWk1TJnhkBTp6DeA__283 3.703046 3.410676 0.3761409047
## Wv_rNo6f8bMLVKkHdZotfg__142 3.940157 4.342333 0.0009423612
## Wv_rNo6f8bMLVKkHdZotfg__322 3.972128 3.970061 1.0000000000
## _zI03ND3kqbk0lyGr6va_A__43 3.019371 2.838268 1.0000000000
## _zI03ND3kqbk0lyGr6va_A__223 3.101524 2.740777 0.2208375951
## aOT4Hl_n33HvBXyWpvYb4Q__152 3.136069 3.321684 1.0000000000
## aOT4Hl_n33HvBXyWpvYb4Q__332 3.035021 2.978250 1.0000000000
## dTb77iHE5hYvcqD26Y99TA__98 3.681815 3.939350 0.6962158574
## dTb77iHE5hYvcqD26Y99TA__278 3.742023 3.869226 1.0000000000
## iDUxUuJHoy4jOx-Yt8laNA__58 3.697124 3.440909 0.3358247064
## iDUxUuJHoy4jOx-Yt8laNA__238 3.588513 3.162865 0.0248343323
## iZ2ARYVKACAF8KFRIHr15w__75 3.467974 3.230897 0.6460039986
## iZ2ARYVKACAF8KFRIHr15w__165 4.009842 3.925598 1.0000000000
## jI40EDTDeCsmBibs1jbXzQ__35 3.351554 3.158177 1.0000000000
## jI40EDTDeCsmBibs1jbXzQ__215 3.444781 3.636808 1.0000000000
## m4kX2Djw5DmJbL40tel9Yw__125 3.422043 3.135460 0.3009761462
## m4kX2Djw5DmJbL40tel9Yw__305 3.508293 3.477286 1.0000000000
## pKtV8k7abhxUSE9JAkZLsA__8 2.172603 2.041736 1.0000000000
## pKtV8k7abhxUSE9JAkZLsA__188 2.598901 2.116934 0.0090291433
## qgpfKJzOZ5OBo5JdvCAp8Q__152 3.911869 3.678218 0.3929540857
## qgpfKJzOZ5OBo5JdvCAp8Q__332 3.819446 3.656711 1.0000000000
## tlPLzx1D7MRgcvFowbmWGw__128 2.921210 3.456843 0.0023687997
## tlPLzx1D7MRgcvFowbmWGw__308 3.014709 3.638217 0.0014225696
## v9YEYuKKwMPo3RZWKewZEQ__0 3.341951 3.069152 0.1134019840
## v9YEYuKKwMPo3RZWKewZEQ__90 3.550542 3.395182 1.0000000000
## vTjGNS9tAM-xTV0j85XRtA__172 3.713040 3.669626 1.0000000000
## vTjGNS9tAM-xTV0j85XRtA__352 3.687282 3.437084 0.0182268914
## x_gO8pWHTNMwQxHg9Xv5Sg__86 2.533585 2.333568 0.6962158574
## x_gO8pWHTNMwQxHg9Xv5Sg__266 2.729894 2.980803 1.0000000000
## ySFr8WwsE0Y1vkN1nZ19Rw__164 2.780776 2.171668 0.0014559885
## ySFr8WwsE0Y1vkN1nZ19Rw__344 3.325033 2.746100 0.0209129064
Save results:
write.csv(results, "../data/processed/statistics.csv", row.names=FALSE)