Uji koefisien model (kemiringan regresi) terhadap beberapa nilai


20

Dalam R, ketika saya memiliki (umum) model linier ( lm, glm, gls, glmm, ...), bagaimana saya bisa menguji koefisien (slope regresi) terhadap nilai selain 0? Dalam ringkasan model, hasil uji t dari koefisien secara otomatis dilaporkan, tetapi hanya untuk perbandingan dengan 0. Saya ingin membandingkannya dengan nilai lain.

Saya tahu saya dapat menggunakan trik dengan reparametrizing y ~ xsebagai y - T*x ~ x, di mana Tnilai yang diuji, dan menjalankan model reparametrized ini, tetapi saya mencari solusi yang lebih sederhana, yang mungkin dapat bekerja pada model asli.


Jawaban:


17

Berikut adalah solusi yang lebih luas yang akan bekerja dengan paket apa pun, atau bahkan jika Anda hanya memiliki hasil regresi (seperti dari kertas).

Ambil koefisien dan kesalahan standarnya.

Hitung . Df untuk sama dengan untuk tes dengan . tH0:β=0t=β^-βH0se(β^)tH0:β=0


1
Terima kasih Glen, saya tahu ini dari [jawaban yang bagus ini]. Tetapi bagaimana saya akan mendapatkan nilai-p dari nilai-t?
— Penasaran

2
@Curiouspt()
— Affine

@Curious: Seperti kata Affine, fungsi R pt - atau apa pun yang memberi Anda nilai t cdfs. Banyak paket memiliki ini, dan ada banyak tabel-t.
— Glen_b -Reinstate Monica

Alangkah baiknya jika lm, lmer dan yang lainnya menerima parameter uji yang berbeda dari nol secara langsung.
— skan

@skan itu benar-benar satu baris kode R untuk mendapatkan nilai-p; itu akan menjadi masalah sederhana untuk menulis sedikit fungsi untuk mengambil output dari summary.lm dan menghasilkan tabel baru dengan spesifikasi persis Anda.
— Glen_b -Reinstate Monica

10

Anda dapat menggunakan uji-t sederhana seperti yang diusulkan oleh Glen_b, atau tes Wald yang lebih umum.

Uji Wald memungkinkan untuk menguji beberapa hipotesis pada berbagai parameter. Diformulasikan sebagai: mana R memilih (kombinasi dari) koefisien, dan q menunjukkan nilai yang akan diuji terhadap, β menjadi koefisien regresi standar.Rβ=qβ

Dalam contoh Anda, di mana Anda hanya memiliki satu hipotesis pada satu parameter, R adalah vektor baris, dengan nilai satu untuk parameter yang dimaksud dan nol di tempat lain, dan q adalah skalar dengan batasan untuk diuji.

Di R, Anda dapat menjalankan tes Wald dengan fungsi linearHypothesis () dari paket mobil . Katakanlah Anda ingin memeriksa apakah koefisien kedua (ditunjukkan oleh argumen hipotesis.matrix ) berbeda dari 0,1 (argumen rhs ):

reg <- lm(freeny)
coef(reg)

# wald test for lag.quarterly.revenue =0.1
>library(car)
>linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0.1)
#skip some result, look at last value on last row, of Pr(>F) 
  Res.Df       RSS Df  Sum of Sq      F Pr(>F)
1     35 0.0073811                            
2     34 0.0073750  1 6.0936e-06 0.0281 0.8679

Untuk uji-t, fungsi ini mengimplementasikan uji-t yang ditunjukkan oleh Glen_b:

ttest <- function(reg, coefnum, val){
  co <- coef(summary(reg))
  tstat <- (co[coefnum,1]-val)/co[coefnum,2]
  2 * pt(abs(tstat), reg$df.residual, lower.tail = FALSE)
}

> ttest(reg, 2,0.1)
[1] 0.8678848

Mari kita pastikan kita mendapatkan prosedur yang benar dengan membandingkan uji t Wald, t-test kita, dan R default, untuk hipotesis standar bahwa koefisien kedua adalah nol:

> linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0)[["Pr(>F)"]][2]
[1] 0.3904361
> ttest(reg, 2,0)
[1] 0.3904361
## The 'right' answer from R:
> coef(summary(reg))[2,4]
[1] 0.3904361

Anda harus mendapatkan hasil yang sama dengan ketiga prosedur.


kelihatan bagus! Bisakah Anda jelaskan hypothesis.matrixparameternya?
— Penasaran

Saya tidak yakin apakah tes Wald melakukannya. Saya bermaksud menggunakan uji-t normal yang secara standar dilaporkan bersama dengan parameter, tetapi tidak dengan 0 tetapi dengan beberapa nilai lainnya.
— Penasaran

@Curious Hope lebih jelas sekarang?
— Matifou

3

Pada akhirnya, jauh solusi termudah adalah melakukan reparametrization:

gls(I(y - T*x) ~ x, ...)

Apakah itu akan menghasilkan hasil yang sama?
— skan

Tetapi Anda mengurangi sesuatu yang tidak independen. Bukankah itu akan menjadi masalah dengan asumsi untuk kuadrat atau dengan collinearity? Apa bedanya dengan lm (y ~ x + + offset (T * x))?
— skan

1
@skan regresi bersyarat pada x, tidak ada ketergantungan di sana; harus sama dengan menggunakan offset.
— Glen_b -Reinstate Monica
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.