Metafor 패키지 : 바이어스 및 감도 진단


9

여러 결과가 포함 된 일부 기사를 포함하는 다단계 메타 분석을 수행하고 있습니다. 따라서 rma.mv()함수를 사용하고 있습니다. 예제 코드 :

test.main = rma.mv(yi,vi,random = ~1|ID, data = data) 

두 가지 질문이 있습니다.

  1. 나는 이전에 읽어 쿼리를 사용하는 경우 것으로 rma.mv(), ranktest()깔때기 플롯 비대칭의 신뢰할 수있는 시험이 아니다. 그러나 표본 분산이 원래 모델에 중재자로 추가 된 경우이 모델은 Egger의 검정과 유사합니다.

    test.egger = rma.mv(yi,vi, mod = vi, random = ~1|ID, data = data)
    

    이 코드가 해당 지침에 대한 올바른 해석입니까? 또한 깔때기 플롯도 rma.mv()모델이 포함 된 도구로 쓸모가 없습니까?

  2. 모델 결과의 민감도를 평가하기 위해 협력 하지도 leave1out()않습니다 . R에 대한 전반적인 이해가 필요없는 모델에 현재 다른 감도 분석 도구를 사용할 수 있습니까?trimfill()rma.mv()rma.mv()

답변:


8

1 : 예, vi중재자로 추가 하는 것은 실제로 Egger의 테스트를 더 복잡한 모델로 확장하는 논리적 방법입니다.

실제로 표본 분산을 중재자로 사용하는 것은 "퍼널 플롯 비대칭에 대한 회귀 테스트"를 수행 할 수있는 가능성 중 하나 일뿐입니다. 다른 사람들은 표본 추출 분산의 역수 또는 표준 오차 (샘플링 분산의 제곱근) 또는 그 역수 또는 총 표본 크기 (또는 일부 기능)를 중재자로 사용하도록 제안했습니다. 어떤 예측 변수가 "최상의"선택인지는 확실하지 않습니다 (이는 메타 분석에 사용하는 결과 측정에 따라 달라질 수 있음). 예를 들어, 일부 측정의 경우, 표본 분산을 근사 / 추정하는 데 사용하는 방정식은 실제로 관측 된 결과의 함수이며, 이는 출판 편향이없는 경우에도 둘 사이의 관계를 자동으로 생성합니다 (또는 "작은 연구 편향" 또는 우리가 부르고 싶은 것). 이 경우

그러나 요점은 다음과 같습니다. 그렇습니다. 모델에 적절한 중재자를 추가하여 더 복잡한 모델로 작업 할 때 회귀 테스트를 쉽게 적용 할 수 있습니다.

데이터의 기초가되는 다단계 / 다변량 구조가있을 때 깔때기 그림이 유용한 지 여부는 논란의 여지가 있습니다. 예를 들어, 통계적 의존성 (적절한 다단계 / 다변량 모델을 사용할 때 설명되는)으로 인해 점 집합이 함께 모일 수 있지만 깔때기 그림에서 점은 다음과 같습니다. (다른 색상이나 기호를 사용하여 추가 단계를 수행하지 않는 한) 대부분의 사람들 (내 자신을 포함)이 가장 간단한 경우에도 깔때기 그림을 해석하는 데 능숙하지 않기 때문에 깔때기 그림의 해석이 더 어려워집니다. 사례 (그것을 입증하는 경험적 연구가 있습니다!).

2 : 예, 많은 포스트 모델 피팅 함수는 현재 rma.mv모델 객체 에서 작동하지 않습니다 . 나는 이것을 구현하는 데 익숙하지 않았 으며이 중 일부는 실제로 약간의 사고가 필요합니다. 예를 들어, leave1out()한 번에 하나의 연구를 제거합니다. 단 변량 상황에서 이는 한 번에 관찰 된 각 결과를 제거하는 것과 동일하지만 다단계 / 다변량 데이터는 어떻습니까? 또한 한 번에 관찰 된 각 결과를 제거 하시겠습니까? 아니면 포인트 세트를 제거 하시겠습니까? 아니면 다른 옵션을 사용할 수 있습니까? 다듬기 및 채우기와 관련하여 (이 방법이 실제로 얼마나 유용한 지 남겨두고) 다단계 / 다변량 데이터로 방법을 확장하는 것은 전체 논문을 쓸 가치가 있습니다.

따라서 민감도 분석을 수행하는 것이 좋지만 현재로서는 수동으로이 작업을 수행해야합니다. 탈퇴 분석은 간단한 for-loop로 쉽게 수행 할 수 있으며 "하나"가 무엇인지 (예 : 관찰 된 각 결과, 각 군집 / 연구)에 대해 신중하게 생각합니다. 회귀 테스트를 수행하고 지금은 트림 앤 필을 그대로 둘 수 있습니다. 를 통해 표준화 잔차를 사용할 수 rstandard()있으므로 잠재적 이상치에 대한 데이터를 검사 할 수 있습니다. hatvalues()(대각선 또는 전체 모자 행렬을 따라 레버 만 사용)을 통해 모자 값을 얻을 수 있습니다 . 결과는 어느 점이 결과에 큰 영향을 미치는지를 나타냅니다. 이러한 맥락에서 또 다른 정말 유용한 측정은 쿡의 거리 당신을 통해 얻을 수 cooks.distance()에 대한 또한, rma.mv객체.


2
와! 신중하고 철저한 답변에 감사드립니다. 제안한대로 for 루프 코드를 사용하는 방법을 알아 내려고 노력할 것입니다.
chabeck 2016 년

1
이 정보가 도움이되었다 니 다행입니다. 를 포함한 다양한 모델 피팅 기능 rma.mv()subset쉽게 (세트)를 드롭하기위한 루프와 함께 사용할 수있는 인수는 결과를 관찰했다.
Wolfgang

5
귀하의 제안의 결과물 인 Wolfgang은 여기에서 볼 수 있습니다 : aobpla.oxfordjournals.org/content/7/… 다시 한번 감사드립니다!
chabeck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.