में R
, वहाँ तीन तरीकों एक रसद प्रतिगमन उपयोग करने के लिए इनपुट डेटा को स्वरूपित करने हैं glm
समारोह:
- डेटा प्रत्येक अवलोकन के लिए "बाइनरी" प्रारूप में हो सकता है (जैसे, प्रत्येक अवलोकन के लिए y = 0 या 1);
- डेटा "विल्किंसन-रोजर्स" प्रारूप में हो सकता है (जैसे,
y = cbind(success, failure)
) प्रत्येक पंक्ति में एक उपचार का प्रतिनिधित्व करने वाला; या - डेटा प्रत्येक अवलोकन के लिए एक भारित प्रारूप में हो सकता है (उदाहरण के लिए, y = 0.3, वजन = 10)।
सभी तीन दृष्टिकोण समान गुणांक अनुमानों का उत्पादन करते हैं, लेकिन स्वतंत्रता की डिग्री और परिणामस्वरूप विचलन मूल्यों और एआईसी स्कोर में भिन्न होते हैं। अंतिम दो विधियों में कम अवलोकन (और इसलिए स्वतंत्रता की डिग्री) हैं क्योंकि वे प्रत्येक उपचार का उपयोग टिप्पणियों की संख्या के लिए करते हैं जबकि पहला प्रत्येक अवलोकन की संख्या के लिए उपयोग करता है।
मेरा प्रश्न: क्या एक इनपुट प्रारूप का दूसरे पर उपयोग करने के लिए संख्यात्मक या सांख्यिकीय फायदे हैं? एकमात्र लाभ जो मुझे दिखाई दे रहा है R
वह मॉडल के साथ उपयोग करने के लिए किसी के डेटा को पुन: स्वरूपित करने के लिए नहीं है ।
मैंने glm प्रलेखन को देखा है , वेब पर और इस साइट पर खोजा है और एक स्पर्शनीय रूप से संबंधित पोस्ट पाया है , लेकिन इस विषय पर कोई मार्गदर्शन नहीं किया है।
यहाँ एक अनुकरणीय उदाहरण है जो इस व्यवहार को प्रदर्शित करता है:
# Write function to help simulate data
drc4 <- function(x, b =1.0, c = 0, d = 1, e = 0){
(d - c)/ (1 + exp(-b * (log(x) - log(e))))
}
# simulate long form of dataset
nReps = 20
dfLong <- data.frame(dose = rep(seq(0, 10, by = 2), each = nReps))
dfLong$mortality <-rbinom(n = dim(dfLong)[1], size = 1,
prob = drc4(dfLong$dose, b = 2, e = 5))
# aggregate to create short form of dataset
dfShort <- aggregate(dfLong$mortality, by = list(dfLong$dose),
FUN = sum)
colnames(dfShort) <- c("dose", "mortality")
dfShort$survival <- nReps - dfShort$mortality
dfShort$nReps <- nReps
dfShort$mortalityP <- dfShort$mortality / dfShort$nReps
fitShort <- glm( cbind(mortality, survival) ~ dose,
data = dfShort,
family = "binomial")
summary(fitShort)
fitShortP <- glm( mortalityP ~ dose, data = dfShort,
weights = nReps,
family = "binomial")
summary(fitShortP)
fitLong <- glm( mortality ~ dose, data = dfLong,
family = "binomial")
summary(fitLong)
svyglm
है। सर्वेक्षण पैकेज से आपको वजन तर्क को संभालने के बेहतर तरीके मिलते हैं।