Ramon Meffert commited on
Commit
e7b8106
1 Parent(s): fffa7ce

Add timings analysis

Browse files
results/f1_analysis.ipynb CHANGED
@@ -440,7 +440,7 @@
440
  "cell_type": "markdown",
441
  "metadata": {},
442
  "source": [
443
- "From these results, we can see that both the retriever and the reader have a significant effect on the F1 score ($F = 58.63$ and $F = 16.23$ respectively, $p < 0.0001$ for both). However, there is also an interaction between the retriever and reader ($F = 43.53$, $p < 0.0001$). The post-hoc analysis of contrasts shows that ElasticSearch performs better than FAISS ($p < 0.0001$) and Longformer performs better than DPR ($p < 0.0001$)."
444
  ]
445
  }
446
  ],
 
440
  "cell_type": "markdown",
441
  "metadata": {},
442
  "source": [
443
+ "From these results, we can see that both the retriever and the reader have a significant effect on the F1 score ($F = 58.63$ and $F = 16.23$ respectively, $p < 0.0001$ for both). However, there is also an interaction between the retriever and reader ($F = 43.53$, $p < 0.0001$). The post-hoc analysis of contrasts shows that ElasticSearch performs better than FAISS ($p < 0.0001$) and Longformer performs better than DPR ($p = 0.0001$)."
444
  ]
445
  }
446
  ],
