로지스틱 회귀와 t- 검정의 힘은 어떻게 비교됩니까?


18

로지스틱 회귀와 t- 검정의 검정력은 동일합니까? 그렇다면, 그들은 "데이터 밀도 동등성"이어야합니다. 즉, 동일한 수의 기본 관측치가 고정 된 알파 0.05가 주어지면 동일한 검정력을 얻습니다. 두 가지 경우를 고려하십시오.

  1. [parametric t-test] : 이항 관측에서 30 개의 드로우가 만들어지고 결과 값이 평균화됩니다. 이것은 그룹 A (이항 Pr이 .70의 발생)에 대해 30 번 수행되고 그룹 B에 대해 (이항 Pr이 .75의 발생)에 대해 30 번 수행됩니다. 이항 분포에서 1,800 개의 추첨을 요약 한 그룹당 30 개의 평균을 산출합니다. 평균을 비교하기 위해 58df t- 검정을 수행합니다.
  2. [로지스틱 회귀] : 로지스틱 회귀는 그룹 멤버쉽과 1,800 개의 각 추첨을 나타내는 더미 코딩 된 경사로 수행됩니다.

내 질문에는 두 부분이 있습니다.

  1. 알파가 0.05로 설정되면 이러한 방법론의 힘이 동일하거나 다릅니 까? 왜? 그것을 어떻게 증명할 수 있습니까?
  2. 질문 1에 대한 답은 t- 검정으로 들어가는 표본 크기, t- 검정에서 각 그룹의 표본 크기, 기본 이항 확률 또는 다른 요인에 민감합니까? 그렇다면 전력이 실제로 다르다는 것을 어떻게 알 수 있습니까? 또는 시뮬레이션을 사용하여 문제를 해결하는 해결 된 R 코드를 제공하십시오.

답변:


19

올바르게 계산하면 로지스틱 회귀는 무증상 적으로 t- 검정과 동일한 검정력을 갖습니다. 이를 확인하려면 로그 우도를 기록하고 전체 최대치에서 Hessian의 기대치를 계산하십시오 (음수는 ML 솔루션의 분산-공분산 매트릭스를 추정합니다). 일반적인 로지스틱 매개 변수화에 신경 쓰지 마십시오. 문제의 두 가지 확률로 매개 변수화하는 것이 더 간단합니다. 세부 사항은 로지스틱 회귀 계수의 유의성을 테스트하는 방법에 따라 다릅니다 (몇 가지 방법이 있음).

ML 추정치에 대한 카이-제곱 이론은 로그 우도에 대한 정규 근사값을 기반으로하고 t- 검정은 비율 분포에 대한 정규 근사값을 기반으로하기 때문에 이러한 검정의 유사한 검정력을 갖는 것은 그리 놀라운 일이 아닙니다. 문제의 요점은 두 방법 모두 두 비율의 동일한 추정치이며 두 추정치의 표준 오차는 동일하다는 것입니다.


실제 분석이 더 설득력이있을 수 있습니다. 주어진 그룹 (A 또는 B)의 값에 대한 일반적인 용어를 채택합시다.

  • p 는 1의 확률입니다.
  • n 은 각 추첨 세트의 크기입니다.
  • m 은 추첨 세트 수입니다.
  • N=mn 은 데이터의 양입니다.
  • 0 1 j th i thkij ( 또는 과 동일 )는 결과 값으로 추첨 세트입니다.01jthith
  • I 번째ki 는 추첨 세트의 총 개수입니다 .ith
  • k 는 총 1입니다.

로지스틱 회귀 는 본질적으로 의 ML 추정량입니다 . 로그는p

log(L)=klog(p)+(Nk)log(1p).

매개 변수 대한 파생어 는p

log(L)p=kpNk1p and

2log(L)p2=kp2+Nk(1p)2.

첫 번째를 0으로 설정하면 ML 추정치 산출되고 두 번째 표현식의 역수에 연결하면 분산 , 이는 표준 오차의 제곱입니다. P (1 - P )/Np^=k/Np^(1p^)/N

