Tôi đang phân tích một bộ dữ liệu nhất định và tôi cần hiểu cách chọn mô hình tốt nhất phù hợp với dữ liệu của mình. Tôi đang sử dụng R.
Một ví dụ về dữ liệu tôi có là như sau:
corr <- c(0, 0, 10, 50, 70, 100, 100, 100, 90, 100, 100)
Những con số này tương ứng với tỷ lệ phần trăm của câu trả lời đúng, trong 11 điều kiện khác nhau ( cnt
):
cnt <- c(0, 82, 163, 242, 318, 390, 458, 521, 578, 628, 673)
Đầu tiên tôi đã cố gắng để phù hợp với một mô hình probit và một mô hình logit. Mới đây tôi đã tìm thấy trong tài liệu một phương trình khác phù hợp với dữ liệu tương tự với tôi, vì vậy tôi đã cố gắng khớp dữ liệu của mình, sử dụng nls
hàm, theo phương trình đó (nhưng tôi không đồng ý với điều đó, và tác giả không giải thích tại sao anh ta đã sử dụng phương trình đó).
Đây là mã cho ba mô hình tôi nhận được:
resp.mat <- as.matrix(cbind(corr/10, (100-corr)/10))
ddprob.glm1 <- glm(resp.mat ~ cnt, family = binomial(link = "logit"))
ddprob.glm2 <- glm(resp.mat ~ cnt, family = binomial(link = "probit"))
ddprob.nls <- nls(corr ~ 100 / (1 + exp(k*(AMP-cnt))), start=list(k=0.01, AMP=5))
Bây giờ tôi vẽ dữ liệu và ba đường cong được trang bị:
pcnt <- seq(min(cnt), max(cnt), len = max(cnt)-min(cnt))
pred.glm1 <- predict(ddprob.glm1, data.frame(cnt = pcnt), type = "response", se.fit=T)
pred.glm2 <- predict(ddprob.glm2, data.frame(cnt = pcnt), type = "response", se.fit=T)
pred.nls <- predict(ddprob.nls, data.frame(cnt = pcnt), type = "response", se.fit=T)
plot(cnt, corr, xlim=c(0,673), ylim = c(0, 100), cex=1.5)
lines(pcnt, pred.nls, lwd = 2, lty=1, col="red", xlim=c(0,673))
lines(pcnt, pred.glm2$fit*100, lwd = 2, lty=1, col="black", xlim=c(0,673)) #$
lines(pcnt, pred.glm1$fit*100, lwd = 2, lty=1, col="green", xlim=c(0,673))
Bây giờ, tôi muốn biết: mô hình tốt nhất cho dữ liệu của tôi là gì?
- probit
- logit
- nls
LogLik cho ba mô hình là:
> logLik(ddprob.nls)
'log Lik.' -33.15399 (df=3)
> logLik(ddprob.glm1)
'log Lik.' -9.193351 (df=2)
> logLik(ddprob.glm2)
'log Lik.' -10.32332 (df=2)
LogLik có đủ để chọn mô hình tốt nhất không? (Nó sẽ là mô hình logit, phải không?) Hoặc có điều gì khác tôi cần tính toán không?
nls
mô hình và so sánh với glm
. Đây là lý do tại sao tôi (lại) đăng một câu hỏi tương tự :)
nls
, chúng tôi sẽ xem mọi người nói gì. Đối với GLiM, tôi sẽ nói rằng bạn nên sử dụng logit nếu bạn nghĩ rằng các đồng biến của bạn kết nối trực tiếp với phản hồi và & probit nếu bạn nghĩ rằng nó được trung gian bởi một biến phân phối thông thường tiềm ẩn.
nls
nó khác biệt & không được đề cập ở đó).