results/timings_analysis.ipynb ADDED
@@ -0,0 +1,635 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Timings"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "code",
12
+ "execution_count": 1,
13
+ "metadata": {
14
+ "vscode": {
15
+ "languageId": "r"
16
+ }
17
+ },
18
+ "outputs": [
19
+ {
20
+ "name": "stderr",
21
+ "output_type": "stream",
22
+ "text": [
23
+ "Loading required package: ggplot2\n",
24
+ "\n",
25
+ "-- \u001b[1mAttaching packages\u001b[22m --------------------------------------- tidyverse 1.3.1 --\n",
26
+ "\n",
27
+ "\u001b[32mv\u001b[39m \u001b[34mtibble \u001b[39m 3.1.5 \u001b[32mv\u001b[39m \u001b[34mdplyr \u001b[39m 1.0.7\n",
28
+ "\u001b[32mv\u001b[39m \u001b[34mtidyr \u001b[39m 1.1.4 \u001b[32mv\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n",
29
+ "\u001b[32mv\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.4 \u001b[32mv\u001b[39m \u001b[34mforcats\u001b[39m 0.5.1\n",
30
+ "\n",
31
+ "-- \u001b[1mConflicts\u001b[22m ------------------------------------------ tidyverse_conflicts() --\n",
32
+ "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n",
33
+ "\u001b[31mx\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n",
34
+ "\n",
35
+ "Loading required package: mvtnorm\n",
36
+ "\n",
37
+ "Loading required package: survival\n",
38
+ "\n",
39
+ "Loading required package: TH.data\n",
40
+ "\n",
41
+ "Loading required package: MASS\n",
42
+ "\n",
43
+ "\n",
44
+ "Attaching package: 'MASS'\n",
45
+ "\n",
46
+ "\n",
47
+ "The following object is masked from 'package:dplyr':\n",
48
+ "\n",
49
+ " select\n",
50
+ "\n",
51
+ "\n",
52
+ "\n",
53
+ "Attaching package: 'TH.data'\n",
54
+ "\n",
55
+ "\n",
56
+ "The following object is masked from 'package:MASS':\n",
57
+ "\n",
58
+ " geyser\n",
59
+ "\n",
60
+ "\n",
61
+ "Loading required package: carData\n",
62
+ "\n",
63
+ "\n",
64
+ "Attaching package: 'car'\n",
65
+ "\n",
66
+ "\n",
67
+ "The following object is masked from 'package:dplyr':\n",
68
+ "\n",
69
+ " recode\n",
70
+ "\n",
71
+ "\n",
72
+ "The following object is masked from 'package:purrr':\n",
73
+ "\n",
74
+ " some\n",
75
+ "\n",
76
+ "\n",
77
+ "\n",
78
+ "Attaching package: 'rstatix'\n",
79
+ "\n",
80
+ "\n",
81
+ "The following object is masked from 'package:MASS':\n",
82
+ "\n",
83
+ " select\n",
84
+ "\n",
85
+ "\n",
86
+ "The following object is masked from 'package:stats':\n",
87
+ "\n",
88
+ " filter\n",
89
+ "\n",
90
+ "\n"
91
+ ]
92
+ }
93
+ ],
94
+ "source": [
95
+ "library(\"ggpubr\")\n",
96
+ "library(readr)\n",
97
+ "library(ggplot2)\n",
98
+ "library(tidyverse)\n",
99
+ "library(ARTool)\n",
100
+ "library(emmeans)\n",
101
+ "library(multcomp)\n",
102
+ "library(car)\n",
103
+ "library(rstatix)"
104
+ ]
105
+ },
106
+ {
107
+ "cell_type": "code",
108
+ "execution_count": 2,
109
+ "metadata": {
110
+ "vscode": {
111
+ "languageId": "r"
112
+ }
113
+ },
114
+ "outputs": [
115
+ {
116
+ "name": "stderr",
117
+ "output_type": "stream",
118
+ "text": [
119
+ "New names:\n",
120
+ "* `` -> ...1\n",
121
+ "\n",
122
+ "\u001b[1mRows: \u001b[22m\u001b[34m59\u001b[39m \u001b[1mColumns: \u001b[22m\u001b[34m9\u001b[39m\n",
123
+ "\u001b[36m--\u001b[39m \u001b[1mColumn specification\u001b[22m \u001b[36m--------------------------------------------------------\u001b[39m\n",
124
+ "\u001b[1mDelimiter:\u001b[22m \",\"\n",
125
+ "\u001b[32mdbl\u001b[39m (9): ...1, faiss_dpr.retrieve, faiss_dpr.read, faiss_longformer.retrieve...\n",
126
+ "\n",
127
+ "\u001b[36mi\u001b[39m Use `spec()` to retrieve the full column specification for this data.\n",
128
+ "\u001b[36mi\u001b[39m Specify the column types or set `show_col_types = FALSE` to quiet this message.\n"
129
+ ]
130
+ },
131
+ {
132
+ "data": {
133
+ "text/html": [
134
+ "<table class=\"dataframe\">\n",
135
+ "<caption>A tibble: 6 × 5</caption>\n",
136
+ "<thead>\n",
137
+ "\t<tr><th scope=col>question</th><th scope=col>retriever</th><th scope=col>reader</th><th scope=col>method</th><th scope=col>time</th></tr>\n",
138
+ "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
139
+ "</thead>\n",
140
+ "<tbody>\n",
141
+ "\t<tr><td>0</td><td>faiss</td><td>dpr </td><td>retrieve</td><td>0.30384302</td></tr>\n",
142
+ "\t<tr><td>0</td><td>faiss</td><td>dpr </td><td>read </td><td>4.56640005</td></tr>\n",
143
+ "\t<tr><td>0</td><td>faiss</td><td>longformer</td><td>retrieve</td><td>0.92279482</td></tr>\n",
144
+ "\t<tr><td>0</td><td>faiss</td><td>longformer</td><td>read </td><td>5.76836824</td></tr>\n",
145
+ "\t<tr><td>0</td><td>es </td><td>dpr </td><td>retrieve</td><td>0.01930094</td></tr>\n",
146
+ "\t<tr><td>0</td><td>es </td><td>dpr </td><td>read </td><td>2.74536490</td></tr>\n",
147
+ "</tbody>\n",
148
+ "</table>\n"
149
+ ],
150
+ "text/latex": [
151
+ "A tibble: 6 × 5\n",
152
+ "\\begin{tabular}{lllll}\n",
153
+ " question & retriever & reader & method & time\\\\\n",
154
+ " <dbl> & <fct> & <fct> & <fct> & <dbl>\\\\\n",
155
+ "\\hline\n",
156
+ "\t 0 & faiss & dpr & retrieve & 0.30384302\\\\\n",
157
+ "\t 0 & faiss & dpr & read & 4.56640005\\\\\n",
158
+ "\t 0 & faiss & longformer & retrieve & 0.92279482\\\\\n",
159
+ "\t 0 & faiss & longformer & read & 5.76836824\\\\\n",
160
+ "\t 0 & es & dpr & retrieve & 0.01930094\\\\\n",
161
+ "\t 0 & es & dpr & read & 2.74536490\\\\\n",
162
+ "\\end{tabular}\n"
163
+ ],
164
+ "text/markdown": [
165
+ "\n",
166
+ "A tibble: 6 × 5\n",
167
+ "\n",
168
+ "| question &lt;dbl&gt; | retriever &lt;fct&gt; | reader &lt;fct&gt; | method &lt;fct&gt; | time &lt;dbl&gt; |\n",
169
+ "|---|---|---|---|---|\n",
170
+ "| 0 | faiss | dpr | retrieve | 0.30384302 |\n",
171
+ "| 0 | faiss | dpr | read | 4.56640005 |\n",
172
+ "| 0 | faiss | longformer | retrieve | 0.92279482 |\n",
173
+ "| 0 | faiss | longformer | read | 5.76836824 |\n",
174
+ "| 0 | es | dpr | retrieve | 0.01930094 |\n",
175
+ "| 0 | es | dpr | read | 2.74536490 |\n",
176
+ "\n"
177
+ ],
178
+ "text/plain": [
179
+ " question retriever reader method time \n",
180
+ "1 0 faiss dpr retrieve 0.30384302\n",
181
+ "2 0 faiss dpr read 4.56640005\n",
182
+ "3 0 faiss longformer retrieve 0.92279482\n",
183
+ "4 0 faiss longformer read 5.76836824\n",
184
+ "5 0 es dpr retrieve 0.01930094\n",
185
+ "6 0 es dpr read 2.74536490"
186
+ ]
187
+ },
188
+ "metadata": {},
189
+ "output_type": "display_data"
190
+ }
191
+ ],
192
+ "source": [
193
+ "timings <- read_csv(\"timings.csv\") %>%\n",
194
+ " rename(question = `...1`) %>%\n",
195
+ " pivot_longer(!question, names_to=c(\"retriever\", \"reader\", \"method\"), names_sep=\"[._]\", values_to=\"time\")\n",
196
+ "\n",
197
+ "timings$retriever <- as.factor(timings$retriever)\n",
198
+ "timings$reader <- as.factor(timings$reader)\n",
199
+ "timings$method <- as.factor(timings$method)\n",
200
+ "\n",
201
+ "head(timings)"
202
+ ]
203
+ },
204
+ {
205
+ "cell_type": "code",
206
+ "execution_count": 3,
207
+ "metadata": {
208
+ "vscode": {
209
+ "languageId": "r"
210
+ }
211
+ },
212
+ "outputs": [],
213
+ "source": [
214
+ "timings_read <- filter(timings, method == \"read\") %>%\n",
215
+ " select(!method)\n",
216
+ "timings_retrieve <- filter(timings, method == \"retrieve\") %>%\n",
217
+ " select(!method)"
218
+ ]
219
+ },
220
+ {
221
+ "cell_type": "markdown",
222
+ "metadata": {},
223
+ "source": [
224
+ "To test which tests we can use, we need to check for normality. For this, we use a Shapiro-Wilk test of normality. As you can see in the results below, all $p$-values are lower than 0.001, so we reject the null-hypothesis of normality and now know that none of the f1-scores are normally distributed."
225
+ ]
226
+ },
227
+ {
228
+ "cell_type": "code",
229
+ "execution_count": 4,
230
+ "metadata": {
231
+ "vscode": {
232
+ "languageId": "r"
233
+ }
234
+ },
235
+ "outputs": [
236
+ {
237
+ "data": {
238
+ "text/html": [
239
+ "<table class=\"dataframe\">\n",
240
+ "<caption>A tibble: 2 × 3</caption>\n",
241
+ "<thead>\n",
242
+ "\t<tr><th scope=col>retriever</th><th scope=col>sw.stat</th><th scope=col>sw.p</th></tr>\n",
243
+ "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
244
+ "</thead>\n",
245
+ "<tbody>\n",
246
+ "\t<tr><td>es </td><td>0.7534261</td><td>1.667341e-18</td></tr>\n",
247
+ "\t<tr><td>faiss</td><td>0.7585727</td><td>2.563192e-18</td></tr>\n",
248
+ "</tbody>\n",
249
+ "</table>\n"
250
+ ],
251
+ "text/latex": [
252
+ "A tibble: 2 × 3\n",
253
+ "\\begin{tabular}{lll}\n",
254
+ " retriever & sw.stat & sw.p\\\\\n",
255
+ " <fct> & <dbl> & <dbl>\\\\\n",
256
+ "\\hline\n",
257
+ "\t es & 0.7534261 & 1.667341e-18\\\\\n",
258
+ "\t faiss & 0.7585727 & 2.563192e-18\\\\\n",
259
+ "\\end{tabular}\n"
260
+ ],
261
+ "text/markdown": [
262
+ "\n",
263
+ "A tibble: 2 × 3\n",
264
+ "\n",
265
+ "| retriever &lt;fct&gt; | sw.stat &lt;dbl&gt; | sw.p &lt;dbl&gt; |\n",
266
+ "|---|---|---|\n",
267
+ "| es | 0.7534261 | 1.667341e-18 |\n",
268
+ "| faiss | 0.7585727 | 2.563192e-18 |\n",
269
+ "\n"
270
+ ],
271
+ "text/plain": [
272
+ " retriever sw.stat sw.p \n",
273
+ "1 es 0.7534261 1.667341e-18\n",
274
+ "2 faiss 0.7585727 2.563192e-18"
275
+ ]
276
+ },
277
+ "metadata": {},
278
+ "output_type": "display_data"
279
+ },
280
+ {
281
+ "data": {
282
+ "text/html": [
283
+ "<table class=\"dataframe\">\n",
284
+ "<caption>A tibble: 2 × 3</caption>\n",
285
+ "<thead>\n",
286
+ "\t<tr><th scope=col>reader</th><th scope=col>sw.stat</th><th scope=col>sw.p</th></tr>\n",
287
+ "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
288
+ "</thead>\n",
289
+ "<tbody>\n",
290
+ "\t<tr><td>dpr </td><td>0.7639005</td><td>4.029344e-18</td></tr>\n",
291
+ "\t<tr><td>longformer</td><td>0.8116362</td><td>3.381683e-16</td></tr>\n",
292
+ "</tbody>\n",
293
+ "</table>\n"
294
+ ],
295
+ "text/latex": [
296
+ "A tibble: 2 × 3\n",
297
+ "\\begin{tabular}{lll}\n",
298
+ " reader & sw.stat & sw.p\\\\\n",
299
+ " <fct> & <dbl> & <dbl>\\\\\n",
300
+ "\\hline\n",
301
+ "\t dpr & 0.7639005 & 4.029344e-18\\\\\n",
302
+ "\t longformer & 0.8116362 & 3.381683e-16\\\\\n",
303
+ "\\end{tabular}\n"
304
+ ],
305
+ "text/markdown": [
306
+ "\n",
307
+ "A tibble: 2 × 3\n",
308
+ "\n",
309
+ "| reader &lt;fct&gt; | sw.stat &lt;dbl&gt; | sw.p &lt;dbl&gt; |\n",
310
+ "|---|---|---|\n",
311
+ "| dpr | 0.7639005 | 4.029344e-18 |\n",
312
+ "| longformer | 0.8116362 | 3.381683e-16 |\n",
313
+ "\n"
314
+ ],
315
+ "text/plain": [
316
+ " reader sw.stat sw.p \n",
317
+ "1 dpr 0.7639005 4.029344e-18\n",
318
+ "2 longformer 0.8116362 3.381683e-16"
319
+ ]
320
+ },
321
+ "metadata": {},
322
+ "output_type": "display_data"
323
+ },
324
+ {
325
+ "data": {
326
+ "text/html": [
327
+ "<table class=\"dataframe\">\n",
328
+ "<caption>A tibble: 2 × 3</caption>\n",
329
+ "<thead>\n",
330
+ "\t<tr><th scope=col>method</th><th scope=col>sw.stat</th><th scope=col>sw.p</th></tr>\n",
331
+ "\t<tr><th scope=col>&lt;fct&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
332
+ "</thead>\n",
333
+ "<tbody>\n",
334
+ "\t<tr><td>read </td><td>0.8838182</td><td>1.779766e-12</td></tr>\n",
335
+ "\t<tr><td>retrieve</td><td>0.6237773</td><td>1.838892e-22</td></tr>\n",
336
+ "</tbody>\n",
337
+ "</table>\n"
338
+ ],
339
+ "text/latex": [
340
+ "A tibble: 2 × 3\n",
341
+ "\\begin{tabular}{lll}\n",
342
+ " method & sw.stat & sw.p\\\\\n",
343
+ " <fct> & <dbl> & <dbl>\\\\\n",
344
+ "\\hline\n",
345
+ "\t read & 0.8838182 & 1.779766e-12\\\\\n",
346
+ "\t retrieve & 0.6237773 & 1.838892e-22\\\\\n",
347
+ "\\end{tabular}\n"
348
+ ],
349
+ "text/markdown": [
350
+ "\n",
351
+ "A tibble: 2 × 3\n",
352
+ "\n",
353
+ "| method &lt;fct&gt; | sw.stat &lt;dbl&gt; | sw.p &lt;dbl&gt; |\n",
354
+ "|---|---|---|\n",
355
+ "| read | 0.8838182 | 1.779766e-12 |\n",
356
+ "| retrieve | 0.6237773 | 1.838892e-22 |\n",
357
+ "\n"
358
+ ],
359
+ "text/plain": [
360
+ " method sw.stat sw.p \n",
361
+ "1 read 0.8838182 1.779766e-12\n",
362
+ "2 retrieve 0.6237773 1.838892e-22"
363
+ ]
364
+ },
365
+ "metadata": {},
366
+ "output_type": "display_data"
367
+ }
368
+ ],
369
+ "source": [
370
+ "timings %>%\n",
371
+ " group_by(retriever) %>%\n",
372
+ " summarise(sw.stat = shapiro.test(time)$statistic,\n",
373
+ " sw.p = shapiro.test(time)$p)\n",
374
+ "\n",
375
+ "timings %>%\n",
376
+ " group_by(reader) %>%\n",
377
+ " summarise(sw.stat = shapiro.test(time)$statistic,\n",
378
+ " sw.p = shapiro.test(time)$p)\n",
379
+ "\n",
380
+ "timings %>%\n",
381
+ " group_by(method) %>%\n",
382
+ " summarise(sw.stat = shapiro.test(time)$statistic,\n",
383
+ " sw.p = shapiro.test(time)$p)"
384
+ ]
385
+ },
386
+ {
387
+ "cell_type": "markdown",
388
+ "metadata": {},
389
+ "source": [
390
+ "Since our data is not normally distributed, we cannot use an ANOVA to compare our results. Therefore, we use an aligned-rank test, which is a non-parameteric version of a factorial repeated measures ANOVA."
391
+ ]
392
+ },
393
+ {
394
+ "cell_type": "code",
395
+ "execution_count": 5,
396
+ "metadata": {
397
+ "vscode": {
398
+ "languageId": "r"
399
+ }
400
+ },
401
+ "outputs": [
402
+ {
403
+ "data": {
404
+ "text/html": [
405
+ "<table class=\"dataframe\">\n",
406
+ "<caption>A anova.art: 3 × 7</caption>\n",
407
+ "<thead>\n",
408
+ "\t<tr><th></th><th scope=col>Term</th><th scope=col>Df</th><th scope=col>Df.res</th><th scope=col>Sum Sq</th><th scope=col>Sum Sq.res</th><th scope=col>F value</th><th scope=col>Pr(&gt;F)</th></tr>\n",
409
+ "\t<tr><th></th><th scope=col>&lt;chr&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
410
+ "</thead>\n",
411
+ "<tbody>\n",
412
+ "\t<tr><th scope=row>retriever</th><td>retriever </td><td>1</td><td>232</td><td> 41088.97</td><td>1037631.8</td><td> 9.18692</td><td>2.714084e-03</td></tr>\n",
413
+ "\t<tr><th scope=row>reader</th><td>reader </td><td>1</td><td>232</td><td>790427.81</td><td> 301414.1</td><td>608.39633</td><td>8.802730e-67</td></tr>\n",
414
+ "\t<tr><th scope=row>retriever:reader</th><td>retriever:reader</td><td>1</td><td>232</td><td>101903.46</td><td> 983331.4</td><td> 24.04235</td><td>1.771995e-06</td></tr>\n",
415
+ "</tbody>\n",
416
+ "</table>\n"
417
+ ],
418
+ "text/latex": [
419
+ "A anova.art: 3 × 7\n",
420
+ "\\begin{tabular}{r|lllllll}\n",
421
+ " & Term & Df & Df.res & Sum Sq & Sum Sq.res & F value & Pr(>F)\\\\\n",
422
+ " & <chr> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
423
+ "\\hline\n",
424
+ "\tretriever & retriever & 1 & 232 & 41088.97 & 1037631.8 & 9.18692 & 2.714084e-03\\\\\n",
425
+ "\treader & reader & 1 & 232 & 790427.81 & 301414.1 & 608.39633 & 8.802730e-67\\\\\n",
426
+ "\tretriever:reader & retriever:reader & 1 & 232 & 101903.46 & 983331.4 & 24.04235 & 1.771995e-06\\\\\n",
427
+ "\\end{tabular}\n"
428
+ ],
429
+ "text/markdown": [
430
+ "\n",
431
+ "A anova.art: 3 × 7\n",
432
+ "\n",
433
+ "| <!--/--> | Term &lt;chr&gt; | Df &lt;dbl&gt; | Df.res &lt;dbl&gt; | Sum Sq &lt;dbl&gt; | Sum Sq.res &lt;dbl&gt; | F value &lt;dbl&gt; | Pr(&gt;F) &lt;dbl&gt; |\n",
434
+ "|---|---|---|---|---|---|---|---|\n",
435
+ "| retriever | retriever | 1 | 232 | 41088.97 | 1037631.8 | 9.18692 | 2.714084e-03 |\n",
436
+ "| reader | reader | 1 | 232 | 790427.81 | 301414.1 | 608.39633 | 8.802730e-67 |\n",
437
+ "| retriever:reader | retriever:reader | 1 | 232 | 101903.46 | 983331.4 | 24.04235 | 1.771995e-06 |\n",
438
+ "\n"
439
+ ],
440
+ "text/plain": [
441
+ " Term Df Df.res Sum Sq Sum Sq.res F value \n",
442
+ "retriever retriever 1 232 41088.97 1037631.8 9.18692\n",
443
+ "reader reader 1 232 790427.81 301414.1 608.39633\n",
444
+ "retriever:reader retriever:reader 1 232 101903.46 983331.4 24.04235\n",
445
+ " Pr(>F) \n",
446
+ "retriever 2.714084e-03\n",
447
+ "reader 8.802730e-67\n",
448
+ "retriever:reader 1.771995e-06"
449
+ ]
450
+ },
451
+ "metadata": {},
452
+ "output_type": "display_data"
453
+ },
454
+ {
455
+ "name": "stderr",
456
+ "output_type": "stream",
457
+ "text": [
458
+ "NOTE: Results may be misleading due to involvement in interactions\n",
459
+ "\n"
460
+ ]
461
+ },
462
+ {
463
+ "data": {
464
+ "text/plain": [
465
+ " contrast estimate SE df t.ratio p.value\n",
466
+ " es - faiss 26.4 8.71 232 3.031 0.0027\n",
467
+ "\n",
468
+ "Results are averaged over the levels of: reader "
469
+ ]
470
+ },
471
+ "metadata": {},
472
+ "output_type": "display_data"
473
+ },
474
+ {
475
+ "name": "stderr",
476
+ "output_type": "stream",
477
+ "text": [
478
+ "NOTE: Results may be misleading due to involvement in interactions\n",
479
+ "\n"
480
+ ]
481
+ },
482
+ {
483
+ "data": {
484
+ "text/plain": [
485
+ " contrast estimate SE df t.ratio p.value\n",
486
+ " dpr - longformer -116 4.69 232 -24.666 <.0001\n",
487
+ "\n",
488
+ "Results are averaged over the levels of: retriever "
489
+ ]
490
+ },
491
+ "metadata": {},
492
+ "output_type": "display_data"
493
+ }
494
+ ],
495
+ "source": [
496
+ "model.acc <- art(time ~ retriever * reader, data = timings_read)\n",
497
+ "anova(model.acc)\n",
498
+ "art.con(model.acc, ~ retriever)\n",
499
+ "art.con(model.acc, ~ reader)"
500
+ ]
501
+ },
502
+ {
503
+ "cell_type": "code",
504
+ "execution_count": 6,
505
+ "metadata": {
506
+ "vscode": {
507
+ "languageId": "r"
508
+ }
509
+ },
510
+ "outputs": [
511
+ {
512
+ "data": {
513
+ "text/html": [
514
+ "<table class=\"dataframe\">\n",
515
+ "<caption>A anova.art: 3 × 7</caption>\n",
516
+ "<thead>\n",
517
+ "\t<tr><th></th><th scope=col>Term</th><th scope=col>Df</th><th scope=col>Df.res</th><th scope=col>Sum Sq</th><th scope=col>Sum Sq.res</th><th scope=col>F value</th><th scope=col>Pr(&gt;F)</th></tr>\n",
518
+ "\t<tr><th></th><th scope=col>&lt;chr&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
519
+ "</thead>\n",
520
+ "<tbody>\n",
521
+ "\t<tr><th scope=row>retriever</th><td>retriever </td><td>1</td><td>232</td><td>821516</td><td>240071.9</td><td>793.8944</td><td>7.630526e-77</td></tr>\n",
522
+ "\t<tr><th scope=row>reader</th><td>reader </td><td>1</td><td>232</td><td>821516</td><td>214935.3</td><td>886.7398</td><td>3.256422e-81</td></tr>\n",
523
+ "\t<tr><th scope=row>retriever:reader</th><td>retriever:reader</td><td>1</td><td>232</td><td>821516</td><td>215501.6</td><td>884.4096</td><td>4.148583e-81</td></tr>\n",
524
+ "</tbody>\n",
525
+ "</table>\n"
526
+ ],
527
+ "text/latex": [
528
+ "A anova.art: 3 × 7\n",
529
+ "\\begin{tabular}{r|lllllll}\n",
530
+ " & Term & Df & Df.res & Sum Sq & Sum Sq.res & F value & Pr(>F)\\\\\n",
531
+ " & <chr> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
532
+ "\\hline\n",
533
+ "\tretriever & retriever & 1 & 232 & 821516 & 240071.9 & 793.8944 & 7.630526e-77\\\\\n",
534
+ "\treader & reader & 1 & 232 & 821516 & 214935.3 & 886.7398 & 3.256422e-81\\\\\n",
535
+ "\tretriever:reader & retriever:reader & 1 & 232 & 821516 & 215501.6 & 884.4096 & 4.148583e-81\\\\\n",
536
+ "\\end{tabular}\n"
537
+ ],
538
+ "text/markdown": [
539
+ "\n",
540
+ "A anova.art: 3 × 7\n",
541
+ "\n",
542
+ "| <!--/--> | Term &lt;chr&gt; | Df &lt;dbl&gt; | Df.res &lt;dbl&gt; | Sum Sq &lt;dbl&gt; | Sum Sq.res &lt;dbl&gt; | F value &lt;dbl&gt; | Pr(&gt;F) &lt;dbl&gt; |\n",
543
+ "|---|---|---|---|---|---|---|---|\n",
544
+ "| retriever | retriever | 1 | 232 | 821516 | 240071.9 | 793.8944 | 7.630526e-77 |\n",
545
+ "| reader | reader | 1 | 232 | 821516 | 214935.3 | 886.7398 | 3.256422e-81 |\n",
546
+ "| retriever:reader | retriever:reader | 1 | 232 | 821516 | 215501.6 | 884.4096 | 4.148583e-81 |\n",
547
+ "\n"
548
+ ],
549
+ "text/plain": [
550
+ " Term Df Df.res Sum Sq Sum Sq.res F value \n",
551
+ "retriever retriever 1 232 821516 240071.9 793.8944\n",
552
+ "reader reader 1 232 821516 214935.3 886.7398\n",
553
+ "retriever:reader retriever:reader 1 232 821516 215501.6 884.4096\n",
554
+ " Pr(>F) \n",
555
+ "retriever 7.630526e-77\n",
556
+ "reader 3.256422e-81\n",
557
+ "retriever:reader 4.148583e-81"
558
+ ]
559
+ },
560
+ "metadata": {},
561
+ "output_type": "display_data"
562
+ },
563
+ {
564
+ "name": "stderr",
565
+ "output_type": "stream",
566
+ "text": [
567
+ "NOTE: Results may be misleading due to involvement in interactions\n",
568
+ "\n"
569
+ ]
570
+ },
571
+ {
572
+ "data": {
573
+ "text/plain": [
574
+ " contrast estimate SE df t.ratio p.value\n",
575
+ " es - faiss -118 4.19 232 -28.176 <.0001\n",
576
+ "\n",
577
+ "Results are averaged over the levels of: reader "
578
+ ]
579
+ },
580
+ "metadata": {},
581
+ "output_type": "display_data"
582
+ },
583
+ {
584
+ "name": "stderr",
585
+ "output_type": "stream",
586
+ "text": [
587
+ "NOTE: Results may be misleading due to involvement in interactions\n",
588
+ "\n"
589
+ ]
590
+ },
591
+ {
592
+ "data": {
593
+ "text/plain": [
594
+ " contrast estimate SE df t.ratio p.value\n",
595
+ " dpr - longformer -118 3.96 232 -29.778 <.0001\n",
596
+ "\n",
597
+ "Results are averaged over the levels of: retriever "
598
+ ]
599
+ },
600
+ "metadata": {},
601
+ "output_type": "display_data"
602
+ }
603
+ ],
604
+ "source": [
605
+ "model.acc <- art(time ~ retriever * reader, data = timings_retrieve)\n",
606
+ "anova(model.acc)\n",
607
+ "art.con(model.acc, ~ retriever)\n",
608
+ "art.con(model.acc, ~ reader)"
609
+ ]
610
+ },
611
+ {
612
+ "cell_type": "markdown",
613
+ "metadata": {},
614
+ "source": []
615
+ }
616
+ ],
617
+ "metadata": {
618
+ "kernelspec": {
619
+ "display_name": "R",
620
+ "language": "R",
621
+ "name": "ir"
622
+ },
623
+ "language_info": {
624
+ "codemirror_mode": "r",
625
+ "file_extension": ".r",
626
+ "mimetype": "text/x-r-source",
627
+ "name": "R",
628
+ "pygments_lexer": "r",
629
+ "version": "4.1.2"
630
+ },
631
+ "orig_nbformat": 4
632
+ },
633
+ "nbformat": 4,
634
+ "nbformat_minor": 2
635
+ }