386 научных единиц: 243 доклада, 141 постер и 2
работы в обоих форматах
География – в основном Европа (81%) и США (15%).
Всего представлены работы из 34 страны. Почти половина работ (46%) – из
Германии, Австрии или Швейцарии. Международные коллаборации встречаются
в 31% работ
Главная тема – аффективная динамика, она есть в
47% работ. Дальше идут стресс (28%), когнитивные процессы (25%) и
качество измерений (24%)
Темы собираются в три повестки: клиническую –
50% работ (депрессия, подростки, тревога, суицидальность), здоровье и
старение – 53% (когнитивные процессы, физическая активность,
одиночество, сон) и стресс в контексте работы и тела – 56%
Наиболее типичный дизайн EMA: 5 бипов, 14 дней и
в сумме около 63 бипов на участника
m-Path – самая заметная платформа. Инструменты в
абстрактах почти не описывают, платформа названа только в 10% работ.
Среди названных у m-Path нет конкурентов – m-Path встречается в 13
работах, остальные встречаются по одному-три раза
Сенсорами в основном собирают акселерометрию (37%) и
пульс с вариабельностью сердечного ритма (31%). Дальше идут
аудио и речь (18%), GPS (17%) и логи смартфона (17%)
Исследовательские устройства (напр., movisens) идут
вровень с потребительскими (напр., Apple Watch)
Работы с низким CR и неподтвердившимися гипотезами не
дискриминируют. При этом они представлены не только среди
постеров, но и среди очных докладов. Но уверенно говорить об этом
сложно: CR сообщают 8% работ, а судьбу гипотез можно понять лишь у 6%
SAA Conference – ежегодная междунарожная конференция общества амбулаторной оценки (Society for Ambulatory Assessment). Её программа показывает срез поля: какие темы сейчас изучают, какие дизайны считаются нормой и какими инструментами пользуются
Что было сделано:
Спарсены буклет абстрактов SAA 2026 (360 страниц) и 123
PDF-постера. Всё сведено в таблицу units.csv: одна строка –
одна научная единица (доклад, постер или работа в обоих
форматах)
Страны взяты из аффилиаций в буклете. Каждая страна считается у работы один раз, ведущей считается страна первой аффилиации
Темы, методы, платформы, устройства и сенсоры размечены по словарям, спорные случаи проверены вручную
Дизайн (бипы в день, дни, итоговая нагрузка) и подтверждение гипотез размечены вручную по текстам абстрактов и постеров. Если указан диапазон («5–6 раз в день»), бралась середина. У measurement burst дни всех волн суммировались. Если было несколько исследований, бралось первое
fmt_all <- works %>%
mutate(kind = factor(ru(format, lbl_format), levels = lbl_format)) %>%
count(kind)
donut(fmt_all, ~kind, unname(pal[c("blue", "green", "orange")]),
center = paste0("<b>", n_works, "</b><br>", plural(n_works, "единица", "единицы", "единиц")),
title = "Научные единицы по формату участия", legend_title = "Формат")
plot_geo(ctry_n, height = 440) %>%
add_trace(type = "choropleth", locations = ~iso3, z = ~log10(n),
text = ~paste0("<b>", name_ru, "</b><br>", hl("работ"), ": ", n, "<br>", hl("первая аффилиация"), ": ", lead),
hoverinfo = "text", zmin = 0, zmax = log10(max(ctry_n$n)),
colorscale = list(c(0, "#DCEBF5"), c(1, pal[["navy"]])),
marker = list(line = list(color = "white", width = 0.5)),
colorbar = list(title = list(text = "<b>Работ</b>", font = list(size = font$size)),
tickvals = log10(c(1, 3, 10, 30, 100)),
ticktext = c(1, 3, 10, 30, 100), len = 0.55, thickness = 14)) %>%
chart_layout(title = "Число работ по странам аффилиаций",
geo = list(scope = "world", projection = list(type = "natural earth"), showframe = FALSE,
showcoastlines = FALSE, showland = TRUE, landcolor = "#EEEEEE",
showcountries = TRUE, countrycolor = "white", bgcolor = "#FFFFFF"),
margin = list(l = 0, r = 0, t = 90, b = 0),
updatemenus = list(list(type = "buttons", direction = "right", x = 0.5, y = 1.02,
xanchor = "center", yanchor = "bottom",
buttons = list(
list(method = "relayout", label = "Мир",
args = list(list(geo.scope = "world"))),
list(method = "relayout", label = "Европа",
args = list(list(geo.scope = "europe")))))))
top15 <- ctry_n %>% slice_head(n = 20) %>% arrange(n)
plot_ly(top15, y = ~factor(name_ru, levels = name_ru), height = 500) %>%
add_bars(x = ~lead, name = "В первой аффилиации", orientation = "h", marker = list(color = pal[["blue"]]),
hovertemplate = paste0(hl("%{y}"), ": %{x}<br>в первой аффилиации<extra></extra>")) %>%
add_bars(x = ~coauthor, name = "Только у соавторов", orientation = "h", marker = list(color = pal[["light"]]),
# на светлой плашке plotly оставляет серый #444, с ним контраст ниже нормы – берём темнее
hoverlabel = list(font = list(color = "#333333")),
hovertemplate = paste0(hl("%{y}"), ": %{x}<br>только у соавторов<extra></extra>")) %>%
chart_layout(title = "Топ-20 стран по числу работ", barmode = "stack",
xaxis = list(title = "Число работ", gridcolor = grid_col),
yaxis = list(title = "", automargin = TRUE),
legend = list(title = list(text = "Где указана страна"), traceorder = "normal"))
type_plot <- type_fmt %>%
filter(format != "both") %>% # две работы в обоих форматах на этих графиках не показываем
mutate(fmt = factor(ru(format, lbl_format), levels = rev(lbl_format[1:2])),
group = ru(study_type, lbl_type)) %>%
group_by(fmt) %>% mutate(share = n / sum(n)) %>% ungroup()
stacked_bars(type_plot, groups = lbl_type[1:3], colors = unname(pal[c("blue", "orange", "green")]),
title = "Типы работ по формату участия", legend_title = "Тип работы")
stage_plot <- stage_fmt %>%
filter(format != "both") %>%
mutate(fmt = factor(ru(format, lbl_format), levels = rev(lbl_format[1:2])),
group = ru(stage, lbl_stage)) %>%
group_by(fmt) %>% mutate(share = n / sum(n)) %>% ungroup()
stacked_bars(stage_plot, groups = lbl_stage, colors = unname(pal[c("blue", "light", "orange")]),
title = "Стадии исследований по формату участия", legend_title = "Стадия")
Формат: SAA – в первую очередь конференция устных докладов: их 63% от всех работ, постеров – 37%. Совмещённое участие почти не встречается: в обоих форматах было всего 2 работы
География: это европейская конференция с сильным американским присутствием. Лидирует Германия: немецкая аффилиация есть у 145 работ (38%). За ней идут Нидерланды (23%), США (20%), Австрия (11%), Великобритания (10%), Швейцария (9%) и Бельгия (8%). Работы с первой аффилиацией за пределами Европы и Северной Америки единичны - 3%
Типы и стадии: 91% работ – эмпирические исследования, протоколы (17) есть только среди постеров. Почти у всех докладов результаты уже готовы (91%), в то же время 30% постеров пока на стадии планирования или предварительных результаов - постеры, по сути, площадка для обсуждения работ в процессе
plot_ly(topic_share, y = ~factor(topic, levels = topic), height = 720) %>%
add_bars(x = ~talk_s, name = "Доклады", orientation = "h", marker = list(color = pal[["blue"]]),
customdata = ~talk,
hovertemplate = paste0(hl("%{y}"), "<br>", hl("доклады"), ": %{customdata} (%{x:.0%})<extra></extra>")) %>%
add_bars(x = ~poster_s, name = "Постеры", orientation = "h", marker = list(color = pal[["green"]]),
customdata = ~poster,
hovertemplate = paste0(hl("%{y}"), "<br>", hl("постеры"), ": %{customdata} (%{x:.0%})<extra></extra>")) %>%
chart_layout(title = "Доля работ с темой среди докладов и постеров", barmode = "group", bargap = 0.3,
xaxis = list(title = "Доля работ своего формата", tickformat = ".0%", gridcolor = grid_col),
yaxis = list(title = "", automargin = TRUE),
# в горизонтальной группе первый след рисуется снизу, поэтому легенду разворачиваем
legend = list(title = list(text = "Формат"), traceorder = "reversed"))
Примечание: у одной работы может быть несколько тем, поэтому доли в сумме больше 100%
Что показывает связь: связь (лифт) показывает, во сколько раз две темы встречаются вместе чаще, чем при случайном сочетании. Синий – темы встречаются вместе чаще случайного, красный – реже
ord <- names(sort(freq, decreasing = TRUE))
H <- lift[ord, ord]
Cc <- C[ord, ord]
H[Cc < 3] <- NA
hover <- matrix(sprintf(paste0(hl("%s × %s"), "<br>", hl("вместе"), ": %s<br>", hl("лифт"), ": %s"),
ru(rownames(H), lbl_topic)[row(H)], ru(colnames(H), lbl_topic)[col(H)],
pl_v(Cc, "работа", "работы", "работ"), ifelse(is.na(H), "–", num(H))), nrow = nrow(H))
plot_ly(x = ru(ord, lbl_topic), y = ru(ord, lbl_topic), z = H, type = "heatmap", text = hover, hoverinfo = "text",
zmin = 0, zmax = 4, colorscale = list(c(0, pal[["red"]]), c(0.25, "#FFFFFF"), c(1, pal[["blue"]])),
colorbar = list(title = list(text = "<b>Лифт</b>", font = list(size = font$size)),
tickvals = c(0, 1, 2, 3, 4), ticktext = c("0", "1", "2", "3", "4+")),
height = 760) %>%
chart_layout(title = "Лифт для пар тем",
xaxis = list(tickangle = -45, automargin = TRUE, title = "", dtick = 1, tickfont = list(size = 11)),
yaxis = list(autorange = "reversed", automargin = TRUE, title = "", dtick = 1,
tickfont = list(size = 11)))
Примечание: пары, которые вместе встречаются меньше чем в 3 работах, не закрашены, т.к. лифт для них слишком шумный
Самые «притягивающиеся» пары тем
strong_pairs %>%
transmute(`Тема 1` = cell_name(ru(from, lbl_topic)),
`Тема 2` = cell_name(ru(to, lbl_topic)),
`Работ вместе` = cell_tile(co),
`Лифт` = cell_bar(lift, label = num(lift))) %>%
table_html()
| Тема 1 | Тема 2 | Работ вместе | Лифт |
|---|---|---|---|
| Расстройства пищевого поведения | Употребление ПАВ | 7 |
7,48
|
| Менструальный цикл | Боль и соматика | 5 |
4,34
|
| Депрессия | Тревога | 33 |
3,14
|
| Старение | Климат и среда | 5 |
2,73
|
| Подростки и молодёжь | Суицид и самоповреждение | 5 |
2,54
|
| Сон | Старение | 10 |
1,78
|
| Сон | Физическая активность | 9 |
1,60
|
| Когнитивные процессы | Старение | 20 |
1,59
|
| Стресс | Боль и соматика | 16 |
1,56
|
| Старение | Одиночество и социальные связи | 9 |
1,50
|
Связи тем: аффективная динамика – сквозная тема конференции: она есть почти в каждой второй работе (47%) и сочетается практически со всем. Поэтому связи с ней почти не отличаются от случайных (лифт около 1). Сильнее всего темы притягиваются внутри клинических пар: депрессия и тревога встречаются вместе в 33 работах, это в 3,1 раза чаще случайного. Самые специфичные сочетания – небольшие, но плотные связки вроде расстройств пищевого поведения и употребления ПАВ
Кластеры: если сгруппировать темы по силе связей (алгоритм Louvain), получаются три большие исследовательские повестки. Первая – клиническая: депрессия, подростки, тревога, лечение и суицидальность. Вторая – здоровье и старение: когнитивные процессы, физическая активность, старение, одиночество и сон. Третья – стресс в контексте работы и тела: стресс, качество измерений, работа и учёба, боль и соматика. Психозы не образуют устойчивых связей ни с одной темой, а пищевые расстройства и ПАВ держатся отдельной парой
Доклады и постеры: Постеры заметно чаще посвящены работе и учёбе, стрессу, боли и соматике, а доклады – тревоге, депрессии и другим клиническим темам. Аффективная динамика и качество измерений одинаково популярны в обоих форматах
Выборка: метод указан в 357 работах (из 386)
mt_plot <- mt %>% arrange(n)
plot_ly(mt_plot, x = ~n / n_works, y = ~factor(label, levels = label), type = "bar", orientation = "h", height = 560,
marker = list(color = pal[["blue"]]), text = ~paste0(n, " (", pct(n / n_works), ")"),
textposition = "outside", cliponaxis = FALSE,
hovertemplate = paste0(hl("%{y}"), ": %{text}<extra></extra>")) %>%
chart_layout(title = "Методы, которыми пользуются в работах",
xaxis = list(title = "Доля работ", tickformat = ".0%", gridcolor = grid_col, range = c(0, 0.75)),
yaxis = list(title = "", automargin = TRUE), margin = list(r = 40))
Примечание: у работы может быть несколько методов, доли считаются от всех 386 работ
Выборка: частота опросов указана в 204 работах (из 386)
bpd <- design %>% filter(!is.na(beeps_per_day))
plot_ly(bpd %>% filter(beeps_per_day <= 26), x = ~beeps_per_day, type = "histogram", height = 420,
xbins = list(start = 0.5, end = 26.5, size = 1),
marker = list(color = pal[["blue"]], line = list(color = "white", width = 1)),
hovertemplate = paste0(hl("%{x} бипов в день"), ": %{y} работ<extra></extra>")) %>%
chart_layout(title = "Объём бипов в день",
xaxis = list(title = "Бипов в день", dtick = 1, gridcolor = grid_col),
yaxis = list(title = "Число работ", gridcolor = grid_col), bargap = 0.05,
shapes = list(vline(s_bpd$med)),
annotations = list(list(x = s_bpd$med, y = 1, yref = "paper", xanchor = "left", showarrow = FALSE,
text = paste0(" медиана = ", fmtn(s_bpd$med)),
font = list(color = pal[["red"]]))))
Примечание 1: значения меньше 1 – протоколы с опросом раз в несколько дней
Примечание 2: 1 работа с частотой больше 26 бипов в день на график не попала
Выборка: длительность указана в 251 работе (из 386)
wk_lab <- c("меньше 1", "1", "2", "3", "4", "5–8", "9–12", "больше 12")
wk <- design %>% filter(!is.na(days)) %>%
mutate(cat = factor(wk_lab[findInterval(days, c(0, 7, 14, 21, 28, 35, 63, 91))], levels = wk_lab),
exact = abs(days %% 7) < 1e-9) %>%
count(cat, exact, .drop = FALSE)
wk_total <- wk %>% summarise(n = sum(n), .by = cat)
p <- plot_ly(height = 420)
for (g in c(TRUE, FALSE)) {
p <- p %>%
add_bars(data = wk %>% filter(exact == g), x = ~cat, y = ~n,
name = if (g) "Кратна неделе" else "Не кратна",
marker = list(color = if (g) pal[["blue"]] else pal[["light"]]),
hovertemplate = paste0(hl("Недель"), ": %{x}<br>", hl("%{fullData.name}"), ": %{y} работ<extra></extra>"))
}
p %>%
chart_layout(title = "Длительность сбора данных", barmode = "stack",
xaxis = list(title = "Недель сбора"),
yaxis = list(title = "Число работ", gridcolor = grid_col),
legend = list(title = list(text = "Длительность"), traceorder = "normal"),
# итог над столбиком: подписи сегментов в стопке не поместятся
annotations = unname(Map(function(cat, n) {
list(x = cat, y = n, text = n, yanchor = "bottom", yshift = 2, showarrow = FALSE)
}, as.character(wk_total$cat), wk_total$n)))
Выборка: общая нагрузка известна для 195 работ (из 386)
tb <- design %>% filter(!is.na(total_beeps))
plot_ly(tb %>% filter(total_beeps <= 400), x = ~total_beeps, type = "histogram", height = 380,
xbins = list(start = 0, end = 400, size = 20),
marker = list(color = pal[["blue"]], line = list(color = "white", width = 1)),
hovertemplate = paste0(hl("%{x} бипов"), ": %{y} работ<extra></extra>")) %>%
chart_layout(title = "Всего бипов на участника",
xaxis = list(title = "Всего бипов на участника", gridcolor = grid_col),
yaxis = list(title = "Число работ", gridcolor = grid_col), bargap = 0.05,
shapes = list(vline(s_tb$med)),
annotations = list(list(x = s_tb$med, y = 1, yref = "paper", xanchor = "left", showarrow = FALSE,
text = paste0(" медиана = ", fmtn(s_tb$med)),
font = list(color = pal[["red"]]))))
Примечание: 1 работа с нагрузкой больше 400 бипов на график не попала
design_stats <- tibble(
param = c("Бипов в день", "Дней сбора", "Всего бипов на участника"),
col = c("beeps_per_day", "days", "total_beeps")
) %>%
mutate(s = map(col, ~ d_stat(design[[.x]])),
n = map_int(s, "n"), med = map_dbl(s, "med"), q1 = map_dbl(s, "q1"), q3 = map_dbl(s, "q3"),
min = map_dbl(s, "min"), max = map_dbl(s, "max"))
design_stats %>%
transmute(`Параметр` = cell_name(param),
`Медиана` = fmtn(med),
# границы диапазона разносим пробелами, а тысячи оставляем слитно («1000»),
# иначе «2–1 000» читается как два числа
`Q1–Q3` = paste0(fmtn(q1, ""), " – ", fmtn(q3, "")),
`Диапазон` = paste0(fmtn(min, ""), " – ", fmtn(max, "")),
`<i>N</i>` = fmtn(n)) %>%
table_html()
| Параметр | Медиана | Q1–Q3 | Диапазон | N |
|---|---|---|---|---|
| Бипов в день | 5 | 3 – 7 | 0,1 – 49 | 204 |
| Дней сбора | 14 | 7 – 28 | 2 – 1000 | 251 |
| Всего бипов на участника | 63 | 42 – 108 | 7 – 735 | 195 |
Методы: EMA/ESM – основа конференции, её используют 63% работ. Носимые устройства, пассивный сенсинг или GPS есть в 25% работ, чаще всего как дополнение к опросам: самоотчёт и сенсоры совмещают 19% работ
Дизайн: работы заметно стандартизированы. Медиана – 5 бипов в день (межквартильный размах 3–7), большинство (62%) исследований укладываются в диапазон от 4 до 10 бипов в день. Отдельный пик на одном бипе в день – это ежедневные дневники (15% работ). По длительности лидируют «круглые» сроки: у 64% работ сбор длится целое число недель. Самые популярные варианты – 2, 1 и 3 недели (21%, 15% и 12% работ соответственно), медиана – 2 недели
Общая нагрузка: половина работ (50%) укладывается в узкий коридор от 42 до 108 бипов на участника, медиана – 63
Выборка: платформа указана в 39 работах (из 386)
plat_plot <- plat %>% arrange(n)
plot_ly(plat_plot, x = ~n, y = ~factor(value, levels = value), type = "bar", orientation = "h", height = 600,
marker = list(color = ifelse(plat_plot$value == "PoEMA", pal[["orange"]], pal[["blue"]])),
text = ~n, textposition = "outside", cliponaxis = FALSE,
hovertemplate = paste0(hl("%{y}"), ": %{x} работ<extra></extra>")) %>%
chart_layout(title = "Платформы для сбора данных",
xaxis = list(title = "Число работ", gridcolor = grid_col, dtick = 2),
yaxis = list(title = "", automargin = TRUE), margin = list(r = 30))
Примечание: «custom app» – собственные приложения без названия
Выборка: сигналы указаны в 98 работах (из 386)
sens_plot <- sens %>% arrange(n)
plot_ly(sens_plot, x = ~n, y = ~factor(label, levels = label), type = "bar", orientation = "h", height = 500,
marker = list(color = pal[["green"]]), text = ~n, textposition = "outside", cliponaxis = FALSE,
hovertemplate = paste0(hl("%{y}"), ": %{x} работ<extra></extra>")) %>%
chart_layout(title = "Какие сигналы собирают сенсоры",
xaxis = list(title = "Число работ", gridcolor = grid_col),
yaxis = list(title = "", automargin = TRUE), margin = list(r = 30))
Примечание: логи смартфона – это экранное время, использование приложений, клавиатура и звонки
Выборка: модель или бренд устройства указаны в 33 работах (из 386)
devs_plot <- devs %>% arrange(n)
plot_ly(devs_plot, x = ~n, y = ~factor(value, levels = value), type = "bar", orientation = "h", height = 460,
marker = list(color = pal[["blue"]]), text = ~n, textposition = "outside", cliponaxis = FALSE,
hovertemplate = paste0(hl("%{y}"), ": %{x} работ<extra></extra>")) %>%
chart_layout(title = "Какие устройства используют",
xaxis = list(title = "Число работ", gridcolor = grid_col),
yaxis = list(title = "", automargin = TRUE), margin = list(r = 30))
Платформы: инструменты в абстрактах почти не описывают, платформа названа только в 10% работ. Среди названных у m-Path (13 работ) нет конкурентов: остальные платформы встречаются по одному-три раза
Сигналы: данные с датчиков упоминаются в 25% работ. Среди них лидируют акселерометрия (37%) и пульс с вариабельностью сердечного ритма (31%). На третьем-пятом местах: аудио и речь (18%), GPS (17%) и логи смартфона (17%) – сигналы цифрового фенотипирования, которые собираются без носимых устройств
Устройства: исследовательские (movisens, Empatica, ActiGraph) идут вровень с потребительскими (Garmin, Fitbit, Oura, Apple Watch) – но выборка слишком мала (33 работы), чтобы говорить об этом уверенно
Сompliance rate (CR) – доля отвеченных опросов от всех отправленных
set.seed(3)
cr_colors <- c("Доклад" = pal[["blue"]], "Постер" = pal[["green"]], "Доклад и постер" = pal[["grey"]],
"PoEMA (наш доклад)" = pal[["orange"]])
cr_plot <- cr %>%
mutate(group = ifelse(id == "T-230", "PoEMA (наш доклад)", ru(format, lbl_format)),
y = runif(n(), -0.35, 0.35),
hover = paste0("<b>", str_trunc(title, 70), "</b><br>CR = ", num(compliance_rate, 2),
ifelse(is.na(beeps_per_day), "",
paste0("<br>", pl_v(beeps_per_day, "бип", "бипа", "бипов"), " в день",
ifelse(is.na(days), "", paste0(" × ", pl_v(days, "день", "дня", "дней")))))))
plot_ly(cr_plot, x = ~compliance_rate, y = ~y, color = ~group, colors = cr_colors, type = "scatter", mode = "markers",
height = 400, marker = list(size = 14, opacity = 0.85, line = list(color = "white", width = 1)),
text = ~hover, hoverinfo = "text") %>%
chart_layout(title = "Compliance rate в работах, которые его сообщают",
xaxis = list(title = "Compliance rate", tickformat = ".0%", range = c(0.1, 1.02), gridcolor = grid_col),
yaxis = list(visible = FALSE, range = c(-0.6, 0.9), fixedrange = TRUE),
shapes = list(vline(0.70, pal[["red"]]), vline(0.792, pal[["grey"]])),
legend = list(title = list(text = "Формат")),
annotations = list(
list(x = 0.70, y = 0.97, yref = "paper", xanchor = "right", showarrow = FALSE,
text = "0,70 – ниже появляются искажения ", font = list(color = pal[["red"]], size = 12)),
list(x = 0.792, y = 0.86, yref = "paper", xanchor = "right", showarrow = FALSE,
text = "0,79 – средний CR в метаанализе ", font = list(color = pal[["grey"]], size = 12))))
Примечание: красная линия – порог 0,70, ниже которого в результатах появляются заметные искажения (Mennis et al., 2018), серая – средний CR в метаанализе Wrzus & Neubauer (2023)
Данные приведены для того, чтобы понять как на конференции относятся к работам, в которых не подтвердились гипотезы
hyp_plot <- tibble(status = factor(lbl_hyp, levels = lbl_hyp), n = as.integer(hyp_n))
donut(hyp_plot, ~status, unname(pal[c("green", "orange", "red")]),
center = paste0("<b>", nrow(hyp), "</b><br>", plural(nrow(hyp), "работа", "работы", "работ")),
title = "Результаты проверки гипотез", legend_title = "Гипотезы") %>%
style(textinfo = "value+percent")
hyp_fmt <- hyp %>%
mutate(fmt = factor(ru(format, lbl_format), levels = rev(lbl_format[1:2])),
group = ru(hypotheses, lbl_hyp)) %>%
count(fmt, group) %>%
group_by(fmt) %>% mutate(share = n / sum(n)) %>% ungroup()
stacked_bars(hyp_fmt, groups = lbl_hyp, colors = unname(pal[c("green", "orange", "red")]),
title = "Результаты проверки гипотез по формату", legend_title = "Гипотезы", height = 280)
Неудобные результаты не отклоняют: работы с низким CR и неподтвердившимися гипотезами на конференции есть, причём не только в постерной сессии. CR сообщают 29 работ, у 8 из них он ниже 0,70, минимум – 0,15. С гипотезами похожая картина: они не подтвердились у 6 работ из 25. Тем не менее вывод очень предварительный ввиду небольшой выборки: это всего 8% и 6% работ конференции. Но сам факт наличия таких работ обнадёживает