Anda dapat menggunakan tes rasio kemungkinan normal. Ini contoh sederhana. Pertama, mari kita buat pengamatan dari 10 orang berdasarkan parameter Anda:
Asym = .6
xmid = 23
scal = 5
n = 10
time = seq(1,60,5)
d = data.frame(time=rep(time,10),
Asym, xmid, scal, group=0)
d$subj = factor(rep(1:n, each=length(time)))
Sekarang biarkan setengah dari mereka memiliki parameter asimtot dan titik tengah yang berbeda:
ind = (nrow(d)/2):nrow(d)
d$Asym[ind] = d$Asym[ind] + .1
d$xmid[ind] = d$xmid[ind] + 10
d$group[ind] = 1
d$group=factor(d$group)
Kami dapat mensimulasikan nilai respons untuk semua individu, berdasarkan model:
set.seed(1)
d = transform(d, y = Asym/(1+exp((xmid-time)/scal)) +
rnorm(nrow(d), sd=.04))
library(lattice)
xyplot(y~time | group, group=subj,
data=d, type=c("g","l"), col="black")
Kita dapat melihat perbedaan yang jelas antara kedua kelompok, perbedaan yang harus diambil oleh model. Sekarang mari kita coba menyesuaikan model yang sederhana , dengan mengabaikan kelompok:
> fm1 = nls(y ~ SSlogis(time, Asym, xmid, scal), data=d)
> coef(fm1)
Asym xmid scal
0.6633042 28.5219166 5.8286082
Mungkin seperti yang diharapkan, estimasi untuk Asym
dan xmid
berada di antara nilai parameter nyata untuk kedua grup. (Bahwa ini akan menjadi kasus tidak jelas, karena parameter skala juga berubah, untuk menyesuaikan spesifikasi kesalahan model.) Sekarang mari kita muat model lengkap , dengan parameter yang berbeda untuk dua kelompok:
> fm2 = nls(y ~ SSlogis(time, Asym[group], xmid[group], scal[group]),
data=d,
start=list(Asym=rep(.6,2), xmid=rep(23,2), scal=rep(5,2)))
> coef(fm2)
Asym1 Asym2 xmid1 xmid2 scal1 scal2
0.602768 0.714199 22.769315 33.331976 4.629332 4.749555
Karena kedua model bersarang, kita dapat melakukan uji rasio kemungkinan:
> anova(fm1, fm2)
Analysis of Variance Table
Model 1: y ~ SSlogis(time, Asym, xmid, scal)
Model 2: y ~ SSlogis(time, Asym[group], xmid[group], scal[group])
Res.Df Res.Sum Sq Df Sum Sq F value Pr(>F)
1 117 0.70968
2 114 0.13934 3 0.57034 155.54 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Nilai p yang sangat kecil jelas menunjukkan bahwa model yang sederhana terlalu sederhana; kedua kelompok itu berbeda dalam parameternya.
Namun, estimasi dua parameter skala hampir identik, dengan perbedaan hanya 0,1. Mungkin kita hanya perlu satu parameter skala? (Tentu saja kita tahu jawabannya adalah ya, karena kita memiliki data yang disimulasikan.)
(Perbedaan antara dua parameter asimtot juga hanya 0,1, tapi itu perbedaan besar ketika kita memperhitungkan kesalahan standar - lihat summary(fm2)
.)
Jadi kami cocok dengan model baru, dengan scale
parameter umum untuk dua kelompok, tetapi berbeda Asym
dan xmid
parameter, seperti sebelumnya:
> fm3 = nls(y ~ SSlogis(time, Asym[group], xmid[group], scal),
data=d,
start=list(Asym=rep(.6,2), xmid=rep(23,2), scal=5))
> coef(fm3)
Asym1 Asym2 xmid1 xmid2 scal
0.6035251 0.7129002 22.7821155 33.3080264 4.6928316
Dan karena model tereduksi bersarang dalam model penuh, kita dapat kembali melakukan uji rasio kemungkinan:
> anova(fm3, fm2)
Analysis of Variance Table
Model 1: y ~ SSlogis(time, Asym[group], xmid[group], scal)
Model 2: y ~ SSlogis(time, Asym[group], xmid[group], scal[group])
Res.Df Res.Sum Sq Df Sum Sq F value Pr(>F)
1 115 0.13945
2 114 0.13934 1 0.00010637 0.087 0.7685
Nilai p yang besar menunjukkan bahwa model yang diperkecil cocok dengan model lengkap, seperti yang diharapkan.
Kita tentu saja dapat melakukan tes serupa untuk memeriksa apakah nilai parameter yang berbeda diperlukan untuk adil Asym
, adil xmid
atau keduanya. Yang mengatakan, saya tidak akan merekomendasikan melakukan regresi bertahap seperti ini untuk menghilangkan parameter. Sebaliknya, cukup uji model lengkap ( fm2
) terhadap model sederhana ( fm1
), dan senang dengan hasilnya. Untuk menghitung perbedaan, plot akan sangat membantu.
nlmer()
untuk memperhitungkan tindakan berulang pada sampel dari waktu ke waktu? Anda bisa melakukan jenis strategi yang sama tetapi cocok dengan 1 model dengan efek acak untuksubject
dangroup
vs model lain dengan efek acaksubject
hanya untuk dan membandingkan.