На этой странице
Метаанализ — методические заметки
Решения, на которых построен модуль метаанализа: какие правила, пороги, отказы и запасные варианты стоят за каждой карточкой и из каких соображений они выбраны. Разделы следуют разделам руководства.
Таблица исследований
Таблица читается через именованный формат, который сопоставляется по именам столбцов со всем набором своих ролей, и форматы проверяются от самого специфичного к общему. В таблицах для извлечения данных одна и та же величина записывается десятком способов, а арифметика, превращающая строку в размер эффекта, целиком зависит от того, что в строке: среднее и SD по группам — одна формула, таблица 2×2 — другая, сообщённый эффект с границами — третья. Когда формат назван заранее, преобразование становится видимым: роли показывают, какие столбцы в него идут, неверно сопоставленную роль можно перенести, а панель Строки исследований ещё до объединения показывает, во что превратилась каждая строка. Формат принимается, только если каждая его роль легла на отдельный столбец (наполовину совпавший формат — это не он), список проходится в фиксированном порядке, и побеждает первый подошедший формат. Готовые форматы намеренно стоят выше групповых: таблица, где уже есть эффект и его дисперсия, никогда не пересчитывается по соседним столбцам групп. Смешанный формат стоит последним и единственный разрешается частично — он подходит, как только легли роли хотя бы одного преобразования, — поэтому побеждает только там, где таблицу не прочитал ни один фиксированный формат.
Числовой тип проверяется после сопоставления, а не в его ходе. Если формат совпал по именам, но одна из ролей легла на столбец, который не читается как числа, модуль так и сообщает, называя столбцы, а не переходит к следующему формату. Именно такой переход без предупреждения и приводит к тому, что из четырнадцати исследований объединяются девять, а о том, прочиталась ли таблица так, как задумал пользователь, ему больше ничто не сообщит. Тот же вердикт управляет запуском, поэтому проблему, названную в строке определения, запуск отвергнет теми же словами.
Если роли подходят несколько столбцов, она берёт столбец, названный её собственным именем, а затем первый в порядке выбора. Метка исследования ищется по уровням, и id — последним. Среди столбцов, подходящих под шаблон роли, столбец, названный в точности как ключ роли (имя аргумента metafor, которое таблица, подготовленная под metafor, использует дословно), важнее порядка выбора, а ведь иначе только этот порядок и отличал бы столбец d от столбца yi двумя столбцами правее. Остальные подходящие столбцы строка определения перечисляет как также подходит: выбор, держащийся лишь на предпочтении, читатель должен видеть вместе с альтернативами. Метка исследования ищется на трёх уровнях: имя, которое точно означает исследование (study, trial, author); имя, которое, вероятно, его означает (label, name, reference); и id как последнее средство. Так идентификатор строки из экспортированной таблицы, стоящий в ней первым, не отнимает метку у соседнего столбца trial.
Столбец, выбранный вручную, забирается у роли, совпавшей с ним по имени, а две роли, вручную назначенные на один столбец, останавливают запуск. Определение заполняет роли вокруг закреплённого выбора, а не поверх него, поэтому после изменения набора переменных его можно повторить, не теряя назначений пользователя. Столбец, назначенный пользователем, важнее совпадения по имени, так что роль, которая лишь совпала с ним по имени, его уступает. Две закреплённые роли на одном столбце — противоречие самого пользователя, и оно отвергается до запуска: такие роли попадают в escalc как один и тот же аргумент дважды, то есть группа сравнивается сама с собой, и вместо ошибки получается уверенный результат, который ничего не значит.
Знак эффекта строки меняется только по распознаваемой отметке, а любое другое значение сохраняет знак исследования. Отрицательное число или ячейка со значением -, flip, flipped, reverse, reversed, invert, inverted, negative или neg в любом регистре меняет знак эффекта строки после преобразования. Пустая ячейка, положительное число или слово не из этого списка оставляют эффект таким, каким его сообщило исследование: нераспознанная ячейка не должна незаметно менять знак исследования. Карточка подсчитывает строки, сменившие знак, чтобы это решение было видно.
Дисперсия кластерной строки увеличивается на дизайн-эффект 1 + (M − 1) × ICC, а размер кластера меньше 1 не читается. Кластерно-рандомизированное исследование, проанализированное так, будто рандомизировали отдельных участников, сообщает дисперсию, заниженную ровно в это число раз, как показали Доннер и Клар (Donner & Klar, 2002). Здесь M — средний размер кластера, а ICC — внутрикластерная корреляция, собственная для строки, если она есть в таблице, и принятая в остальных случаях. Поправка применяется к строке после преобразования, рядом со знаком направления, потому что она говорит об исследовании, а не о рецепте, которым строка прочитана. Кластер из одного участника означает, что рандомизировали отдельных людей, а дизайн-эффект меньше единицы уменьшил бы дисперсию вместо того, чтобы её увеличить, поэтому при размере кластера меньше 1 строка не корректируется.
Если побеждает фиксированный формат, строка определения сообщает, сколько строк вместо него прочитал бы смешанный. Форматы сопоставляются только по именам столбцов, и побеждает самый специфичный, поэтому таблица со столбцами effect, ci_lower и ci_upper читается как готовые эффекты с границами, как бы мало строк их ни заполняло. А в смешанной таблице для извлечения данных эти столбцы как раз есть: их заполняют исследования, сообщившие отношение, и оставляют пустыми все остальные. Число строк, которые прочитал бы смешанный формат, — единственное на карточке, что говорит пользователю, что остальные его строки тоже читаемы, поэтому оно выводится всякий раз, когда превышает число пригодных строк победившего формата.
Строка проверяется до преобразования, и каждый отказ называет арифметику, которую значение сломало бы. У каждого преобразования есть недопустимые для него значения, и metafor в ответ на такое значение либо обрушивает весь набор данных, либо возвращает бессмысленный эффект, поэтому панель заранее отвергает строку и объясняет почему. Отвергаются: отрицательное число событий или участников; корреляция вне диапазона от −1 до 1 или равная ровно ±1, у которой нет конечного z Фишера или d; p-значение, равное ровно нулю или по модулю больше 1 (знак p читается как направление эффекта, поэтому ±1 даёт d, равное ровно нулю, а нулю не соответствует никакое t); p рядом с собственной сообщённой оценкой, если оно отрицательно или равно ровно 1 (знак несёт оценка, conv.wald обрушивает весь набор на p со знаком, а при p = 1 z = 0 и дисперсия бесконечна), или оценка, равная ровно нулю, рядом с p, поскольку никакое p не даст ей дисперсии; событий больше, чем участников в группе; группа, у которой все ячейки нулевые; доверительные границы в неверном порядке или оценка вне своих границ; нулевое SD в обеих группах или в единственном исходном SD, на которое делится изменение, стандартизованное по исходному уровню; нулевая сообщённая стандартная ошибка или дисперсия, при которой нечем взвешивать; меньше четырёх участников в сумме при стандартизованной разности средних, где поправка Хеджеса J(m) не определена при m = n₁ + n₂ − 2 ≤ 1, меньше трёх при стандартизованном среднем изменении по той же причине и меньше четырёх при z Фишера, дисперсия которого равна 1/(n − 3); неположительное среднее при отношении средних, неположительное отношение в собственной шкале и доля вне диапазона от 0 до 1, если значения введены в естественной шкале.
Пятичисловая сводка проходит критерий асимметрии conv.fivenum, а группа с n меньше 5 или с числами не по порядку пятичислового преобразования не получает. Оценки среднего и SD по медиане с квартилями или с размахом предполагают распределение, достаточно близкое к нормальному, поэтому каждая пятичисловая группа проходит через conv.fivenum пакета metafor с test = TRUE, то есть через критерий асимметрии Ши и соавторов. Отвергнутая критерием группа возвращается с указанием строки и группы, а не пересчитывается на допущении, которому противоречат данные. Сама conv.fivenum исключает группу с n меньше 5 ещё до оценивания и обрушивает весь набор на пяти числах, которые не идут в неубывающем порядке, поэтому панель выполняет обе проверки заранее и не пропускает такую группу ни через одно пятичисловое преобразование.
Строка, прочитанная по более простому преобразованию, чем могла бы, или с оценкой не в центре своих границ, разрешается, но остаётся на виду. Пустая ячейка исходного уровня так же часто оказывается опечаткой или пропуском, как и следом статьи, сообщившей исходный уровень только для одной группы, поэтому строка, заполняющая лишь часть столбцов более полного преобразования, читается тем преобразованием, которое она заполняет целиком, и называется под фильтром вместе с тем, чего ей не хватает. Оценка, отстоящая от середины своих доверительных границ больше чем на десятую часть их ширины (cifac пакета metafor, порог, при котором conv.wald выдаёт предупреждение), — не центр симметричного интервала: за ней так же часто стоит точный или бутстрэп-интервал либо отношение, введённое в собственной шкале, как и ошибка округления. Строка всё равно пересчитывается как симметричный интервал, но помечается, чтобы читатель мог проверить, какой из случаев перед ним.
Меры эффекта
Отношения объединяются в логарифмической шкале, корреляции — в шкале z Фишера, доли — как логарифмы шансов, а рядом карточка выводит значение в естественной шкале. Отношения шансов 0.5 и 2 одинаковы по величине и противоположны по направлению, но их арифметическое расстояние от 1 разное. В логарифмической шкале они симметричны (−0.69 и +0.69), выборочное распределение близко к нормальному, а интервал, построенный в этой шкале, после обратного преобразования становится асимметричным, каким и должен быть интервал для отношения. Преобразование Фишера делает то же для корреляции: её выборочное распределение скашивается по мере приближения r к ±1, а дисперсия в шкале z, 1/(n − 3), уже не зависит от самой корреляции. Логит делает то же для доли, дисперсия которой p(1 − p)/n сжимается до нуля у 0 и у 1. Поэтому доля без преобразования доступна, но у границ надёжнее логит. Для мультипликативных мер лесовидная диаграмма рисуется на логарифмической оси в естественных единицах, а для логита и z Фишера остаётся в шкале анализа — единственной, где их интервалы симметричны.
Каждая строка, которую модуль пересчитывает сам, даёт g Хеджеса. Сообщённое d корректируется при вводе, а сообщённое g — нет. Мера SMD в escalc по умолчанию применяет поправку на малую выборку J(m) к каждой строке, которую пересчитывает из средних, t, p или точечно-бисериальной r, так что все они оказываются в одной шкале. Значение d, введённое в столбец d Коэна смешанного формата, корректируется так же, а столбец g Хеджеса передаётся с correct = FALSE. Столбцов два потому, что поправка не идемпотентна: g, введённое как d, корректируется дважды, d, введённое как g, остаётся без поправки, и ни ту ни другую ошибку по числам не обнаружить. Сообщённый эффект со стандартной ошибкой, границами или p при SMD объединяется как сообщён, без поправки, поскольку модуль не может знать, что ему дали. Об этом карточка говорит в блоке о том, что принято на веру.
Каждый путь от напечатанного числа к размеру эффекта — именованный рецепт со своими допущениями. Рецепты проверяются в фиксированном порядке, и карточка выводит сработавшие. Каждый путь опирается на допущения: что t получено из критерия для независимых выборок с объединённой дисперсией, что интервал — симметричный интервал Вальда на принятом уровне, что p двустороннее и точное. Единая формула скрыла бы, какие из них выполнены для какой строки. Реестр превращает каждый путь в именованный объект, допущения которого записаны фразами, поэтому карточка выводит ровно те, что сработали на этой таблице, а в статье можно сказать, что было принято на веру. Порядок выражает предпочтение там, где строка подходит под несколько рецептов: рецепт «до–после с контролем» идёт раньше сводок двух групп, поскольку его ячейки — надмножество, а строку с заполненным исходным уровнем извлекали ради изменения; сводки групп идут раньше статистик критериев, поскольку t вычислено как раз по сводкам; стандартная ошибка идёт раньше интервала, интервал — раньше p, и каждый следующий теряет больше информации. Строка, подходящая под несколько рецептов, читается по первому, остальные предлагаются в панели «Строки исследований», а выбор запоминается по номеру наблюдения, так что фильтр или повторное определение его не сбрасывают. Рецепта для F нет: metafor 5.0-1 объявляет у escalc аргумент fi, но ветка SMD читает только di, ti и pi, поэтому F из сравнения двух групп вводится как t = √F.
Среднее и SD группы берутся прежде всего из сообщённой пары, а иначе выводятся из стандартной ошибки, интервала или пятичисловой сводки. Формулы взяты из Кокрейновского руководства (Cochrane Handbook). SD = SE × √n и SD = √n × (верхняя граница − нижняя граница) / (2t), где t берётся с n − 1 степенями свободы на опубликованном уровне (Руководство, §6.5.2.2–3), — простая арифметика. Интервал читается как t-интервал, потому что именно таков интервал для среднего в статье, а z-интервал или бутстрэп-интервал восстанавливает другое SD, о чём и говорит блок допущений на карточке. Пятичисловые варианты проходят через conv.fivenum пакета metafor с dist = "norm" и его критерием асимметрии, как сказано в заметках к таблице исследований. Преобразование, читающее строгое подмножество ячеек другого, — запасной вариант для группы, у которой остальных ячеек нет, а не конкурирующее прочтение: пятичисловая сводка не может оказаться неоднозначной между самой собой, своими квартилями и своим размахом. А вот среднее рядом и с SD, и с SE — настоящая ничья, и для неё появляется переключатель.
Готовый интервал читается на уровне, названном пользователем, а чтение в естественной шкале предлагается только для формата с границами. Опубликованный интервал не хранит уровня, на котором он вычислен, поэтому модуль спрашивает о нём (по умолчанию 95%) и выводит дисперсию как квадрат отношения полуширины к квантилю нормального распределения на этом уровне. Ошибка в уровне на одну ступень масштабирует каждую стандартную ошибку в отношение квантилей (1.96 против 1.645 или 2.576), поэтому карточка сообщает уровень обратно. Отношение, корреляцию или долю, приведённые как есть вместе с границами, можно перевести в шкалу анализа ещё до вывода дисперсии — так делает аргумент transf функции conv.wald в рецептах отношения и корреляции смешанного формата. С дисперсией или стандартной ошибкой в естественной шкале так не выйдет без дельта-метода на оценке, которой модулю пришлось бы довериться, поэтому эти два формата читают значения только в шкале анализа и сообщают об этом. Столбец с заголовком or, rr, hr или irr сам говорит, что в нём записано, поэтому мера и чтение в естественной шкале следуют за ним один раз на каждый увиденный заголовок, а выбор, сделанный после этого, сохраняется.
Опции
Таблица исследований читается при попарной обработке пропусков, и при любом другом методе модуль предупреждает. Пустая ячейка здесь означает, что статья не сообщила такую статистику, а не что у наблюдения потерялось значение. Импутация заполняет пустые ячейки по столбцу, выдумывая статистики, которых не сообщало ни одно исследование, а построчное удаление убирает каждую строку с пустой ячейкой, хотя в таблице исследований такие ячейки ожидаемы. Ни то ни другое больше нигде не видно: настройка глобальная и применяется до того, как модуль что-либо прочитает, и каждое прочитанное значение уже прошло импутацию и удаление, так что уведомления под «Данными исследований» — единственное предупреждение, которое получает таблица.
Таблица с двойным нулём при мере-отношении по умолчанию исключается, при разности рисков сохраняется, а при методе Пето сохранить её нельзя. Таблица, в обеих группах которой нет событий или есть только события, ничего не говорит об отношении, а если сохранить её с поправкой на непрерывность, в объединение войдёт отношение ровно 1 с большой дисперсией, то есть смещение к нулевому эффекту, продиктованное поправкой, а не данными. Кокрейновское руководство Хиггинса и др. (Higgins et al., 2019, §10.4.4) и собственные функции metafor rma.mh и rma.peto такую таблицу исключают, сохраняет её только escalc. Два нулевых риска — утверждение об их разности, поэтому при RD таблица по умолчанию сохраняется. Одношаговая оценка Пето вычисляется по нескорректированным ячейкам (to = "none"), у такой таблицы тогда V = 0, и она превращается в NA при любом выборе, поэтому выбор здесь закреплён. Значение по умолчанию — свойство меры, и при каждой смене меры список к нему возвращается. Ноль в одной ячейке — другое дело: по умолчанию escalc добавляет 0.5 ко всем ячейкам такой таблицы (add = 1/2, to = "only0") при любой мере для таблиц 2×2, кроме меры Пето, а карточка подсчитывает скорректированные таблицы.
Строки исследования сводятся в одну составную оценку функцией aggregate пакета metafor при принятой внутриисследовательской корреляции, а иерархия — это модель CHE с кластерно-робастным выводом CR2. Составная оценка — комбинация строк исследования, взвешенная обратно дисперсии, при ковариационной структуре составной симметрии с ρ, поэтому каждое исследование учитывается один раз, а все последующие блоки без изменений работают на составных оценках. У модератора, меняющегося внутри исследования, нет значения для составной оценки, поэтому он исключается, чтобы свёртка не выбирала значение по порядку строк. Иерархия — модель коррелированных иерархических эффектов Пустейовски и Типтон (Pustejovsky and Tipton, 2022): vcalc заполняет блок V каждого исследования при ρ, rma.mv вводит случайный эффект для исследования и для строки внутри него (компоненты дисперсии эта функция оценивает только методом REML), а robust с сэндвич-оценкой CR2 пакета clubSandwich по исследованиям проверяет каждую оценку t-критерием со степенями свободы Саттертуэйта по Типтон (Tipton, 2015), причём у каждой модели свои дробные df. Если их меньше четырёх, карточка предупреждает, что на t полагаться нельзя. Рабочая модель общего эффекта на той же V с тем же робастным выводом стоит там, где стоит модель с фиксированным эффектом, как предлагают Хеджес, Типтон и Джонсон (Hedges, Tipton and Johnson, 2010). Робастный вывод заменяет поправку Кнаппа — Хартунга и перестановочный критерий: у permutest нет метода для rma.mv, а поправка корректирует модель, которая считала строки независимыми. У критерия Бегга, trim-and-fill, модели отбора, мер влияния на уровне строк и диаграммы Божа нет формы для зависимых эффектов, поэтому они отключены. Регрессия Эггера, PET-PEESE и исключение по одному выполняются на иерархии. Составная оценка рекомендуется, если дублированных исследований немного, а основной исход один, иерархия — если многие исследования дают много строк, поскольку она использует всю информацию. Объединение каждой строки как исследования предлагается для того, чтобы увидеть наивный анализ, а не чтобы его публиковать.
Значения по умолчанию — ICC 0.05, корреляция до–после 0.5 и внутриисследовательская корреляция 0.8, каждое в области, допустимой для арифметики, и каждое действующее значение прогоняется по сетке. ICC и корреляция до–после — условные запасные значения для чисел, которые статьи сообщают редко, и единого источника у них нет. Внутриисследовательская корреляция 0.8 — соглашение литературы по робастной дисперсии, например у Таннер-Смит и Типтон (Tanner-Smith and Tipton, 2014). Корреляция до–после допускается от −1 до значений чуть меньше 1, поскольку ровно при 1 SD изменения равно нулю и escalc перекодирует строку в NA. Внутриисследовательская корреляция допускается от 0 до значений чуть меньше 1: отрицательное ρ сделало бы строки исследования вместе точнее, чем независимые, при ρ меньше −1/(k − 1) блок V исследования не положительно определён, а ровно при 1 он вырожден. Введённое значение или собственное значение строки вне области — вообще не значение. Оно заменяется так же, как пустая ячейка, и в сводке считается отдельно. Поскольку ни одно из этих чисел не было сообщено, каждое действующее значение прогоняется по сетке: для ICC — 0.01, 0.05, 0.1 и 0.2, для обеих корреляций — 0.2, 0.5 и 0.8, и к ним добавляется значение по умолчанию текущего запуска, чтобы одна точка совпадала с основным результатом. Меняется только значение по умолчанию: строка с собственным значением сохраняет его во всех точках, так что прогон проверяет принятое и никогда — известное.
По умолчанию τ² оценивается методом REML и включена поправка Кнаппа — Хартунга. Модель с фиксированным эффектом остаётся на z, а интервал предсказания строится по t с k − 2 степенями свободы. REML рекомендуют сравнительные исследования методов оценки — Вероники и др. (Veroniki et al., 2016), Лэнган и др. (Langan et al., 2019): он приблизительно несмещён и устойчив во всём диапазоне τ². Метод ДерСимониан — Лэрд предлагается потому, что им пользовалось большинство опубликованных метаанализов и воспроизвести такой анализ — законная потребность, хотя при большой гетерогенности он недооценивает τ². Методы Пауле — Манделя и Сидика — Йонкмана — два других метода, которые выполняет rma пакета metafor. Ни у одного из этих трёх нет функции правдоподобия, поэтому при них сравнение модели модераторов по отношению правдоподобий (REML, заново подогнанный методом ML для этого критерия) не выполняется: на anova() для такой подгонки metafor отвечает предупреждением и некорректным критерием, а не ошибкой. Поправка Кнаппа — Хартунга (test = "knha") проверяет оценку случайных эффектов и каждый коэффициент модератора по t-распределению со скорректированной стандартной ошибкой, и при малом числе исследований частота ошибок остаётся около номинальной там, где z-критерий её не удерживает. К модели с фиксированным эффектом поправка не применяется: metafor предупреждает, что она для этого не предназначена. Интервал предсказания строится по t с k − 2 степенями свободы, как рекомендуют Хиггинс, Томпсон и Шпигельхальтер (Higgins, Thompson and Spiegelhalter, 2009) и Райли, Хиггинс и Дикс (Riley, Higgins and Deeks, 2011), в том числе при поправке Кнаппа — Хартунга, где metafor по умолчанию взял бы k − 1.
Модераторы
Модели модераторов нужно около десяти исследований на коэффициент, категориальный модератор стоит L − 1 коэффициентов, и строка бюджета показывает эту цену по мере выбора. Правило десяти исследований на коэффициент заимствовано из простой регрессии, где в знаменателе стоят параметры предикторов: свободный член в их число не входит, а фактор с L уровнями стоит своих L − 1 контрастов. Отметка четырёхуровневого модератора сдвигает счёт на три, и правило усваивается в тот момент, когда оно чего-то стоит, а не из текста рядом со списком. Бюджет считается по объединяемым строкам с непустым значением модератора, а в режимах составной оценки и иерархии — по исследованиям, в которые эти строки сворачиваются, поскольку там коэффициент расходуется на исследование. При скрининге нескольких модераторов ограничение задаёт самая тесная отдельная модель, а не общая, и строка её называет. Категориальный модератор, принимающий на объединяемых строках один уровень, коэффициента не добавляет и в бюджете не учитывается: деление на его ноль дало бы бесконечное отношение, которое читалось бы как полный запас.
Опорный уровень по умолчанию — самая крупная подгруппа, а непрерывный модератор по умолчанию центрируется на среднем. Самая крупная подгруппа — самая устойчивая база для сравнения, и её выбор попутно выявляет малочисленные уровни. Выбранный уровень, отсутствующий среди строк, на которых модель действительно подгоняется, обрушил бы relevel ещё до защиты от ошибок, поэтому в таком случае тоже берётся уровень по умолчанию. Свободный член без центрирования — эффект при нулевом значении ковариаты, а эта величина редко кого-нибудь интересует. Центрирование переносит свободный член к среднему исследованию, а сетка пузырьковой диаграммы сдвигается обратно в собственную шкалу модератора. На скрининг не влияет ни то ни другое: он не выводит коэффициентов, а обе настройки сдвигают лишь свободный член, которого там нет.
Подгруппа из менее чем трёх исследований не получает собственного τ² и не входит в Q между подгруппами, для строки скрининга нужны три исследования, а модератор, постоянный на моделируемых строках, исключается и называется. На одном исследовании rma возвращает τ², равное ровно нулю, хотя ничего не оценивало, а на двух — дисперсию, которой не стоит доверять. Поэтому уровень с менее чем тремя исследованиями (при моделировании иерархии — кластерами) подгоняется ради своей оценки, но его τ² и I² не выводятся, и уровень не входит в Q по оценкам подгрупп. Этот Q — критерий Кокрена по отдельным подгонкам, то есть rma с фиксированным эффектом по их оценкам и стандартным ошибкам. Этот критерий не совпадает с общим критерием модели с объединённым τ², которой отдельные τ² по подгруппам уже не соответствуют. Модель скрининга с одним модератором тратит два коэффициента, так что при менее чем трёх исследованиях у строки не остаётся остатка для проверки, а модератор, отсутствующий во всех объединённых исследованиях, дошёл бы до R пустым столбцом и обрушил бы весь скрининг, а не только свою строку. Модератору, постоянному на моделируемых строках, нечего объяснять, и R об этом не скажет: фактор с одним уровнем обрушивает подгонку, а постоянную ковариату metafor отбрасывает, оставляя модель только со свободным членом, чей общий критерий — проверка среднего, выданная так, будто модель подогнана. Поэтому проверка выполняется на том, что доходит до R: модератор называется постоянным, а модель подгоняется на остальных.
Перестановочный критерий перебирает все различные перестановки, если настройка запрашивает не меньше, и его p не бывает меньше единицы, делённой на число выполненных перетасовок. Функция permutest пакета metafor сравнивает подгонку с перетасованными значениями самого модератора, а не с теоретическим распределением, и именно такой вывод остаётся верным при том k, какое обычно бывает в метаанализе. Если различных перестановок не больше iter, она выполняет их все, поэтому карточка сообщает число выполненных перетасовок, а не запрошенных, и наименьшее возможное p равно единице, делённой на это число. При скрининге это переключение происходит отдельно для каждого модератора, поскольку у каждой строки своё k. Число повторов задаёт глобальная настройка повторов перестановок, а при заданном зерне перетасовка инициализируется от него, так что повторный запуск воспроизводит p.
Чтение результатов
Две модели сведены в одну таблицу под одним заголовком, а интервалы для τ², I² и H² — интервалы Q-профиля из одного вызова confint. Две объединённые оценки, стоящие рядом без всякой связи, читаются как одна оценка, посчитанная двумя способами, — это самое частое неверное прочтение метаанализа. Поэтому карточка называет модель в первом столбце одной таблицы и даёт ссылки на обе интерпретации, а не выводит две карточки. Интервал для τ² — интервал Q-профиля Фихтбауэра (Viechtbauer, 2007), покрытие которого сохраняется там, где интервал Вальда для дисперсии его теряет, а границы I² и H² — это границы τ², пересчитанные через определяющие их тождества, так что три интервала говорят одно и то же. Любой из них может не вычислиться на подгонке, которая сама сошлась, поэтому неудавшийся интервал оставляет ячейку пустой, а не обрушивает весь расчёт. При моделировании иерархии компоненты дисперсии выводятся без интервалов, а два I² — это многоуровневые I² Чеунга (Cheung, 2014): каждый компонент, делённый на сумму обоих компонентов и типичной выборочной дисперсии по Хиггинсу и Томпсону (Higgins and Thompson, 2002).
Критерии Эггера и Бегга выполняются начиная с трёх исследований, а при менее чем десяти — с предупреждением. Форма Эггера по объёму выборки добавляется, когда каждая строка даёт g Хеджеса с обоими размерами групп, критерий Питерса — когда каждая строка получена из таблицы 2×2, и стандартная форма остаётся рядом с ними. Регрессии нужна хотя бы одна остаточная степень свободы, а Стерн и др. (Sterne et al., 2011) рекомендуют не читать ни один из критериев при менее чем десяти исследованиях, поэтому блок работает начиная с трёх исследований, а при менее чем десяти предупреждает, что незначимый результат не доказывает симметрии. В регрессии Эггера эффекты регрессируют на свои стандартные ошибки, а у двух мер стандартная ошибка сама зависит от оценки: дисперсия g Хеджеса содержит g², дисперсия логарифма отношения шансов — числа событий. Поэтому при верной нулевой гипотезе стандартная форма слишком часто находит асимметрию. Если каждая строка — SMD с обоими размерами групп, та же регрессия со смешанными эффектами выполняется ещё раз на — стандартную ошибку, которая была бы у меры при нулевом эффекте и зависит только от размеров групп, как предлагают Пустейовски и Роджерс (Pustejovsky and Rodgers, 2019). Если в каждой строке есть события и общий объём, критерий Питерса и др. (Peters et al., 2006) регрессирует эффекты на 1/n со взвешиванием по событиям и не-событиям. Стандартная форма остаётся в таблице, чтобы здесь было и то число, которое выдаёт другой пакет, а примечание говорит, какую строку читать. Одна лишь воронка побуждает читателя увидеть асимметрию, а критерии расходятся достаточно часто, чтобы показ только одного из них был выбором, поэтому критерии Эггера и Бегга всегда выполняются вместе. Контуры значимости Питерса и др. (Peters et al., 2008) строятся вокруг нуля, поэтому рисуются только там, где у меры нулевой эффект в нуле, — не для доли и не для среднего одной группы.
PET — это свободный член регрессии Эггера, проверяемый односторонним критерием в сторону объединённой оценки на уровне 0.05, а PEESE заменяет его, если этот критерий отвергает ноль. Свободный член регрессии на стандартную ошибку — эффект, предсказанный при нулевой стандартной ошибке, то есть предельная оценка регрессии. Стэнли и Дукулиагос (Stanley and Doucouliagos, 2014) принимают его за скорректированную оценку (PET), если он не отвергает ноль. В противном случае PET перекорректирует существующий эффект, и его заменяет свободный член той же регрессии на дисперсию (PEESE). Критерий односторонний в сторону объединённой оценки, потому что вопрос в том, сохраняется ли эффект в наблюдаемом направлении, а уровень 0.05 — часть самого правила. Подгонки со смешанными эффектами (регрессия Эггера, её форма по объёму выборки, PET, PEESE и повторная подгонка trim-and-fill) используют критерий Кнаппа — Хартунга и уровень объединённой модели, так что каждая их статистика — t с k − 2 степенями свободы. У модели отбора формы с поправкой Кнаппа — Хартунга нет, и она остаётся на z, а статистика Питерса — t обычной взвешенной регрессии по методу наименьших квадратов.
Trim-and-fill выполняет оценку L0 пакета metafor на модели случайных эффектов и возвращает вменённые исследования. Модель отбора — ступенчатая функция с одной ступенью при p = 0.025, односторонняя в сторону объединённой оценки. trimfill оценивает, сколько исследований недостаёт на менее заполненной стороне воронки, оценкой L0 Дюваля и Твиди (Duval and Tweedie, 2000), принятой по умолчанию, на стороне, определённой регрессионным критерием, и заново подгоняет дополненный набор с уровнем и критерием объединённой модели. Вменённые исследования возвращаются вместе со скорректированной оценкой, чтобы воронка показывала, что именно было достроено, а не только то, что изменилось. Примечание называет метод оценки τ², использованный в повторной подгонке. Модель отбора — ступенчатая функция Вевеа и Хеджеса (Vevea and Hedges, 1995) с одной ступенью при одностороннем p = 0.025, что соответствует двустороннему уровню 0.05, на котором принимаются решения о публикации. Модель оценивает δ — относительную вероятность того, что исследование за ступенью было опубликовано. Сторона берётся по объединённой оценке, поскольку selmodel по умолчанию предполагает положительный эффект и при защитном эффекте оставляет значимый интервал пустым. Интервал без единого исследования оставляет δ неидентифицируемым: selmodel всё равно возвращает результат, но с δ на верхней границе и предупреждением, поэтому карточка читает предупреждение как признак того, что модель не удалась, и выводит числа исследований без подгонки.
Правило влияния metafor помечает исследование, если DFFITS по модулю больше 3√(p ⁄ (k − p)), расстояние Кука больше медианы χ² с p степенями свободы, рычаг больше 3p ⁄ k или DFBETAS по модулю больше 1. Блок работает начиная с трёх исследований, координаты Божа вычисляются напрямую, а не берутся из baujat(). Это собственные пороги influence.rma.uni, предложенные Фихтбауэром и Чеунгом (Viechtbauer and Cheung, 2010). Пороги вычисляются по k и p подгонки и выводятся в примечании, чтобы пометку можно было с ними сверить, а своих порогов карточка не вводит. Подгонке с исключением одного исследования нужно, чтобы осталось что объединять: при двух исследованиях повторная подгонка сводится к одному исследованию без гетерогенности и без интервала, который стоило бы читать, поэтому блок работает начиная с трёх. Обе группы расчётов подгоняют модель заново по разу на исследование, поэтому при большом числе исследований этот блок самый медленный. Две координаты Божа (квадрат стандартизованного остатка каждого исследования и квадрат сдвига объединённой оценки без него, делённый на квадрат стандартной ошибки повторной подгонки) вычисляются по подгонкам с исключением по одному, а не берутся из baujat(), которая выдаёт их лишь как побочный результат рисования: рисование открыло бы графическое устройство в движке, общем для всего приложения. С точностью до машинной погрешности это те же величины. Любая из двух групп расчётов может не выполниться на подгонке, которая сама сошлась, поэтому каждая работает независимо, а примечание называет ту, что не выполнилась.
При моделировании иерархии каждое исследование исключается сразу со всеми строками, а его расстояние Кука берётся из той же повторной подгонки, начатой с компонентов дисперсии полной модели. Результат при зависимых эффектах может определить только исследование как целое, и исключение одной из его строк не сдвигает ничего, чего не сдвинуло бы исключение всего исследования, поэтому меры на уровне строк, построчное исключение по одному и диаграмма Божа отключены. Каждая повторная подгонка — это rma.mv на оставшихся исследованиях, начатая с σ² полной модели, так же как начинает свою подгонку cooks.distance(cluster = study). Поэтому строка исключения по одному и расстояние Кука исследования (квадрат сдвига оценки, делённый на её дисперсию в полной модели) получаются из одной повторной подгонки на исследование, а не из двух, и расстояние с точностью до машинной погрешности совпадает с результатом этого вызова. Интервал каждой повторной подгонки — тот же кластерно-робастный, что и у объединённой оценки, а порог — медиана χ² с p степенями свободы, как и для независимых строк.