Lắp một mô hình tuyến tính tổng quát không đồng nhất cho các phản ứng nhị thức


9

Tôi có dữ liệu từ thiết kế thử nghiệm sau: các quan sát của tôi là số lượng thành công ( K) trong số các thử nghiệm tương ứng ( N), được đo cho hai nhóm, mỗi nhóm bao gồm các Icá nhân, từ các Tphương pháp điều trị, trong đó mỗi kết hợp các yếu tố đó đều có các Rbản sao . Do đó, hoàn toàn tôi có 2 * I * T * R K 'và N tương ứng .

Các dữ liệu là từ sinh học. Mỗi cá nhân là một gen mà tôi đo mức độ biểu hiện của hai dạng thay thế (do một hiện tượng gọi là ghép nối thay thế). Do đó, K là mức biểu thức của một trong các dạng và N là tổng các mức biểu thức của hai dạng. Sự lựa chọn giữa hai hình thức trong một bản sao được thể hiện duy nhất được giả định là một thử nghiệm Bernoulli, do đó K ra khỏi Nbản sao sau một nhị thức. Mỗi nhóm bao gồm ~ 20 gen khác nhau và các gen trong mỗi nhóm có một số chức năng chung, khác nhau giữa hai nhóm. Đối với mỗi gen trong mỗi nhóm, tôi có ~ 30 phép đo như vậy từ mỗi ba mô khác nhau (phương pháp điều trị). Tôi muốn ước tính ảnh hưởng của nhóm và phương pháp điều trị đối với phương sai của K / N.

Biểu hiện gen được biết là quá mức do đó sử dụng nhị thức âm trong mã dưới đây.

Ví dụ: Rmã dữ liệu mô phỏng:

library(MASS)
set.seed(1)
I = 20 # individuals in each group
G = 2  # groups
T = 3  # treatments
R = 30 # replicates of each individual, in each group, in each treatment

groups     = letters[1:G]
ids        = c(sapply(groups, function(g){ paste(rep(g, I), 1:I, sep=".") }))
treatments = paste(rep("t", T), 1:T, sep=".")
 # create random mean number of trials for each individual and 
 #  dispersion values to simulate trials from a negative binomial:
mean.trials = rlnorm(length(ids), meanlog=10, sdlog=1)
thetas      = 10^6/mean.trials
 # create the underlying success probability for each individual:
p.vec = runif(length(ids), min=0, max=1)
 # create a dispersion factor for each success probability, where the 
 #  individuals of group 2 have higher dispersion thus creating a group effect:
dispersion.vec = c(runif(length(ids)/2, min=0, max=0.1),
                   runif(length(ids)/2, min=0, max=0.2))
 # create empty an data.frame:
data.df = data.frame(id=rep(sapply(ids, function(i){ rep(i, R) }), T),
                     group=rep(sapply(groups, function(g){ rep(g, I*R) }), T),
                     treatment=c(sapply(treatments, 
                                        function(t){ rep(t, length(ids)*R) })),
                     N=rep(NA, length(ids)*T*R), 
                     K=rep(NA, length(ids)*T*R) )
 # fill N's and K's - trials and successes
for(i in 1:length(ids)){
  N     = rnegbin(T*R, mu=mean.trials[i], theta=thetas[i])
  probs = runif(T*R, min=max((1-dispersion.vec[i])*p.vec[i],0),
                max=min((1+dispersion.vec)*p.vec[i],1))
  K     = rbinom(T*R, N, probs)
  data.df$N[which(as.character(data.df$id) == ids[i])] = N
  data.df$K[which(as.character(data.df$id) == ids[i])] = K
}

Tôi quan tâm đến việc ước tính các tác động của nhóm và điều trị đối với sự phân tán (hoặc phương sai) của xác suất thành công (nghĩa là K/N). Do đó, tôi đang tìm kiếm một glm thích hợp trong đó phản hồi là K / N nhưng ngoài việc mô hình hóa giá trị mong đợi của phản hồi, phương sai của phản hồi cũng được mô hình hóa.

Rõ ràng, phương sai của xác suất thành công nhị thức bị ảnh hưởng bởi số lượng thử nghiệm và xác suất thành công cơ bản (số lượng thử nghiệm càng cao và xác suất thành công cơ bản càng cao (tức là gần 0 hoặc 1), càng thấp phương sai của xác suất thành công), vì vậy tôi chủ yếu quan tâm đến sự đóng góp của nhóm và điều trị vượt quá số lượng thử nghiệm và xác suất thành công cơ bản. Tôi đoán việc áp dụng chuyển đổi căn bậc hai arcsin cho phản ứng sẽ loại bỏ cái sau nhưng không phải là số lượng thử nghiệm.

Mặc dù trong dữ liệu ví dụ mô phỏng ở trên thiết kế được cân bằng (số lượng cá thể bằng nhau ở mỗi trong hai nhóm và số lần lặp lại giống hệt nhau ở mỗi cá nhân từ mỗi nhóm trong mỗi điều trị), nhưng trong dữ liệu thực của tôi thì không - hai nhóm thực hiện không có số lượng cá thể bằng nhau và số lần lặp lại khác nhau. Ngoài ra, tôi tưởng tượng cá nhân nên được đặt thành một hiệu ứng ngẫu nhiên.

