Regresyonda doğrusallığı test etmenin zorluğu


21

In İstatistiksel Modelleme: İki Kültürün Leo Breiman yazıyor

Mevcut uygulamalı uygulama, uygunluk testleri ve artık analiz kullanarak uygun veri modelini kontrol etmektir. Bir noktada, birkaç yıl önce, kontrollü bir miktarda doğrusal olmayanlık ile yedi boyutta benzetilmiş bir regresyon problemi kurdum. Standart uygunluk testleri, doğrusal olmayan aşırı olmadıkça doğrusallığı reddetmedi.

Breiman, simülasyonunun ayrıntılarını vermez. Gözlemine teorik olarak gerekçe söylediği bir makaleye atıfta bulunur, ancak makale yayınlanmamıştır.

Brieman'ın iddiasını desteklemek için yayınlanmış bir simülasyon sonucunu veya teorik bir makaleyi gören oldu mu?


1
Aşırı yargılamak zordur, her işlev bir aralıkta doğrusal yaklaşır; Taylor Serisi ayrışmasından bildiğimiz gibi. Neden Burnham ve Anderson'un model seçimine ilişkin bilgi kriteri yaklaşımı bu soruna iyi hizmet etmiyor?
Patrick McCann

Yanıtlar:


11

Breiman'ın tanımına cevap verecek ve sadece açık olan bir simülasyon yarattım: sonuç, bağlama ve "aşırı" ile ne kastedildiğine bağlıdır.

Çok fazla şey söylenebilir, ancak Rilgilenen okuyucuların kendi araştırmalarında kullanmaları için kolayca değiştirilmiş kodlar aracılığıyla yapılan bir örnekle sınırlamama izin verin . Bu kod, yaklaşık olarak dikgen (yaklaşık olarak çoklu-doğrusallık problemlerine girmememiz için) yaklaşık olarak homojen dağılmış bağımsız değerlerden oluşan bir tasarım matrisi kurarak başlar. İlk iki değişken arasında tek bir kuadratik (yani doğrusal olmayan) bir etkileşimi hesaplar: bu, üzerinde çalışılabilecek birçok "doğrusal olmayan" türden yalnızca biridir, ancak en azından ortak, iyi anlaşılmış bir durumdur. Sonra katsayılar karşılaştırılabilir olacak şekilde her şeyi standartlaştırır:

set.seed(41)
p <- 7                                            # Dimensions
n <- 2^p                                          # Observations
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
x <- x + runif(n*p, min=-1, max=1)
x <- cbind(x, x.12 = x[,1]*x[,2])                 # The nonlinear part
x <- apply(x, 2, function(y) (y - mean(y))/sd(y)) # Standardization

Temel OLS modeli için (doğrusal olmayan), bazı katsayıları ve artık hatanın standart sapmasını belirtmeliyiz. İşte bir dizi birim katsayı ve karşılaştırılabilir bir SD:

beta <- rep(c(1,-1), p)[1:p]
sd <- 1

Durumu göstermek için, işte simülasyonun kodlanmış bir yinelemesi. Bağımlı değişkeni üretir, değerlerini özetler, tüm değişkenlerin tam korelasyon matrisini (etkileşim dahil) görüntüler ve bir scatterplot matrisini görüntüler. Sonra OLS regresyonunu gerçekleştirir. Aşağıda, etkileşim katsayısı diğer katsayıların herhangi birinden büyük ölçüde daha küçüktür (hepsi veya eşittir ), bu nedenle "aşırı" olarak adlandırmak zor olacaktır:1/41-1

gamma = 1/4          # The standardized interaction term
df <- data.frame(x)
df$y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
summary(df)
cor(df)*100
plot(df, lower.panel=function(x,y) lines(lowess(y~x)), 
     upper.panel=function(x,y) points(x,y, pch=".", cex=4))
summary(lm(df$y ~ x))

Buradaki tüm çıktıları beklemek yerine , komutun çıktısını kullanarak şu verilere bakalımplot :

SPM

Alttaki üçgendeki alçak izler, esasen etkileşim ( x.12) ile bağımlı değişken ( y) arasındaki doğrusal ilişkiyi ve diğer değişkenler arasındaki mütevazı doğrusal ilişkiyi göstermektedir y. OLS sonuçları bunu doğrular; Etkileşim neredeyse hiç önemli değil:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.0263     0.0828    0.32    0.751    
xVar1         0.9947     0.0833   11.94   <2e-16 ***
xVar2        -0.8713     0.0842  -10.35   <2e-16 ***
xVar3         1.0709     0.0836   12.81   <2e-16 ***
xVar4        -1.0007     0.0840  -11.92   <2e-16 ***
xVar5         1.0233     0.0836   12.24   <2e-16 ***
xVar6        -0.9514     0.0835  -11.40   <2e-16 ***
xVar7         1.0482     0.0835   12.56   <2e-16 ***
xx.12         0.1902     0.0836    2.27    0.025 *  

