library(datasets)
library(nlme)
n1 <- nlme(circumference ~ phi1 / (1 + exp(-(age - phi2)/phi3)),
data = Orange,
fixed = list(phi1 ~ 1,
phi2 ~ 1,
phi3 ~ 1),
random = list(Tree = pdDiag(phi1 ~ 1)),
start = list(fixed = c(phi1 = 192.6873, phi2 = 728.7547, phi3 = 353.5323)))
Tôi phù hợp với mô hình hiệu ứng hỗn hợp phi tuyến sử dụng nlme
trong R và đây là đầu ra của tôi.
> summary(n1)
Nonlinear mixed-effects model fit by maximum likelihood
Model: circumference ~ phi1/(1 + exp(-(age - phi2)/phi3))
Data: Orange
AIC BIC logLik
273.1691 280.9459 -131.5846
Random effects:
Formula: phi1 ~ 1 | Tree
phi1 Residual
StdDev: 31.48255 7.846255
Fixed effects: list(phi1 ~ 1, phi2 ~ 1, phi3 ~ 1)
Value Std.Error DF t-value p-value
phi1 191.0499 16.15411 28 11.82671 0
phi2 722.5590 35.15195 28 20.55530 0
phi3 344.1681 27.14801 28 12.67747 0
Correlation:
phi1 phi2
phi2 0.375
phi3 0.354 0.755
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-1.9146426 -0.5352753 0.1436291 0.7308603 1.6614518
Number of Observations: 35
Number of Groups: 5
Tôi phù hợp với mô hình tương tự trong SAS và nhận được kết quả sau.
Ai đó có thể giúp tôi hiểu lý do tại sao tôi nhận được ước tính hơi khác nhau? Tôi biết rằng việc nlme
sử dụng triển khai Lindstrom & Bates (1990). Theo tài liệu của SAS, phép tính gần đúng tích phân của SAS dựa trên Pinhiero & Bates (1995). Tôi đã thử thay đổi phương pháp tối ưu hóa thành Nelder-Mead để phù hợp với phương pháp đó nlme
, nhưng kết quả vẫn không giống nhau.
Tôi đã có những trường hợp khác trong đó ước tính sai số và tham số tiêu chuẩn trong R so với SAS rất khác nhau (tôi không có ví dụ có thể lặp lại về điều này, nhưng bất kỳ thông tin chi tiết nào cũng sẽ được đánh giá cao). Tôi đoán điều này có liên quan đến cách thức nlme
và nlmixed
ước tính các lỗi tiêu chuẩn khi có các hiệu ứng ngẫu nhiên?
Orange
dữ liệu chứa 35 quan sát.