Làm thế nào các hiệu ứng ngẫu nhiên chỉ với 1 quan sát sẽ ảnh hưởng đến một mô hình hỗn hợp tuyến tính tổng quát?


14

Tôi có một bộ dữ liệu trong đó biến tôi muốn sử dụng làm hiệu ứng ngẫu nhiên chỉ có một quan sát duy nhất cho một số cấp độ. Dựa trên các câu trả lời cho các câu hỏi trước đó, tôi đã tập hợp rằng, về nguyên tắc, điều này có thể ổn.

Tôi có thể phù hợp với một mô hình hỗn hợp với các đối tượng chỉ có 1 quan sát không?

Mô hình chặn ngẫu nhiên - một phép đo cho mỗi đối tượng

Tuy nhiên, trong liên kết thứ hai, câu trả lời đầu tiên nêu rõ:

"... giả sử bạn không sử dụng GLMM mô hình hỗn hợp tuyến tính tổng quát , trong trường hợp đó, các vấn đề về phân tán quá mức sẽ xảy ra"

Tôi đang xem xét sử dụng GLMM, nhưng tôi thực sự không hiểu mức độ hiệu ứng ngẫu nhiên với các quan sát đơn lẻ sẽ ảnh hưởng đến mô hình như thế nào.


Dưới đây là một ví dụ về một trong những mô hình tôi đang cố gắng phù hợp. Tôi đang nghiên cứu về các loài chim và tôi muốn mô hình hóa các tác động của dân số và mùa trên số lượng điểm dừng trong quá trình di chuyển. Tôi muốn sử dụng cá nhân như một hiệu ứng ngẫu nhiên, bởi vì đối với một số cá nhân tôi có tới 5 năm dữ liệu.