t 통계치는 무 세트에 의하여 그룹핑 된 상기 데이터에 기초 추정기로부터 얻어진다; 즉, 평균의 차이 (하나는 그룹 A에서, 다른 하나는 그룹 B에서)를 그 차이의 표준 오차로 나눈 값으로, 이는 평균의 표준 편차로부터 얻어진다. 주어진 그룹에 대한 평균 및 표준 편차를 살펴 보겠습니다. 평균은 이며 ML 추정기 동일합니다 . 문제의 표준 편차는 인발 수단표준 편차입니다. 즉, 집합의 표준 편차입니다 . 여기에 문제의 요점이 있으므로 몇 가지 가능성을 살펴 보겠습니다.P는 K I / Nk/Np^ki/n

  1. 데이터가 드로우로 그룹화되지 않았다고 가정하십시오 (즉, 및 . 연신 수단이다. 그들의 표본 분산은 동일 번 . 이로부터 표준 오류는 의 요소를 제외하고 ML 표준 오류와 동일하며, 때 본질적으로 입니다. 따라서이 작은 차이를 제외하고 로지스틱 회귀에 기반한 모든 테스트는 t- 테스트와 동일하며 본질적으로 동일한 힘을 달성 할 것입니다.m = N k는 i 개의 N / ( N - 1 ) P ( 1 - P를 ) n=1m=NkiN/(N1)p^(1p^) 1N=1800N/(N1)1N=1800

  2. 데이터가 그룹화 될 때 의 (true) 분산 은 과 같습니다. 통계 는 각각 분산이 인 Bernoulli ( ) 변수 의 합을 나타 내기 때문 입니다. 따라서 이러한 값 의 평균의 예상 표준 오차는 이전과 마찬가지로 제곱근입니다 .p ( 1 - p ) / n k i n p p ( 1 - p ) m p ( 1 - p ) / n / m = p ( 1 - p ) / Nki/np(1p)/nkinpp(1p)mp(1p)/n/m=p(1p)/N

숫자 2는 표본 분산의 조정으로 인한 작은 영향을 제외하고 , 검정력이 그림이 어떻게 할당되는지 (즉, 과 이 따라 변하는 방식에 따라) 눈에 변하지 않아야 함을 나타냅니다. (각 그룹 내에서 극소수의 무승부 세트를 사용하는 것이 어리석지 않은 한).n m n = Nmnmn=N

(필수 로지스틱 회귀)을 포함하는 에서 (각각 10,000 회 반복) 을 비교하기위한 제한된 시뮬레이션 ; ; 그리고 (샘플 분산 조정 최대화)이이를 나타냅니다. 처음 두 경우 의 검정력 ( , 단측)은 0.59 인 반면 세 번째 경우에는 조정 계수가 재료의 변화 (1798 또는 58 대신에 단지 2 개의 자유도가 있음)는 0.36으로 떨어집니다. 과 를 비교하는 또 다른 테스트p=0.70p=0.74m=900,n=1m=n=30m=2,n=450α=0.05p=0.50p=0.52 우리는 각각 0.22, 0.21, 0.15의 거듭 제곱을 제공합니다. 다시, 우리는 무승부로 그룹화하지 않는 것 (= 로지스틱 회귀)에서 30 개의 그룹으로 그룹화하는 것에서 두 그룹으로의 실질적인 감소로 약간의 감소 만 관찰합니다.

이 분석 의 도덕 은 다음과 같습니다.

  1. 당신은 잃게 많이 당신이 당신의 분할 때하지 않는 큰 번호로 데이터 값을 "무"의 상대적으로 작은 그룹.Nm
  2. 적은 수의 그룹을 사용하면 상당한 전력을 잃을 수 있습니다 ( 은 작고 은 그룹당 데이터 양이 큽니다).mn
  3. 데이터 값을 "드로우"로 그룹화하지 않는 것이 가장 좋습니다 . 로지스틱 회귀 및 t- 테스트를 포함한 모든 합리적인 테스트를 사용하여 그대로 분석하십시오.N

1
@suncoolsu 업데이트를 투표 할 수 없다는 것은 부끄러운
chl

2
@chl .. 동의합니다. (+2) :-)를주고 싶습니다. 실제로이 업데이트가 나올 때까지이 질문에 대해 깊이 생각해 본 적이 없습니다.
suncoolsu

평소와 같이 Bill Huber의 투어가 진행됩니다. 나는 t 테스트에 대한 검정력을 로지스틱 회귀와 비교하는 방법에 대해 의문을 제기했다. 그러나 공통점이 비율 테스트 작업에 두 가지 방법을 모두 적용하고있는 것 같습니다.
Michael R. Chernick

8

다음은 whuber 's answer 의 시뮬레이션을 보여주는 R 코드입니다 . 내 R 코드 개선에 대한 의견은 환영합니다.

N <- 900            # Total number data points
m <- 30;            # Size of draw per set
n <- 30;            # No of sets

p_null <- 0.70;     # Null hypothesis
p_alternate <- 0.74 # Alternate hypothesis
tot_iter <- 10000;

set.seed(1);        # Initialize random seed
null_rejected <- 0; # Set counter to 0
for (iter in 1:tot_iter)
{
    draws1 <- matrix(0,m,n);
    draws2 <- matrix(0,m,n);
    means1 <- matrix(0,m);
    means2 <- matrix(0,m);

    for (obs in 1:m)
    {
        draws1[obs,] <- rbinom(n,1,p_null);
        draws2[obs,] <- rbinom(n,1,p_alternate);

        means1[obs,] <- mean(draws1[obs,]);
        means2[obs,] <- mean(draws2[obs,]);
    }
    if (t.test(means1,means2,alternative="l")$p.value <= 0.05)
    {
        null_rejected <- null_rejected + 1; 
    }
}
power <- null_rejected / tot_iter

1
이것을 공유해 주셔서 감사합니다! (. 내가 그들을 주석 명확하게 모든 매개 변수 변수를 만들고 당신의 스타일처럼) 오늘 투표의 모든 아웃이야 :-( 내가 그것을 upvote에 기다려야 할 것이다, 그래서.
whuber

2
replicate()rbinom() k{*}apply()

@chl 감사합니다. 나는 R을 배우기 위해이 질문들을 사용하고 있습니다! 따라서 귀하와 같은 의견은 소중합니다.

@Skrikant LOL 난 그냥 추가했다 : "BTW 나는 당신이 R을 배우는 방식을 좋아합니다!"
chl

혼란 스러워요. 이것이 t.test의 힘만을 제공하지 않습니까?
russellpierce
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.