Content
This file containts the statistical analysis presented in to our paper Studying the Role of Haptic Feedback on Virtual Embodiment in a Drawing Task published in Frontiers in Virtual Reality and Human Behaviours. More information available at https://ns.inria.fr/loki/embodiment/
Loading data for analysis
data = read.table("Subjective_Questionnaires_Data.csv", header=TRUE, sep=";")
data_dessin = read.table("Objective_Performance_Data.csv", header=TRUE, sep=";")
BoxPlot of all questionnaire items, groupment and overall embodiment (scaled to 5)
HALF_WIDTH = 85
FULL_WIDTH = 178
GOLDEN_RATIO = 1.61803
data_all_long2 <- data_all_long %>% mutate(variable = recode(variable,"Score_Incarnation" = "Embodiment"))
data_meds = ddply(data_all_long2, .(variable, Condition), summarise, med = median(value))
ggplot(data = data_all_long2, aes(x=variable, y=value)) + geom_boxplot((aes(fill=Condition))) +
labs(x = "Subjective question", y = "Rating")+
scale_fill_manual(values=c( "#ffffbf", "#DF5E28", "#F6C584")) +
#coord_flip() +
theme(
axis.text.x=element_text(angle=25, hjust=1, size=6),
legend.box.background = element_rect(size=1, color="black"),
legend.background = element_rect(size = 0.3, linetype = "solid", colour = "black"),
panel.background = element_blank(),
panel.border = element_blank(),
axis.line = element_line(),
axis.title = element_text( face="bold", colour="black", size="12"),
axis.text = element_text( colour="black", size="12"),
panel.grid.major.y = element_line( size = .1, color = "grey")) +
##geom_text(data = data_meds, aes(x = variable, y = med, label = med), size = 3, vjust = -1.5) +
ggsave("All_Plots_items_groups.pdf", width = FULL_WIDTH - 15, height = (FULL_WIDTH / 5) * GOLDEN_RATIO, units="mm")

