Kemudian
Satu hal yang ingin saya tambahkan setelah mendengar bahwa Anda memiliki model efek campuran linier: dan masih dapat digunakan untuk membandingkan model. Lihat tulisan ini , misalnya. Dari pertanyaan serupa lainnya di situs, tampaknya makalah ini sangat penting.AIC,AICcBIC
Jawaban asli
Pada dasarnya yang Anda inginkan adalah membandingkan dua model yang tidak bersarang. Seleksi Model Burnham dan Anderson dan inferensi multimodel membahas hal ini dan merekomendasikan penggunaan , atau dll. Karena uji rasio kemungkinan tradisional hanya berlaku pada model bersarang. Mereka secara eksplisit menyatakan bahwa kriteria informasi-teoretis seperti dll. Bukan tes dan bahwa kata "signifikan" harus dihindari ketika melaporkan hasil.AICAICcBICAIC,AICc,BIC
Berdasarkan ini dan ini jawaban, saya sarankan ini pendekatan:
- Membuat matriks sebar (SPLOM) dari dataset Anda termasuk smoothers:
pairs(Y~X1+X2, panel = panel.smooth, lwd = 2, cex = 1.5, col = "steelblue", pch=16)
. Periksa apakah garis (smoothers) kompatibel dengan hubungan linier. Sempurnakan model jika perlu.
- Hitung model
m1
dan m2
. Lakukan beberapa pengecekan model (residu, dll.): plot(m1)
Dan plot(m2)
.
- Hitung ( dikoreksi untuk ukuran sampel kecil) untuk kedua model dan hitung perbedaan absolut antara kedua s. The paket menyediakan fungsi untuk ini: . Jika perbedaan absolut ini lebih kecil dari 2, kedua model pada dasarnya tidak bisa dibedakan. Kalau tidak, pilih model dengan lebih rendah .AICcAICAICc
R
pscl
AICc
abs(AICc(m1)-AICc(m2))
AICc
- Hitung tes rasio kemungkinan untuk model non-bersarang. The
R
paketlmtest
memiliki fungsi coxtest
(uji Cox), jtest
(uji Davidson-MacKinnon J) dan encomptest
(uji meliputi dari Davidson & MacKinnon).
Beberapa pemikiran: Jika dua ukuran pisang benar - benar mengukur hal yang sama, keduanya mungkin sama - sama cocok untuk prediksi dan mungkin tidak ada model "terbaik".
Makalah ini mungkin juga bermanfaat.
Berikut adalah contoh dalam R
:
#==============================================================================
# Generate correlated variables
#==============================================================================
set.seed(123)
R <- matrix(cbind(
1 , 0.8 , 0.2,
0.8 , 1 , 0.4,
0.2 , 0.4 , 1),nrow=3) # correlation matrix
U <- t(chol(R))
nvars <- dim(U)[1]
numobs <- 500
set.seed(1)
random.normal <- matrix(rnorm(nvars*numobs,0,1), nrow=nvars, ncol=numobs);
X <- U %*% random.normal
newX <- t(X)
raw <- as.data.frame(newX)
names(raw) <- c("response","predictor1","predictor2")
#==============================================================================
# Check the graphic
#==============================================================================
par(bg="white", cex=1.2)
pairs(response~predictor1+predictor2, data=raw, panel = panel.smooth,
lwd = 2, cex = 1.5, col = "steelblue", pch=16, las=1)
Para smoothers mengkonfirmasi hubungan linier. Ini dimaksudkan, tentu saja.
#==============================================================================
# Calculate the regression models and AICcs
#==============================================================================
library(pscl)
m1 <- lm(response~predictor1, data=raw)
m2 <- lm(response~predictor2, data=raw)
summary(m1)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.004332 0.027292 -0.159 0.874
predictor1 0.820150 0.026677 30.743 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6102 on 498 degrees of freedom
Multiple R-squared: 0.6549, Adjusted R-squared: 0.6542
F-statistic: 945.2 on 1 and 498 DF, p-value: < 2.2e-16
summary(m2)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.01650 0.04567 -0.361 0.718
predictor2 0.18282 0.04406 4.150 3.91e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.021 on 498 degrees of freedom
Multiple R-squared: 0.03342, Adjusted R-squared: 0.03148
F-statistic: 17.22 on 1 and 498 DF, p-value: 3.913e-05
AICc(m1)
[1] 928.9961
AICc(m2)
[1] 1443.994
abs(AICc(m1)-AICc(m2))
[1] 514.9977
#==============================================================================
# Calculate the Cox test and Davidson-MacKinnon J test
#==============================================================================
library(lmtest)
coxtest(m1, m2)
Cox test
Model 1: response ~ predictor1
Model 2: response ~ predictor2
Estimate Std. Error z value Pr(>|z|)
fitted(M1) ~ M2 17.102 4.1890 4.0826 4.454e-05 ***
fitted(M2) ~ M1 -264.753 1.4368 -184.2652 < 2.2e-16 ***
jtest(m1, m2)
J test
Model 1: response ~ predictor1
Model 2: response ~ predictor2
Estimate Std. Error t value Pr(>|t|)
M1 + fitted(M2) -0.8298 0.151702 -5.470 7.143e-08 ***
M2 + fitted(M1) 1.0723 0.034271 31.288 < 2.2e-16 ***
The dari model pertama jelas lebih rendah dan jauh lebih tinggi.AICcm1
R2
Penting: Dalam model linier dengan kompleksitas yang sama dan distribusi kesalahan Gaussian , dan harus memberikan jawaban yang sama (lihat posting ini ). Dalam model nonlinear , penggunaan untuk kinerja model (goodness of fit) dan pemilihan model harus dihindari: lihat posting ini dan makalah ini , misalnya.R2,AICBICR2
X1
danX2
mungkin akan dikorelasikan, karena bintik-bintik coklat mungkin meningkat dengan meningkatnya waktu berbaring di atas meja.