मेरे पास निम्न प्रयोगात्मक डिज़ाइन का डेटा है: मेरे अवलोकन सफलताओं की संख्या की गणना ( K
) परीक्षणों की इसी संख्या से बाहर ( N
) हैं, दो समूहों के लिए मापा जाता है जिनमें प्रत्येक I
व्यक्ति शामिल है , T
उपचार से, जहां इस तरह के प्रत्येक कारक संयोजन में R
प्रतिकृति हैं । इसलिए, कुल मिलाकर मेरे पास 2 * I * T * R K 's और इसी N ' s हैं।
डेटा जीव विज्ञान से हैं। प्रत्येक व्यक्ति एक जीन है जिसके लिए मैं दो वैकल्पिक रूपों के अभिव्यक्ति स्तर को मापता हूं (वैकल्पिक स्प्लिंग नामक एक घटना के कारण)। इसलिए, K रूपों में से एक का अभिव्यक्ति स्तर है और N , दो रूपों के अभिव्यक्ति स्तरों का योग है। एक भी व्यक्त की नकल में दो रूपों के बीच विकल्प एक Bernoulli प्रयोग माना जाता है, इसलिए K से बाहर एनप्रतियां एक द्विपद का अनुसरण करती हैं। प्रत्येक समूह में ~ 20 विभिन्न जीन शामिल होते हैं और प्रत्येक समूह के जीन में कुछ सामान्य कार्य होते हैं, जो दोनों समूहों के बीच भिन्न होता है। प्रत्येक समूह में प्रत्येक जीन के लिए मेरे पास तीन अलग-अलग ऊतकों (उपचार) में से 30 ऐसे माप हैं। मैं उस प्रभाव का अनुमान लगाना चाहता हूं जो समूह और उपचार के / K / N के प्रसरण पर है।
जीन अभिव्यक्ति को अतिविशिष्ट माना जाता है इसलिए नीचे दिए गए कोड में नकारात्मक द्विपद का उपयोग होता है।
उदाहरण के लिए, R
नकली डेटा का कोड:
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
}
मैं उन प्रभावों का आकलन करने में दिलचस्पी रखता हूं जो समूह और उपचार की सफलता की संभावनाओं के फैलाव (या संस्करण) पर हैं (यानी, K/N
)। इसलिए मैं एक उपयुक्त चमक की तलाश कर रहा हूं जिसमें प्रतिक्रिया K / N हो, लेकिन प्रतिक्रिया के अपेक्षित मूल्य को मॉडलिंग के अलावा प्रतिक्रिया के विचरण को भी मॉडल किया गया है।
स्पष्ट रूप से, एक द्विपद सफलता की संभावना का विचलन परीक्षण की संख्या और अंतर्निहित सफलता की संभावना से प्रभावित होता है (परीक्षण की संख्या जितनी अधिक होती है और अंतर्निहित सफलता की संभावना उतनी ही चरम होती है (अर्थात, 0 या 1 के पास), कम सफलता की संभावना का विचरण), इसलिए मैं मुख्य रूप से परीक्षण और अंतर्निहित सफलता की संभावना से परे समूह और उपचार के योगदान में रुचि रखता हूं। मुझे लगता है कि प्रतिक्रिया के लिए आर्क्सिन वर्गमूल परिवर्तन को लागू करने से उत्तरार्द्ध खत्म हो जाएगा, लेकिन परीक्षण की संख्या नहीं।
हालांकि डिजाइन के ऊपर सिम्युलेटेड उदाहरण डेटा में संतुलित है (दो समूहों में प्रत्येक व्यक्ति की समान संख्या और प्रत्येक उपचार में प्रत्येक समूह से प्रत्येक व्यक्ति में समान संख्या में प्रतिकृति), मेरे वास्तविक डेटा में यह नहीं है - दो समूह करते हैं व्यक्तियों की समान संख्या नहीं है और प्रतिकृति की संख्या भिन्न होती है। इसके अलावा, मुझे लगता है कि व्यक्ति को एक यादृच्छिक प्रभाव के रूप में सेट किया जाना चाहिए।
नमूना भिन्नता बनाम प्लॉटिंग को अनुमानित सफलता की संभावना का नमूना मतलब (प्रत्येक व्यक्ति की पी हैट = के / एन के रूप में दर्शाया गया है) बताता है कि चरम सफलता संभावनाओं में कम विचरण है:
यह तब समाप्त हो जाता है जब अनुमानित सफलता संभावनाएं आर्किसिन वर्गमूल विचरण स्थिरीकरण परिवर्तन (आर्क्सिन (sqrt (p hat)) के रूप में निरूपित) का उपयोग करके परिवर्तित की जाती हैं:
रूपांतरित अनुमानित सफलता संभावनाओं का नमूना विचलन बनाम मतलब N अपेक्षित नकारात्मक संबंध दर्शाता है:
दो समूहों के लिए तब्दील अनुमानित सफलता संभावनाओं का नमूना प्रसरण प्लॉट करना दर्शाता है कि समूह बी में थोड़ा उच्च संस्करण हैं, जो मैंने डेटा का अनुकरण किया है:
अंत में, तीन उपचारों के लिए रूपांतरित अनुमानित संभाव्यता के नमूना प्रसरण की साजिश में उपचार के बीच कोई अंतर नहीं दिखाया गया है, जो कि मैंने डेटा का अनुकरण कैसे किया है:
क्या एक सामान्यीकृत रैखिक मॉडल का कोई रूप है जिसके साथ मैं सफलता की संभावनाओं के विचरण पर समूह और उपचार के प्रभावों को निर्धारित कर सकता हूं?
शायद एक विषमलैंगिक सामान्यीकृत रैखिक मॉडल या एक लॉगलाइनियर विचरण मॉडल के कुछ रूप?
एक मॉडल की पंक्तियों में कुछ जो कि ई (y) = X to के अलावा वेरिएंस (y) = Zλ को मॉडल करता है, जहां Z और X क्रमशः माध्य और विचरण के रजिस्ट्रार हैं, जो मेरे मामले में समान और शामिल होंगे उपचार (स्तर t.1, t.2, और t.3) और समूह (स्तर a और b), और शायद N और R, और इसलिए λ और उनके संबंधित प्रभावों का अनुमान लगाएगा।
वैकल्पिक रूप से, मैं एक मॉडल को प्रत्येक उपचार में प्रत्येक समूह से प्रत्येक जीन की प्रतिकृति के नमूने के नमूने के लिए फिट कर सकता हूं, जो एक चमक का उपयोग करता है जो केवल प्रतिक्रिया के अपेक्षित मूल्य को मॉडल करता है। यहां एकमात्र सवाल यह है कि इस तथ्य के लिए कैसे ध्यान दिया जाए कि विभिन्न जीनों में प्रतिकृति की अलग-अलग संख्या है। मुझे लगता है कि एक चमक में वजन उस के लिए जिम्मेदार हो सकता है (नमूना प्रतिरूप जो अधिक प्रतिकृतियों पर आधारित है, उसका वजन अधिक होना चाहिए) लेकिन वास्तव में कौन सा वजन निर्धारित किया जाना चाहिए?
नोट: मैंने dglm
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
Dglm.fit के अनुसार समूह प्रभाव बहुत कमजोर है। मुझे आश्चर्य है कि क्या मॉडल सही सेट है या वह शक्ति है जो इस मॉडल के पास है।