Embodiment questionnaire
Friedman and Wilcoxon tests for Overall Embodiment
resFriedEmbo = friedman.test(data.matrix(data_incarnation_fixed))
pander(resFriedEmbo)
Friedman rank sum test: data.matrix(data_incarnation_fixed)
| 52.05 |
3 |
2.916e-11 * * * |
resWilEmbo = pairwise.wilcox.test(data_incarnation_fixedwil$value, data_incarnation_fixedwil$Condition , paired = TRUE, p.adj = "bonf")
kable(resWilEmbo$p.value)
| FFB |
0.0041205 |
NA |
| VBT |
1.0000000 |
0.0033722 |
Friedman and Wilcoxon tests for overall Ownership and particular ownership items
resOfried = friedman.test(data.matrix(dataO))
pander(resOfried)
Friedman rank sum test: data.matrix(dataO)
| 11.92 |
2 |
0.002581 * * |
resOwil= pairwise.wilcox.test(dataOwil$value, dataOwil$condition , paired = TRUE, p.adj = "bonf")
kable(resOwil$p.value)
| FFB.Ownership |
0.0080828 |
NA |
| VBT.Ownership |
1.0000000 |
0.0812702 |
resO1fried = friedman.test(data.matrix(dataO1))
pander(resO1fried)
Friedman rank sum test: data.matrix(dataO1)
| 9.745 |
2 |
0.007652 * * |
res01wil = pairwise.wilcox.test(dataO1wil$value, dataO1wil$condition , paired = TRUE, p.adj = "bonf")
kable(res01wil$p.value)
| FFB.O1 |
0.0478279 |
NA |
| VBT.O1 |
0.5492902 |
0.2544213 |
resO2fried = friedman.test(data.matrix(dataO2))
pander(resO2fried)
Friedman rank sum test: data.matrix(dataO2)
| 6.197 |
2 |
0.04512 * |
res02wil = pairwise.wilcox.test(dataO2wil$value, dataO2wil$condition , paired = TRUE, p.adj = "bonf")
kable(res02wil$p.value)
| FFB.O2 |
0.2939814 |
NA |
| VBT.O2 |
0.9764060 |
0.0695887 |
resO3fried = friedman.test(data.matrix(dataO3))
pander(resO3fried)
Friedman rank sum test: data.matrix(dataO3)
| 2.844 |
2 |
0.2412 |
Friedman and Wilcoxon tests for overall Agency and particular agency items
resAfried = friedman.test(data.matrix(dataA))
pander(resAfried)
Friedman rank sum test: data.matrix(dataA)
| 10.89 |
2 |
0.00432 * * |
resAwil = pairwise.wilcox.test(dataAwil$value, dataAwil$condition , paired = TRUE, p.adj = "bonf")
kable(resAwil$p.value)
| FFB.Agency |
0.1040757 |
NA |
| VBT.Agency |
0.5328913 |
0.2777667 |
## On a besoin de seulement deux conditions, on peut pas le faire direct avec les trois conditions. Après, on veut faire le TOST sur des conditions particulières, donc pas si débile
##resAbis <- wilcox.test(value ~ condition, data = dataAwil,
## exact = FALSE)
##resAbis
resA1fried = friedman.test(data.matrix(dataA1))
pander(resA1fried)
Friedman rank sum test: data.matrix(dataA1)
| 11.66 |
2 |
0.002936 * * |
resA1wil = pairwise.wilcox.test(dataA1wil$value, dataA1wil$condition , paired = TRUE, p.adj = "bonf")
kable(resA1wil$p.value)
| FFB.A1 |
0.0134145 |
NA |
| VBT.A1 |
0.9543472 |
0.0511346 |
resA2fried = friedman.test(data.matrix(dataA2))
pander(resA2fried)
Friedman rank sum test: data.matrix(dataA2)
| 2 |
2 |
0.3679 |
resA3fried = friedman.test(data.matrix(dataA3))
pander(resA3fried)
Friedman rank sum test: data.matrix(dataA3)
| 0.1404 |
2 |
0.9322 |
resA4fried = friedman.test(data.matrix(dataA4))
pander(resA4fried)
Friedman rank sum test: data.matrix(dataA4)
| 0.5625 |
2 |
0.7548 |
Friedman and Wilcoxon tests for overall Tactile Sensations and particular tactile sensations items
resTfried = friedman.test(data.matrix(dataT))
pander(resTfried)
Friedman rank sum test: data.matrix(dataT)
| 18.7 |
2 |
8.707e-05 * * * |
resTwil = pairwise.wilcox.test(dataTwil$value, dataTwil$condition , paired = TRUE, p.adj = "bonf")
kable(resTwil$p.value)
| FFB.Tactile_Sensations |
0.0013971 |
NA |
| VBT.Tactile_Sensations |
0.0294497 |
0.0134498 |
resT1fried = friedman.test(data.matrix(dataT1))
pander(resT1fried)
Friedman rank sum test: data.matrix(dataT1)
| 0.3939 |
2 |
0.8212 |
resT2fried = friedman.test(data.matrix(dataT2))
pander(resT2fried)
Friedman rank sum test: data.matrix(dataT2)
| 14.14 |
2 |
0.0008515 * * * |
resT2wil = pairwise.wilcox.test(dataT2wil$value, dataT2wil$condition , paired = TRUE, p.adj = "bonf")
kable(resT2wil$p.value)
| FFB.T2 |
0.0063507 |
NA |
| VBT.T2 |
0.0099834 |
0.9324137 |
resT3fried = friedman.test(data.matrix(dataT3))
pander(resT3fried)
Friedman rank sum test: data.matrix(dataT3)
| 16.12 |
2 |
0.0003157 * * * |
resT3wil = pairwise.wilcox.test(dataT3wil$value, dataT3wil$condition , paired = TRUE, p.adj = "bonf")
kable(resT3wil$p.value)
| FFB.T3 |
0.0025064 |
NA |
| VBT.T3 |
0.1741369 |
0.022413 |
resT4fried = friedman.test(data.matrix(dataT4))
pander(resT4fried)
Friedman rank sum test: data.matrix(dataT4)
| 11.25 |
2 |
0.003613 * * |
resT4wil = pairwise.wilcox.test(dataT4wil$value, dataT4wil$condition , paired = TRUE, p.adj = "bonf")
kable(resT4wil$p.value)
| FFB.T4 |
0.0055365 |
NA |
| VBT.T4 |
0.3192144 |
0.010308 |
Friedman and Wilcoxon tests for overall Self-Location and particular self-location items
resL = friedman.test(data.matrix(dataL))
pander(resL)
Friedman rank sum test: data.matrix(dataL)
| 4.083 |
2 |
0.1298 |
resL1fried = friedman.test(data.matrix(dataL1))
pander(resL1fried)
Friedman rank sum test: data.matrix(dataL1)
| 5.045 |
2 |
0.08027 |
resL2fried = friedman.test(data.matrix(dataL2))
pander(resL2fried)
Friedman rank sum test: data.matrix(dataL2)
| 2.627 |
2 |
0.2688 |
resL3fried = friedman.test(data.matrix(dataL3))
pander(resL3fried)
Friedman rank sum test: data.matrix(dataL3)
| 0.16 |
2 |
0.9231 |
Workload questionnaire
Friedman tests for NASA TLX items
restlx1 = friedman.test(data.matrix(dataTLX_Mental))
pander(restlx1)
Friedman rank sum test: data.matrix(dataTLX_Mental)
| 7.284 |
2 |
0.02621 * |
restlx2 = friedman.test(data.matrix(dataTLX_Physical))
pander(restlx2)
Friedman rank sum test: data.matrix(dataTLX_Physical)
| 2.259 |
2 |
0.3232 |
restlx3 = friedman.test(data.matrix(dataTLX_Temporal))
pander(restlx3)
Friedman rank sum test: data.matrix(dataTLX_Temporal)
| 9.234 |
2 |
0.009882 * * |
restlx4 = friedman.test(data.matrix(dataTLX_Performance))
pander(restlx4)
Friedman rank sum test: data.matrix(dataTLX_Performance)
| 9.508 |
2 |
0.008618 * * |
restlx5 = friedman.test(data.matrix(dataTLX_Effort))
pander(restlx5)
Friedman rank sum test: data.matrix(dataTLX_Effort)
| 9.524 |
2 |
0.008549 * * |
restlx6 = friedman.test(data.matrix(dataTLX_Frustration))
pander(restlx6)
Friedman rank sum test: data.matrix(dataTLX_Frustration)
| 10.75 |
2 |
0.004631 * * |
Wilcoxon test for NASA TLX items
resTLX1 = pairwise.wilcox.test(dataTLX_Mentalwil$value, dataTLX_Mentalwil$condition , paired = TRUE, p.adj = "bonf")
kable(resTLX1$p.value)
| FFB.TLX1 |
0.0490675 |
NA |
| VBT.TLX1 |
1.0000000 |
0.034517 |
resTLX2 = pairwise.wilcox.test(dataTLX_Physicalwil$value, dataTLX_Physicalwil$condition , paired = TRUE, p.adj = "bonf")
kable(resTLX2$p.value)
| FFB.TLX2 |
1 |
NA |
| VBT.TLX2 |
1 |
1 |
resTLX3 = pairwise.wilcox.test(dataTLX_Temporalwil$value, dataTLX_Temporalwil$condition , paired = TRUE, p.adj = "bonf")
kable(resTLX3$p.value)
| FFB.TLX3 |
1.0000000 |
NA |
| VBT.TLX3 |
0.0276166 |
0.0496289 |
resTLX4 = pairwise.wilcox.test(dataTLX_Performancewil$value, dataTLX_Performancewil$condition , paired = TRUE, p.adj = "bonf")
kable(resTLX4$p.value)
| FFB.TLX4 |
1.0000000 |
NA |
| VBT.TLX4 |
0.1484883 |
0.0148417 |
resTLX5 = pairwise.wilcox.test(dataTLX_Effortwil$value, dataTLX_Effortwil$condition , paired = TRUE, p.adj = "bonf")
kable(resTLX5$p.value)
| FFB.TLX5 |
0.0231635 |
NA |
| VBT.TLX5 |
1.0000000 |
0.0308577 |
resTLX6 = pairwise.wilcox.test(dataTLX_Frustrationwil$value, dataTLX_Frustrationwil$condition , paired = TRUE, p.adj = "bonf")
kable(resTLX6$p.value)
| FFB.TLX6 |
0.0490675 |
NA |
| VBT.TLX6 |
1.0000000 |
0.0103015 |
ANOVA on ART
Overall Embodiment
mEmbo = art(Score_Incarnation ~ factor(passation) * factor(Condition) + (1|participant), data = data_art)
kable(anova(mEmbo))
| factor(passation) |
factor(passation) |
2.1191420 |
5 |
18 |
0.1099136 |
| factor(Condition) |
factor(Condition) |
9.3460131 |
2 |
36 |
0.0005380 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.9099805 |
10 |
36 |
0.5344932 |
Groupment of Ownership
mO = art(Ownership ~ factor(passation) * factor(Condition) + (1|participant), data = data_art)
kable(anova(mO))
| factor(passation) |
factor(passation) |
1.3080741 |
5 |
18 |
0.3044646 |
| factor(Condition) |
factor(Condition) |
5.2446392 |
2 |
36 |
0.0100252 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.8788101 |
10 |
36 |
0.5608743 |
Item O1
mO1 = art(O1 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mO1))
| factor(passation) |
factor(passation) |
2.055169 |
5 |
18 |
0.1189762 |
| factor(Condition) |
factor(Condition) |
5.638673 |
2 |
36 |
0.0074078 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.000878 |
10 |
36 |
0.4610882 |
Item O2
mO2 = art(O2 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mO2))
| factor(passation) |
factor(passation) |
1.8729831 |
5 |
18 |
0.1493384 |
| factor(Condition) |
factor(Condition) |
3.3085841 |
2 |
36 |
0.0479648 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.4232263 |
10 |
36 |
0.9258307 |
Item O3
mO3 = art(O3 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mO3))
| factor(passation) |
factor(passation) |
0.6447526 |
5 |
18 |
0.6689026 |
| factor(Condition) |
factor(Condition) |
0.6298155 |
2 |
36 |
0.5384571 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.9981040 |
10 |
36 |
0.4632403 |
Groupment of Agency
mA = art(Agency ~ factor(passation) * factor(Condition) + (1|participant), data = data_art)
kable(anova(mA))
| factor(passation) |
factor(passation) |
1.152553 |
5 |
18 |
0.3697116 |
| factor(Condition) |
factor(Condition) |
3.433788 |
2 |
36 |
0.0431643 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.078264 |
10 |
36 |
0.4035621 |
Item A1
mA1 = art(A1 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mA1))
| factor(passation) |
factor(passation) |
1.045195 |
5 |
18 |
0.4218926 |
| factor(Condition) |
factor(Condition) |
6.068108 |
2 |
36 |
0.0053574 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.125009 |
10 |
36 |
0.3712721 |
Item A2
mA2 = art(A2 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mA2))
| factor(passation) |
factor(passation) |
0.2908477 |
5 |
18 |
0.9118236 |
| factor(Condition) |
factor(Condition) |
1.8615571 |
2 |
36 |
0.1700849 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
4.4155410 |
10 |
36 |
0.0004448 |
Item A3
mA3 = art(A3 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mA3))
| factor(passation) |
factor(passation) |
0.8824209 |
5 |
18 |
0.5127435 |
| factor(Condition) |
factor(Condition) |
0.1010823 |
2 |
36 |
0.9041142 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.0017260 |
10 |
36 |
0.4604317 |
Item A4
mA4 = art(A4 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mA4))
| factor(passation) |
factor(passation) |
1.0711703 |
5 |
18 |
0.4087097 |
| factor(Condition) |
factor(Condition) |
0.6527931 |
2 |
36 |
0.5266419 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.7074177 |
10 |
36 |
0.7114534 |
Groupment of Self-Location
mSL = art(Self_Location ~ factor(passation) * factor(Condition) + (1|participant), data = data_art)
kable(anova(mSL))
| factor(passation) |
factor(passation) |
1.501649 |
5 |
18 |
0.2385168 |
| factor(Condition) |
factor(Condition) |
1.607882 |
2 |
36 |
0.2143644 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.279717 |
10 |
36 |
0.2781018 |
Item L1
mL1 = art(L1 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mL1))
| factor(passation) |
factor(passation) |
2.5224352 |
5 |
18 |
0.0672680 |
| factor(Condition) |
factor(Condition) |
2.1379655 |
2 |
36 |
0.1326247 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.9843199 |
10 |
36 |
0.4740208 |
Item L2
mL2 = art(L2 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mL2))
| factor(passation) |
factor(passation) |
0.7402051 |
5 |
18 |
0.6032919 |
| factor(Condition) |
factor(Condition) |
0.2678938 |
2 |
36 |
0.7665005 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.3236833 |
10 |
36 |
0.2553947 |
Item L3
mL3 = art(L3 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mL3))
| factor(passation) |
factor(passation) |
0.3318429 |
5 |
18 |
0.8870724 |
| factor(Condition) |
factor(Condition) |
0.2044999 |
2 |
36 |
0.8159951 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.8404964 |
10 |
36 |
0.0882413 |
Groupment of Tactile sensations
mT = art(Tactile_Sensations ~ factor(passation) * factor(Condition) + (1|participant), data = data_art)
kable(anova(mT))
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
| factor(passation) |
factor(passation) |
2.3631066 |
5 |
18 |
0.0815170 |
| factor(Condition) |
factor(Condition) |
14.6441560 |
2 |
36 |
0.0000222 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.7787407 |
10 |
36 |
0.6482996 |
Item T1
mT1 = art(T1 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mT1))
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
| factor(passation) |
factor(passation) |
1.9240618 |
5 |
18 |
0.1400870 |
| factor(Condition) |
factor(Condition) |
0.4965391 |
2 |
36 |
0.6127404 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.7280084 |
10 |
36 |
0.6932765 |
Item T2
mT2 = art(T2 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mT2))
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
## boundary (singular) fit: see ?isSingular
| factor(passation) |
factor(passation) |
1.9204673 |
5 |
18 |
0.1407181 |
| factor(Condition) |
factor(Condition) |
9.4622245 |
2 |
36 |
0.0004985 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.7192226 |
10 |
36 |
0.7010435 |
Item T3
mT3 = art(T3 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mT3))
| factor(passation) |
factor(passation) |
3.6284144 |
5 |
18 |
0.0191057 |
| factor(Condition) |
factor(Condition) |
14.1288696 |
2 |
36 |
0.0000296 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.8917027 |
10 |
36 |
0.5498986 |
Post-hoc pairwise test for T3
attach(data0)
pw = pairwise.t.test(T3, interaction(passation), p.adj = "bonferroni")
detach(data0)
kable(pw$p.value)
| 2 |
1.0000000 |
NA |
NA |
NA |
NA |
| 3 |
0.3835758 |
1.0000000 |
NA |
NA |
NA |
| 4 |
1.0000000 |
1.0000000 |
0.9925147 |
NA |
NA |
| 5 |
1.0000000 |
1.0000000 |
0.1501001 |
1 |
NA |
| 6 |
1.0000000 |
0.1654441 |
0.0107491 |
1 |
1 |
Item T4
mT4 = art(T4 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mT4))
| factor(passation) |
factor(passation) |
1.3759227 |
5 |
18 |
0.2795490 |
| factor(Condition) |
factor(Condition) |
6.9665199 |
2 |
36 |
0.0027699 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.4481359 |
10 |
36 |
0.9117118 |
ANOVA on ART for NASA TLX
Item Mental Load
mTLXMental = art(TLX1 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mTLXMental))
| factor(passation) |
factor(passation) |
0.0948647 |
5 |
18 |
0.9919041 |
| factor(Condition) |
factor(Condition) |
4.5433592 |
2 |
36 |
0.0174008 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.8856484 |
10 |
36 |
0.5550420 |
Item Physical Load
mTLXPhysical = art(TLX2 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mTLXPhysical))
| factor(passation) |
factor(passation) |
0.5801659 |
5 |
18 |
0.7147635 |
| factor(Condition) |
factor(Condition) |
0.2068773 |
2 |
36 |
0.8140793 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.4490536 |
10 |
36 |
0.1991452 |
Item Temporal Load
mTLXTemporal = art(TLX3 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mO1))
| factor(passation) |
factor(passation) |
2.055169 |
5 |
18 |
0.1189762 |
| factor(Condition) |
factor(Condition) |
5.638673 |
2 |
36 |
0.0074078 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.000878 |
10 |
36 |
0.4610882 |
Item Effort
mTLXEffort = art(TLX5 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mTLXEffort))
| factor(passation) |
factor(passation) |
0.6042859 |
5 |
18 |
0.6975429 |
| factor(Condition) |
factor(Condition) |
6.2034376 |
2 |
36 |
0.0048430 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
1.6135557 |
10 |
36 |
0.1422062 |
Item Frustration
mTLXFrustration = art(TLX6 ~ factor(passation) * factor(Condition) + (1|participant), data = data1)
kable(anova(mTLXFrustration))
| factor(passation) |
factor(passation) |
2.0113458 |
5 |
18 |
0.1256352 |
| factor(Condition) |
factor(Condition) |
7.2227285 |
2 |
36 |
0.0023049 |
| factor(passation):factor(Condition) |
factor(passation):factor(Condition) |
0.9659337 |
10 |
36 |
0.4886218 |