Vẽ phương sai mẫu so với giá trị trung bình mẫu của xác suất thành công ước tính (ký hiệu là p hat = K / N) của mỗi cá nhân minh họa rằng xác suất thành công cực đoan có phương sai thấp hơn: nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Điều này được loại bỏ khi xác suất thành công ước tính được chuyển đổi bằng cách sử dụng phép biến đổi ổn định phương sai căn bậc hai arcsin (ký hiệu là arcsin (sqrt (p hat)): nhập mô tả hình ảnh ở đây

Vẽ phương sai mẫu của xác suất thành công ước tính được chuyển đổi so với giá trị trung bình N cho thấy mối quan hệ tiêu cực dự kiến: nhập mô tả hình ảnh ở đây

Vẽ phương sai mẫu của xác suất thành công ước tính được chuyển đổi cho hai nhóm cho thấy nhóm b có phương sai cao hơn một chút, đó là cách tôi mô phỏng dữ liệu: nhập mô tả hình ảnh ở đây

Cuối cùng, vẽ sơ đồ phương sai mẫu của xác suất thành công ước tính được chuyển đổi cho ba phương pháp điều trị cho thấy không có sự khác biệt giữa các phương pháp điều trị, đó là cách tôi mô phỏng dữ liệu: nhập mô tả hình ảnh ở đây

Có bất kỳ hình thức nào của một mô hình tuyến tính tổng quát mà tôi có thể định lượng nhóm và hiệu quả điều trị đối với phương sai của xác suất thành công không?

Có lẽ một mô hình tuyến tính tổng quát không đồng nhất hoặc một số dạng của mô hình phương sai loglinear?

Một cái gì đó trong các dòng của một mô hình mô hình Phương sai (y) = Zλ ngoài E (y) = Xβ, trong đó Z và X là các biến hồi quy của giá trị trung bình và phương sai, trong trường hợp của tôi sẽ giống hệt nhau và bao gồm điều trị (mức t.1, t.2 và t.3) và nhóm (cấp a và b), và có thể là N và R, và do đó và sẽ ước tính tác dụng tương ứng của chúng.

Ngoài ra, tôi có thể điều chỉnh một mô hình cho các phương sai mẫu trên các lần sao chép của từng gen từ mỗi nhóm trong mỗi lần điều trị, bằng cách sử dụng mô hình chỉ mô hình giá trị mong đợi của phản ứng. Câu hỏi duy nhất ở đây là làm thế nào để giải thích cho thực tế là các gen khác nhau có số lần sao chép khác nhau. Tôi nghĩ rằng các trọng số trong một glm có thể giải thích cho điều đó (phương sai mẫu dựa trên nhiều lần lặp lại nên có trọng số cao hơn) nhưng chính xác nên đặt trọng số nào?

Lưu ý: Tôi đã thử sử dụng dglmgói R:

library(dglm)
dglm.fit = dglm(formula = K/N ~ 1, dformula = ~ group + treatment, family = quasibinomial, weights = N, data = data.df)
summary(dglm.fit)
Call: dglm(formula = K/N ~ 1, dformula = ~group + treatment, family = quasibinomial, 
    data = data.df, weights = N)

Mean Coefficients:
               Estimate Std. Error   t value     Pr(>|t|)
(Intercept) -0.09735366 0.01648905 -5.904138 3.873478e-09
(Dispersion Parameters for quasibinomial family estimated as below )

    Scaled Null Deviance: 3600 on 3599 degrees of freedom
Scaled Residual Deviance: 3600 on 3599 degrees of freedom

Dispersion Coefficients:
                Estimate Std. Error      z value  Pr(>|z|)
(Intercept)  9.140517930 0.04409586 207.28746254 0.0000000
group       -0.071009599 0.04714045  -1.50634107 0.1319796
treatment   -0.001469108 0.02886751  -0.05089138 0.9594121
(Dispersion parameter for Gamma family taken to be 2 )

    Scaled Null Deviance: 3561.3 on 3599 degrees of freedom
Scaled Residual Deviance: 3559.028 on 3597 degrees of freedom

Minus Twice the Log-Likelihood: 29.44568 
Number of Alternating Iterations: 5 

Hiệu ứng nhóm theo dglm.fit khá yếu. Tôi tự hỏi nếu mô hình được đặt đúng hoặc sức mạnh mà mô hình này có.


1
Đây là một chút mờ đục. Bạn có thể nói cụ thể hơn tình huống của bạn là gì, có lẽ trong điều khoản cụ thể?
gung - Phục hồi Monica

1
Tôi đã chỉnh sửa bài viết của mình. Nhưng nói chung, tôi đang tìm kiếm một glm rằng ngoài E (y) = Xβ, các mô hình Variance (y) = Zλ, trong đó các cột của X là các biến hồi quy cho giá trị trung bình của phản hồi và các cột của Z các biến hồi quy cho phương sai của đáp ứng và và là các tham số ước tính tác động của chúng đối với giá trị trung bình và phương sai tương ứng.
dùng1701545

2
Tôi tập hợp rất nhiều, nhưng thật khó để nghĩ về điều này trong những điều khó hiểu như vậy. Bạn thảo luận không có biến X hoặc Z, vd. Bạn học về cái gì Dữ liệu của bạn là gì? V.v.
gung - Tái lập Monica

Không có vấn đề - xem bài cập nhật.
dùng1701545

Câu trả lời:


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.