कुछ प्लॉट डेटा का पता लगाने के लिए
नीचे आठ, सतह संपर्कों की प्रत्येक संख्या के लिए एक, दस्ताने दिखाने वाले प्लॉट्स हैं जो कोई दस्ताने नहीं हैं।
प्रत्येक व्यक्ति को एक डॉट के साथ प्लॉट किया जाता है। माध्य और विचरण और सहसंयोजक एक लाल बिंदु और दीर्घवृत्त (महालनोबिस दूरी 97.5% जनसंख्या के अनुरूप) के साथ इंगित किए जाते हैं।
आप देख सकते हैं कि जनसंख्या के प्रसार की तुलना में प्रभाव केवल छोटे हैं। माध्य 'नो ग्लव्स' के लिए अधिक होता है और अधिक सतही संपर्कों के लिए इसका मतलब थोड़ा अधिक बदल जाता है (जिसे महत्वपूर्ण दिखाया जा सकता है)। लेकिन प्रभाव केवल आकार में कम है (कुल मिलाकर ए14लॉग कमी), और ऐसे कई व्यक्ति हैं जिनके लिए वास्तव में दस्ताने के साथ एक उच्च बैक्टीरिया की गिनती है ।
छोटे सहसंबंध से पता चलता है कि वास्तव में व्यक्तियों से एक यादृच्छिक प्रभाव है (यदि व्यक्ति से कोई प्रभाव नहीं था, तो युग्मित दस्ताने और दस्ताने के बीच कोई संबंध नहीं होना चाहिए)। लेकिन यह केवल एक छोटा सा प्रभाव है और एक व्यक्ति के पास 'दस्ताने' और 'कोई दस्ताने' के लिए अलग-अलग यादृच्छिक प्रभाव हो सकते हैं (उदाहरण के लिए सभी अलग-अलग संपर्क बिंदुओं के लिए व्यक्ति के पास 'दस्ताने' की तुलना में 'दस्ताने' के लिए लगातार उच्च / निम्न गणना हो सकती है) ।
नीचे दिए गए भूखंड 35 व्यक्तियों में से प्रत्येक के लिए अलग भूखंड हैं। इस साजिश का विचार यह देखना है कि व्यवहार सजातीय है और यह भी देखने के लिए कि किस प्रकार का कार्य उपयुक्त लगता है।
ध्यान दें कि 'दस्ताने के बिना' लाल रंग में है। ज्यादातर मामलों में लाल रेखा अधिक होती है, 'दस्ताने के बिना' मामलों के लिए अधिक बैक्टीरिया।
मेरा मानना है कि यहां के रुझानों को पकड़ने के लिए एक रैखिक भूखंड पर्याप्त होना चाहिए। द्विघात कथानक का नुकसान यह है कि गुणांक की व्याख्या करना अधिक कठिन होने वाला है (आप सीधे यह देखने वाले नहीं हैं कि ढलान सकारात्मक है या नकारात्मक क्योंकि दोनों रैखिक शब्द और द्विघात शब्द का इस पर प्रभाव है)।
लेकिन इससे भी महत्वपूर्ण बात यह है कि विभिन्न व्यक्तियों के बीच रुझान बहुत भिन्न होते हैं और इसलिए यह न केवल अवरोधन, बल्कि व्यक्ति के ढलान के लिए एक यादृच्छिक प्रभाव जोड़ने के लिए उपयोगी हो सकता है।
नमूना
नीचे दिए गए मॉडल के साथ
- प्रत्येक व्यक्ति को यह अपने आप फिट (रैखिक गुणांक के लिए यादृच्छिक प्रभाव) मिलेगा।
- मॉडल लॉग-ट्रांसफ़ॉर्म किए गए डेटा का उपयोग करता है और एक नियमित (गाऊसी) रैखिक मॉडल के साथ फिट बैठता है। टिप्पणियों में अमीबा ने उल्लेख किया है कि एक लॉग लिंक एक असामान्य वितरण से संबंधित नहीं है। लेकिन यह अलग है।y∼ एन( लॉग( μ ) ,σ2) से अलग है लॉग( y) ∼ एन( μ ,σ2)
- वेट लगाया जाता है क्योंकि डेटा हेटेरोसेडस्टिक है। विभिन्न संख्याओं के प्रति भिन्नता अधिक संकीर्ण है। यह शायद इसलिए है क्योंकि बैक्टीरिया की गिनती में कुछ सीलिंग है और भिन्नता ज्यादातर सतह से उंगली तक संचरण में असफलता के कारण है (= निचले मामलों से संबंधित)। 35 भूखंडों में भी देखें। मुख्य रूप से कुछ व्यक्ति हैं जिनके लिए भिन्नता दूसरों की तुलना में बहुत अधिक है। (हम qq- भूखंडों में भी बड़े पूंछ, अतिविशिष्टता देखते हैं)
- कोई अवरोधन शब्द का उपयोग नहीं किया जाता है और एक 'विपरीत' शब्द जोड़ा जाता है। यह गुणांक को व्याख्या करने के लिए आसान बनाने के लिए किया जाता है।
।
K <- read.csv("~/Downloads/K.txt", sep="")
data <- K[K$Surface == 'P',]
Contactsnumber <- data$NumberContacts
Contactscontrast <- data$NumberContacts * (1-2*(data$Gloves == 'U'))
data <- cbind(data, Contactsnumber, Contactscontrast)
m <- lmer(log10CFU ~ 0 + Gloves + Contactsnumber + Contactscontrast +
(0 + Gloves + Contactsnumber + Contactscontrast|Participant) ,
data=data, weights = data$log10CFU)
यह देता है
> summary(m)
Linear mixed model fit by REML ['lmerMod']
Formula: log10CFU ~ 0 + Gloves + Contactsnumber + Contactscontrast + (0 +
Gloves + Contactsnumber + Contactscontrast | Participant)
Data: data
Weights: data$log10CFU
REML criterion at convergence: 180.8
Scaled residuals:
Min 1Q Median 3Q Max
-3.0972 -0.5141 0.0500 0.5448 5.1193
Random effects:
Groups Name Variance Std.Dev. Corr
Participant GlovesG 0.1242953 0.35256
GlovesU 0.0542441 0.23290 0.03
Contactsnumber 0.0007191 0.02682 -0.60 -0.13
Contactscontrast 0.0009701 0.03115 -0.70 0.49 0.51
Residual 0.2496486 0.49965
Number of obs: 560, groups: Participant, 35
Fixed effects:
Estimate Std. Error t value
GlovesG 4.203829 0.067646 62.14
GlovesU 4.363972 0.050226 86.89
Contactsnumber 0.043916 0.006308 6.96
Contactscontrast -0.007464 0.006854 -1.09
कोड भूखंड प्राप्त करने के लिए
chemometrics :: drawMahal फ़ंक्शन
# editted from chemometrics::drawMahal
drawelipse <- function (x, center, covariance, quantile = c(0.975, 0.75, 0.5,
0.25), m = 1000, lwdcrit = 1, ...)
{
me <- center
covm <- covariance
cov.svd <- svd(covm, nv = 0)
r <- cov.svd[["u"]] %*% diag(sqrt(cov.svd[["d"]]))
alphamd <- sqrt(qchisq(quantile, 2))
lalpha <- length(alphamd)
for (j in 1:lalpha) {
e1md <- cos(c(0:m)/m * 2 * pi) * alphamd[j]
e2md <- sin(c(0:m)/m * 2 * pi) * alphamd[j]
emd <- cbind(e1md, e2md)
ttmd <- t(r %*% t(emd)) + rep(1, m + 1) %o% me
# if (j == 1) {
# xmax <- max(c(x[, 1], ttmd[, 1]))
# xmin <- min(c(x[, 1], ttmd[, 1]))
# ymax <- max(c(x[, 2], ttmd[, 2]))
# ymin <- min(c(x[, 2], ttmd[, 2]))
# plot(x, xlim = c(xmin, xmax), ylim = c(ymin, ymax),
# ...)
# }
}
sdx <- sd(x[, 1])
sdy <- sd(x[, 2])
for (j in 2:lalpha) {
e1md <- cos(c(0:m)/m * 2 * pi) * alphamd[j]
e2md <- sin(c(0:m)/m * 2 * pi) * alphamd[j]
emd <- cbind(e1md, e2md)
ttmd <- t(r %*% t(emd)) + rep(1, m + 1) %o% me
# lines(ttmd[, 1], ttmd[, 2], type = "l", col = 2)
lines(ttmd[, 1], ttmd[, 2], type = "l", col = 1, lty=2) #
}
j <- 1
e1md <- cos(c(0:m)/m * 2 * pi) * alphamd[j]
e2md <- sin(c(0:m)/m * 2 * pi) * alphamd[j]
emd <- cbind(e1md, e2md)
ttmd <- t(r %*% t(emd)) + rep(1, m + 1) %o% me
# lines(ttmd[, 1], ttmd[, 2], type = "l", col = 1, lwd = lwdcrit)
invisible()
}
५ x 7 कथानक
#### getting data
K <- read.csv("~/Downloads/K.txt", sep="")
### plotting 35 individuals
par(mar=c(2.6,2.6,2.1,1.1))
layout(matrix(1:35,5))
for (i in 1:35) {
# selecting data with gloves for i-th participant
sel <- c(1:624)[(K$Participant==i) & (K$Surface == 'P') & (K$Gloves == 'G')]
# plot data
plot(K$NumberContacts[sel],log(K$CFU,10)[sel], col=1,
xlab="",ylab="",ylim=c(3,6))
# model and plot fit
m <- lm(log(K$CFU[sel],10) ~ K$NumberContacts[sel])
lines(K$NumberContacts[sel],predict(m), col=1)
# selecting data without gloves for i-th participant
sel <- c(1:624)[(K$Participant==i) & (K$Surface == 'P') & (K$Gloves == 'U')]
# plot data
points(K$NumberContacts[sel],log(K$CFU,10)[sel], col=2)
# model and plot fit
m <- lm(log(K$CFU[sel],10) ~ K$NumberContacts[sel])
lines(K$NumberContacts[sel],predict(m), col=2)
title(paste0("participant ",i))
}
2 एक्स 4 प्लॉट
#### plotting 8 treatments (number of contacts)
par(mar=c(5.1,4.1,4.1,2.1))
layout(matrix(1:8,2,byrow=1))
for (i in c(1:8)) {
# plot canvas
plot(c(3,6),c(3,6), xlim = c(3,6), ylim = c(3,6), type="l", lty=2, xlab='gloves', ylab='no gloves')
# select points and plot
sel1 <- c(1:624)[(K$NumberContacts==i) & (K$Surface == 'P') & (K$Gloves == 'G')]
sel2 <- c(1:624)[(K$NumberContacts==i) & (K$Surface == 'P') & (K$Gloves == 'U')]
points(K$log10CFU[sel1],K$log10CFU[sel2])
title(paste0("contact ",i))
# plot mean
points(mean(K$log10CFU[sel1]),mean(K$log10CFU[sel2]),pch=21,col=1,bg=2)
# plot elipse for mahalanobis distance
dd <- cbind(K$log10CFU[sel1],K$log10CFU[sel2])
drawelipse(dd,center=apply(dd,2,mean),
covariance=cov(dd),
quantile=0.975,col="blue",
xlim = c(3,6), ylim = c(3,6), type="l", lty=2, xlab='gloves', ylab='no gloves')
}
NumberContacts
एक संख्यात्मक कारक के रूप में उपयोग कर सकते हैं और एक द्विघात / घन बहुपद शब्द शामिल कर सकते हैं। या सामान्यीकृत योजक मिश्रित मॉडल देखें।