Interesuje mnie lepsze zrozumienie metody delta do aproksymacji standardowych błędów średnich efektów krańcowych modelu regresji, który obejmuje termin interakcji. Patrzyłem na powiązane pytania metodą delta, ale żadne nie dostarczyło tego, czego szukam.
Rozważ następujące przykładowe dane jako motywujący przykład:
set.seed(1)
x1 <- rnorm(100)
x2 <- rbinom(100,1,.5)
y <- x1 + x2 + x1*x2 + rnorm(100)
m <- lm(y ~ x1*x2)
Interesują mnie średnie efekty krańcowe (AME) x1
i x2
. Aby je obliczyć, po prostu wykonuję następujące czynności:
cf <- summary(m)$coef
me_x1 <- cf['x1',1] + cf['x1:x2',1]*x2 # MEs of x1 given x2
me_x2 <- cf['x2',1] + cf['x1:x2',1]*x1 # MEs of x2 given x1
mean(me_x1) # AME of x1
mean(me_x2) # AME of x2
Ale jak użyć metody delta do obliczenia standardowych błędów tych AME?
Mogę ręcznie obliczyć SE dla tej konkretnej interakcji:
v <- vcov(m)
sqrt(v['x1','x1'] + (mean(x2)^2)*v['x1:x2','x1:x2'] + 2*mean(x2)*v['x1','x1:x2'])
Ale nie rozumiem, jak używać metody delta.
Idealnie szukam wskazówek, jak myśleć (i kodować) metodę delta dla AME dowolnego modelu regresji arbitralnej. Na przykład to pytanie zawiera formułę dla SE dla określonego efektu interakcji, a ten dokument Matta Goldera zawiera formuły dla różnych modeli interaktywnych, ale chcę lepiej zrozumieć ogólną procedurę obliczania SE dla AME, a nie formułę dla SE dowolnego konkretnego lekarza orzecznika medycyny lotniczej.
Odpowiedzi:
Metoda delta mówi po prostu, że jeśli możesz reprezentować zmienną pomocniczą, możesz reprezentować ją jako funkcję normalnie rozmieszczonych zmiennych losowych, ta zmienna pomocnicza jest w przybliżeniu normalnie rozmieszczona z wariancją odpowiadającą, jak bardzo zmienna pomocnicza zmienia się względem normalnych zmiennych (EDYCJA: jak wskazał Alecos Papadopoulos, metodę delta można określić bardziej ogólnie, że nie wymaga ona asymptotycznej normalności). Najłatwiejszym sposobem na myślenie o tym jest rozwinięcie Taylora, w którym pierwszy składnik funkcji jest średnią, a wariancja pochodzi od warunków drugiego rzędu. W szczególności, jeśli jest funkcją parametru a jest spójnym, normalnie rozłożonym estymatorem dla tego parametru: β b g ( b ) ≈ g ( β ) + ∇ g ( β ) ′ ( b - β ) β b β √sol β b
W ogóle, jeśli chcesz to zrobić, można jawnie kod cokolwiek chcesz się jako funkcja wszystkich współczynników, a następnie użyć do podjęcia gradient liczbową (w przeciwnym razie trzeba by wykorzystanie algebry komputera) funkcji w odniesieniu do twoje parametry, według parametrów, które oszacowałeś. Następnie weź po prostu macierz wariancji-kowariancji i ten numeryczny gradient i podłącz ją do wzoru i voila! Metoda delta.sol
R
numDeriv
DODATEK: W tym konkretnym przypadku
R
kod będzie:Zauważ, że zawsze lepiej będzie uzyskać dokładny gradient zamiast gradientu numerycznego dla tego problemu, ponieważ dokładny gradient będzie miał mniej błędu obliczeniowego. Fakt, że jest liniowy, eliminuje ten problem, a dla bardziej skomplikowanych funkcji dokładny gradient może nie zawsze być dostępny.sol
źródło
mean(x2)
przy obliczaniu SE. Czy nie byłoby to tylko w przypadku efektu marginalnego? Moją intuicją byłoby to, że w przypadku AME musiałbym przeprowadzić SE dla każdej obserwacji, a następnie w jakiś sposób uśrednić ją.g
jako średnią efektów krańcowych dla każdego osobnika i prawdopodobnie użyć gradientu numerycznego, nie jestem pewien, czy wzięcie SE dla każdego byłoby całkiem takie samo.