library(dplyr)
library(lme4)
pop <- as.character(c("BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "NU", "NU", "NU", "NU", "NU", "NU", "NU", "NU", "NU", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA"))
id <- "2 2 4 4 7 7 9 9 10 10 84367 84367 84367 84368 84368 84368 84368 84368 84368 84369 84369 33073 33073 33073 33073 33073 33073 33073 33073 33073 80149 80149 80149 80150 80150 80150 57140 57141 126674 126677 126678 126680 137152 137152 137157 115925 115925 115925 115925 115925 115925 115925 115925 115926 115926 115926 115926 115926 115926 115927 115928 115929 115929 115929 115930 115930 115930 115930 115931 115931 115931 115932 115932 115932"
id <- strsplit(id, " ")
id <- as.numeric(unlist(id))
year <- "2014 2015 2014 2015 2014 2015 2014 2015 2014 2015 2009 2010 2010 2009 2010 2010 2011 2011 2012 2009 2010 2009 2009 2010 2010 2011 2011 2012 2012 2013 2008 2008 2009 2008 2008 2009 2008 2008 2013 2013 2013 2013 2014 2015 2014 2012 2013 2013 2014 2014 2015 2015 2016 2012 2013 2013 2014 2014 2015 2013 2012 2012 2013 2013 2012 2013 2013 2014 2013 2014 2014 2013 2014 2014"
year <- strsplit(year, " ")
year <- as.numeric(unlist(year))
season <- as.character(c("fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "fall", "spring", "fall", "fall", "spring", "fall", "spring", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "spring", "fall", "spring", "spring", "fall", "spring", "spring", "fall", "fall", "fall", "fall", "fall", "fall", "fall", "spring", "fall", "fall", "fall", "spring", "fall", "spring", "fall", "spring", "spring", "fall", "fall", "spring", "fall", "spring", "spring", "fall", "fall", "fall", "fall", "spring", "fall", "fall", "spring", "spring","fall", "fall", "spring", "fall", "fall", "spring"))
stops <- "0 0 0 0 0 0 1 0 2 1 1 0 0 3 2 0 1 1 0 1 1 2 0 1 0 2 0 4 0 0 2 1 1 2 5 2 1 0 9 6 2 3 4 7 2 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0"
stops <- strsplit(stops, " ")
stops <- as.numeric(unlist(stops))

stopdata <- data.frame(pop = pop, id = id, year = year, season = season, stops = stops, stringsAsFactors = FALSE)


stopdata <- group_by(stopdata, pop, id)
summary1 <- summarise(stopdata, n.years = length(year))
table(summary1$n.years)

Có 27 cá nhân. 9 cá nhân có một quan sát duy nhất. 18 cá nhân có 2-9 quan sát.

Điều gì cần quan tâm nếu 1/3 mức hiệu ứng ngẫu nhiên chỉ có một quan sát?


Tôi đã xem xét:

Tùy chọn 1: GLMM như mô tả ở trên

stops.glmm <- glmer(stops ~ pop + season + (1|id), data=stopdata, family = poisson)

Tùy chọn 2: GLM mô hình tuyến tính tổng quát có trọng số sử dụng phương tiện cho các cá nhân có nhiều quan sát

aggfun <- function(data, idvars=c("pop", "season", "id"), response){
#select id variables, response variable, and year
sub1 <- na.omit(data[,c(idvars, "year", response)])
#aggregate for mean response by year
agg1 <- aggregate(sub1[names(sub1) == response],by=sub1[idvars],FUN=mean)
#sample size for each aggregated group
aggn <- aggregate(sub1[response],by=sub1[idvars],FUN=length)
#rename sample size column
names(aggn)[4] <- "n"
agg2 <- merge(agg1, aggn)
agg2}


#Create weighted dataset
stops.weight <- aggfun(data = stopdata, response = "stops")
stops.weight$stops <- round(stops.weight$stops)

#Weighted GLM
stops.glm <- glm(stops~pop + season, data=stops.weight, family = poisson, weights = n)

Báo giá đến từ đâu? Tôi không thể tìm thấy câu trả lời tương ứng.
amip nói rằng Phục hồi lại

Liên kết thứ hai, câu trả lời đầu tiên, trong ngoặc đơn
canderson156

3
ngắn gọn không trả lời: Tôi không nghĩ sẽ có vấn đề gì. Không biết chính xác câu trả lời đầu tiên cho câu hỏi thứ hai được liên kết ở trên có nghĩa là gì: bạn đã cân nhắc để lại một bình luận ở đó để hỏi (nếu bạn có đủ đại diện) chưa? Trong giới hạn mà bạn có chính xác 1 quan sát cho mỗi nhóm thì sự biến thiên giữa các nhóm và dư sẽ bị giới hạn hoàn toàn. Tôi có thể không bận tâm với các mô hình hỗn hợp nếu bạn có một nhóm thiểu số có> 1 quan sát (và một số lượng nhỏ trong các nhóm đó), nhưng trường hợp của bạn nghe có vẻ ổn ...
Ben Bolker

Tôi không chắc tùy chọn thứ hai của bạn (Poisson có trọng số) thực sự hoạt động chính xác, nhưng tôi phải suy nghĩ kỹ hơn về nó.
Ben Bolker

@BenBolker Bạn sẽ chọn làm gì trong trường hợp bạn mô tả, nơi chỉ có một nhóm thiểu số có> 1 quan sát?
mkt - Tái lập Monica

Câu trả lời:


3

Nói chung, bạn có một vấn đề với nhận dạng. Các mô hình tuyến tính với hiệu ứng ngẫu nhiên được gán cho một tham số chỉ có một phép đo không thể phân biệt giữa hiệu ứng ngẫu nhiên và sai số dư.

Một phương trình hiệu ứng hỗn hợp tuyến tính điển hình sẽ trông như sau:

E=β+ηi+ϵj

βηiiϵjjηϵηϵSD(η)SD(ϵ)var(η)+var(ϵ)

SD(η)SD(ϵ)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.