Doğrusal regresyonumun bilinen bir teorik çizgiden istatistiksel olarak anlamlı bir farkı olup olmadığını nasıl hesaplayabilirim?


14

Kabaca doğrusal bir çizgi boyunca uygun bazı veriler var:

resim açıklamasını buraya girin

Bu değerlerin doğrusal bir regresyonunu yaptığımda doğrusal bir denklem alıyorum:

y=0.997x0.0136

İdeal bir dünyada, denklem gerektiğini olmak y=x .

Açıkçası, doğrusal değerlerim bu ideale yakın , ama tam olarak değil. Sorum şu: Bu sonucun istatistiksel olarak anlamlı olup olmadığını nasıl belirleyebilirim?

0,997 değeri 1'den önemli ölçüde farklı mı? -0.01 0'dan önemli ölçüde farklı mı? Yoksa istatistiksel olarak aynı mı ve y=x makul bir güven düzeyi ile sonuçlandırabilir miyim ?

Kullanabileceğim iyi bir istatistiksel test nedir?

Teşekkürler


1
İstatistiksel olarak anlamlı bir fark olup olmadığını hesaplayabilirsiniz, ancak bunun bir fark olmadığı anlamına gelmediğini not etmelisiniz . Yalnızca sıfır hipotezini yanlış yaptığınızda anlamdan emin olabilirsiniz, ancak sıfır hipotezini yanlış yaptığınızda bu (1) gerçekten sıfır hipotezinin doğru (2) düşük sayı nedeniyle testinin güçlü olmadığı anlamına gelebilir. Örneklerin (3) testiniz yanlış alternatif hipotez nedeniyle güçlü değildi (3b) modelin deterministik olmayan kısmını yanlış temsil ettiği için istatistiksel anlamlılığın yanlış ölçüsü.
Sextus Empiricus

Bana göre verileriniz y = x + beyaz gürültü gibi görünmüyor. Bundan daha fazla bahsedebilir misiniz? (böyle bir gürültüye sahip olduğunuz varsayımına yönelik bir test, örnek ile ne kadar büyük olursa olsun, veri ile y = x çizgisi arasında büyük bir fark olsa bile, önemli bir farkı 'göremez'. sadece doğru ve en güçlü karşılaştırma olmayabilir diğer = y = a + bx ile karşılaştırmak)
Sextus Empiricus

Ayrıca, önemini belirlemenin amacı nedir. Birçok cevabın% 5'lik bir alfa seviyesi kullanmanızı önerdiğini görüyorum (% 95 güven aralığı). Ancak bu çok keyfidir. İstatistiksel önemi ikili değişken (mevcut veya mevcut değil) olarak görmek çok zordur. Bu, standart alfa seviyeleri gibi kurallarla yapılır, ancak keyfi ve neredeyse anlamsızdır. Bir bağlam verirseniz, bir önem düzeyine ( ikili değişken değil ) dayalı karar vermek için belirli bir kesme düzeyinin kullanılması (ikili değişken değil ), o zaman ikili önem gibi bir kavram daha mantıklıdır.
Sextus Empiricus

1
Ne tür bir "doğrusal regresyon" yapıyorsunuz? Biri sizi sıradan en küçük kareler regresyonunu (kesişme terimiyle) tartıştığınızı düşünür, ancak bu durumda, her iki artık kümesinin de sıfır aracı olacağı için (tam olarak), artıklar arasındaki regresyondaki kesişim de sıfır olmalıdır (tam olarak) ). Olmadığı için burada başka bir şey oluyor. Ne yaptığınıza ve nedenine ilişkin biraz bilgi verebilir misiniz?
whuber

Bu, iki sistemin aynı sonucu verip vermediğinin ölçülmesindeki probleme benzer. Bazı malzemeler için mülayim-altman-arsaya bakmayı deneyin .
mdewey

Yanıtlar:


17

Bu tür bir durum, iç içe geçmiş modeller için standart bir F testi ile ele alınabilir . Her iki parametreyi de sabit parametreleri olan boş bir modele karşı test etmek istediğiniz için hipotezleriniz:

H0:β=[01]HA:β[01].

F testi her iki modelin de takılmasını ve kalan kareler toplamının karşılaştırılmasını içerir:

SSE0=i=1n(yixi)2SSEA=i=1n(yiβ^0β^1xi)2

Test istatistiği:

FF(y,x)=n22SSE0SSEASSEA.

Karşılık gelen p değeri:

pp(y,x)=F(y,x)F-Dist(r|2,n2) dr.