Etkileşim teriminin p değerini, doğrusal olmayan bir test olarak kabul edeceğim: bu p değeri yeterince düşük olduğunda (ne kadar düşük olduğunu seçebilirsiniz), doğrusal olmayanlığı tespit ettik.

(Burada tam olarak aradığımız şey hakkında bir incelik var. Uygulamada, bu tür ikinci dereceden etkileşimlerin yanı sıra, tek bir terime odaklanmak yerine, belki de 7 ikinci dereceden tüm terimleri incelememiz gerekebilir. Burada yapıldığı gibi, birbiriyle bağlantılı bu 28 test için bir düzeltme yapmak isteriz, bu düzeltmeyi burada açıkça yapmam çünkü bunun yerine p-değerlerin simüle edilmiş dağılımını gösteriyorum. dayalı sonunda histogramlar senin önemi eşikleri.)

Ancak bu analizi sadece bir kez yapmayalım; yAynı modele ve aynı tasarım matrisine göre her yinelemede yeni değerler üreterek birçok kez yapalım . Bunu başarmak için, bir yineleme gerçekleştirmek ve etkileşim teriminin p-değerini döndürmek için bir işlev kullanıyoruz:

test <- function(gamma, sd=1) {
  y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
  fit <- summary(lm(y ~ x))
  m <- coef(fit)
  n <- dim(m)[1]
  m[n, 4]
}

Simülasyon sonuçlarını gamma, etkileşim teriminin standartlaştırılmış katsayısını değiştiren p-değerlerinin histogramları olarak sunmayı seçiyorum . İlk olarak, histogramlar:

h <- function(g, n.trials=1000) {
  hist(replicate(n.trials, test(g, sd)), xlim=c(0,1), 
       main=toString(g), xlab="x1:x2 p-value")
}
par(mfrow=c(2,2)) # Draw a 2 by 2 panel of results

Şimdi işi yapmak için. Simülasyon başına 1000 deneme için birkaç saniye sürer (ve etkileşim teriminin verilen değerinden başlayarak ve her seferinde art arda yarıya indiren dört bağımsız simülasyon):

temp <- sapply(2^(-3:0) * gamma, h)

Sonuçlar:

histogramlar

Sağ alttan geriye doğru okuyan bu grafikler, bu tasarım matrisi xiçin, bu standart hata sapması sdiçin ve bu standart katsayılar için beta, OLS'nin standart bir etkileşim tespit edebildiğini (diğer katsayıların boyutunun sadece dörtte biri) tespit edebiliyor. (güvenilir bir şekilde, zamanın% 80'inden fazlası (p değeri için% 5'lik bir eşik kullanılması - şimdi görmezden geldiğim çoklu karşılaştırmaların düzeltilmesiyle ilgili kısa tartışmayı hatırlayın); genellikle bir etkileşim boyutu algılayabilir (zamanın yaklaşık% 20); bazen boyutunda bir etkileşimi algılar1/41/81/16gamma1/2

1/321/4xsdbetasd

Kısacası, bunun gibi bir simülasyon , onu kurup doğru şekilde yorumlamanız durumunda ne istersen kanıtlayabilir. Bu, bireysel istatistikçilerin, kullandıkları prosedürlerin yeteneklerini ve zayıflıklarını kişisel ve derinlemesine anlayabilmek için karşılaştıkları belirli sorunlara uygun kendi araştırmalarını yapmaları gerektiğini ileri sürmektedir.


1, sadece Bilginize, ben verilerinizi standardize etmek için kendi fonksiyonunu yazma fark, sen bulabilir ? Ölçekli yararlı.
gung - Reinstate Monica

Sağol, @gung. Böyle bir işlevin etrafında olduğundan emindim ama ismini düşünemedi. Bu kadar yeni Rişaretçilere her zaman minnettarım ve takdir ediyorum.
whuber

1

Değil emin soruya nihai bir cevap verir, ama bir göz verecekti bu . Özellikle 2. nokta. Ayrıca, makalenin Ek A2'deki tartışmaya bakınız .


Baktığınız için teşekkür ederiz, ancak bunlar OLS regresyonundan ziyade dağıtıma uygun uygulamalar olarak görünmektedir.
whuber
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.