R'de uygulama: Verilerinizin ve adlı DATAdeğişkenlerle adlandırılan bir veri çerçevesinde olduğunu varsayalım . F testi aşağıdaki kodla manuel olarak yapılabilir. Kullandığım simüle edilmiş sahte verilerde, tahmini katsayıların sıfır hipotezindekilere yakın olduğunu ve testin p-değerinin, gerçek regresyon fonksiyonunun sıfır hipotezini tahrif etmek için önemli bir kanıt göstermediğini görebilirsiniz. özdeşlik işlevi.yx

#Generate mock data (you can substitute your data if you prefer)
set.seed(12345);
n    <- 1000;
x    <- rnorm(n, mean = 0, sd = 5);
e    <- rnorm(n, mean = 0, sd = 2/sqrt(1+abs(x)));
y    <- x + e;
DATA <- data.frame(y = y, x = x);

#Fit initial regression model
MODEL <- lm(y ~ x, data = DATA);

#Calculate test statistic
SSE0   <- sum((DATA$y-DATA$x)^2);
SSEA   <- sum(MODEL$residuals^2);
F_STAT <- ((n-2)/2)*((SSE0 - SSEA)/SSEA);
P_VAL  <- pf(q = F_STAT, df1 = 2, df2 = n-2, lower.tail = FALSE);

#Plot the data and show test outcome
plot(DATA$x, DATA$y,
     main = 'All Residuals',
     sub  = paste0('(Test against identity function - F-Stat = ',
            sprintf("%.4f", F_STAT), ', p-value = ', sprintf("%.4f", P_VAL), ')'),
     xlab = 'Dataset #1 Normalized residuals',
     ylab = 'Dataset #2 Normalized residuals');
abline(lm(y ~ x, DATA), col = 'red', lty = 2, lwd = 2);

summaryÇıkışı ve plotbunun gibi bu veri görünüm için:

summary(MODEL);

Call:
lm(formula = y ~ x, data = DATA)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.8276 -0.6742  0.0043  0.6703  5.1462 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.02784    0.03552  -0.784    0.433    
x            1.00507    0.00711 141.370   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.122 on 998 degrees of freedom
Multiple R-squared:  0.9524,    Adjusted R-squared:  0.9524 
F-statistic: 1.999e+04 on 1 and 998 DF,  p-value: < 2.2e-16

F_STAT;
[1] 0.5370824

P_VAL;
[1] 0.5846198

resim açıklamasını buraya girin


Verileri nasıl oluşturduğunuz ilginçtir. Eğer bir hata eklendi olsaydı değişkeni sonra en iyi çizgi veri olacağını uyacak şekilde değil = x y. Bu, bir hipotez testinin ne kadar yalnızca y = x deterministik kısmına değil, aynı zamanda hataların nasıl dağıtıldığını açıklayan deterministik olmayan kısma da ne kadar bağlı olduğunu gösterir. Burada sıfır hipotezi testi daha spesifik 'y = x + e' hipotezi içindir, 'y = x' için değildir. x
Sextus Empiricus

1
Evet, iyi tespit ettim. Simüle edilen veriler standart bir homoskedastik doğrusal regresyon kullanmaz. OP'de gösterilen çizimdeki veri modelini kabaca taklit etmeye çalışmak için simülasyonda heteroseladastisite kullandım. (Ve bence oldukça iyi bir iş çıkardım!) Bu, bu modelden üretilmeyen simüle edilmiş verilere standart bir homoskedastik doğrusal model taktığım bir durum. Yine de bu hala meşru - bir modelden veri simülasyonu yapmak ve daha sonra başka bir modele sığdırmak, neyin ortaya çıktığını görmek tamam.
Ben - Monica'yı

1
Parçadaki heteroseladastisiteyi bile fark sd = 2/sqrt(1+abs(x))etmedim (OP grafiğindeki merkezi çıkıntı şeklini garip buldum ve görüntünüz beni 'oh sonuçta o kadar garip değil, yoğunluk olmalı' diye düşündü, bu yüzden gerçekten iyi iş ). Ne atıfta bulunuyorsunuz, hatayı değişkenine eklemeniz, ancak değişkenine eklememeniz . Bunun önemli olduğunu düşünüyorum. Uygulamada, bir teorik ilişki ölçüldüğünde , değişkeninde de bir hata olabilir ve kişi yeterli veri verildiğinde tahrif edebilmelidir , ancak gerçekte yanlış olan şeyx y = x x y = x y = x + eyxy=xxy=xy=x+e
Sextus Empiricus

1
Bu doğru, ancak sizi değişkenlerde hata modelleri alanına sokuyor, bu da onu daha karmaşık hale getiriyor. Bence OP sadece bu durumda standart lineer regresyon kullanmak istiyor.
Ben - Monica'yı

Ben bir sidenote, ama yine de önemli olduğunu kabul ediyorum. Sorunun basitliği beni şaşırtıyor (farklı noktalarda) ve aynı zamanda beni endişelendiriyor çünkü çok basit bir temsil olabilir. Tabii ki, gerçekte neyi başarmaya çalıştığına bağlıdır ('tüm modeller yanlış ....') ama bu basit temsil standart olabilir ve akılda tutulması gereken karmaşık ek sorular unutulur veya hatta unutulur. asla düşünmeye başlamaz (diğer cevaplardaki% 95 CI'lara atıfta bulunmak, insanların körü körüne takip ettiği bir standarda örnektir).
Sextus Empiricus

5

İşte Julian Faraway'in mükemmel kitabı olan "Linear Models With R (Second Edition)" dan aldığım harika bir grafik yöntem. Bir elips olarak çizilen kesme ve eğim için% 95 güven aralığıdır.

Örnek vermek gerekirse, N (ortalama = 10, sd = 5) dağılımına sahip bir "x" değişkeni ve daha sonra dağılımı N olan bir "y" değişkeni (ortalama = x, sd = 2) ile 500 gözlem oluşturdum. Bu, verileriniz kadar sıkı olmayabilecek 0.9'un biraz üzerinde bir korelasyon sağlar.

Elipsin, noktanın (kesme noktası = 0, eğim = 1) eşzamanlı güven aralığının içinde mi yoksa dışında mı olduğunu kontrol edebilirsiniz.

library(tidyverse)
library(ellipse)
#> 
#> Attaching package: 'ellipse'
#> The following object is masked from 'package:graphics':
#> 
#>     pairs

set.seed(50)
dat <- data.frame(x=rnorm(500,10,5)) %>% mutate(y=rnorm(n(),x,2))

lmod1 <- lm(y~x,data=dat)
summary(lmod1)
#> 
#> Call:
#> lm(formula = y ~ x, data = dat)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -6.9652 -1.1796 -0.0576  1.2802  6.0212 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  0.24171    0.20074   1.204    0.229    
#> x            0.97753    0.01802  54.246   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 2.057 on 498 degrees of freedom
#> Multiple R-squared:  0.8553, Adjusted R-squared:  0.855 
#> F-statistic:  2943 on 1 and 498 DF,  p-value: < 2.2e-16

cor(dat$y,dat$x)
#> [1] 0.9248032

plot(y~x,dat)
abline(0,1)


confint(lmod1)
#>                  2.5 %    97.5 %
#> (Intercept) -0.1526848 0.6361047
#> x            0.9421270 1.0129370

plot(ellipse(lmod1,c("(Intercept)","x")),type="l")
points(coef(lmod1)["(Intercept)"],coef(lmod1)["x"],pch=19)

abline(v=confint(lmod1)["(Intercept)",],lty=2)
abline(h=confint(lmod1)["x",],lty=2)

points(0,1,pch=1,size=3)
#> Warning in plot.xy(xy.coords(x, y), type = type, ...): "size" is not a
#> graphical parameter

abline(v=0,lty=10)
abline(h=0,lty=10)

2019-01-21 tarihinde reprex paketi tarafından oluşturuldu (v0.2.1)


1

Katsayıları n önyüklemeli örnekle hesaplayabilirsiniz. Bu muhtemelen normal dağıtılmış katsayı değerleriyle sonuçlanacaktır (Merkezi limit teoremi). Bundan sonra, ortalama etrafında t-değerleri (n-1 serbestlik derecesi) ile bir (örneğin% 95) güven aralığı oluşturabilirsiniz. CI'niz 1 (0) içermiyorsa, istatistiksel olarak anlamlı veya daha kesintir: Eşit bir eğimin sıfır hipotezini reddedebilirsiniz.


Burada formüle ettiğiniz gibi, sadece iki hipotezi ayrı ayrı test eder, ancak ihtiyacınız olan ortak bir testtir.
kjetil b halvorsen

0

Basit bir hipotez testi, yani bir t testi yapabilirsiniz. Kesişme için sıfır hipoteziniz (bunun önem testi olduğunu unutmayın) ve eğim için H0 altında buna .β0=0β1=1


1
Ancak gerekli olan diğer cevaplardaki gibi ortak bir testtir.
kjetil b halvorsen

@kjetilbhalvorsen Bugün sabah diğer cevapları okurken yanıldığımı fark ettim. Ben silerim.
RScrlli

0

Doğrusal bir regresyon takmalı ve iki parametre için% 95 güven aralığını kontrol etmelisiniz. Eğimin CI'sı 1 ve ofsetin CI'sı 0 içeriyorsa, iki taraflı test yaklaşık olarak önemsizdir. (% 95) ^ 2 seviyesinde - iki ayrı test kullandığımızda, tip-I riski artar.

R kullanarak:

fit = lm(Y ~ X)
confint(fit)

ya da sen kullan

summary(fit)

ve 2 sigma aralığını kendiniz hesaplayın.

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.