knitr::opts_chunk$set(echo = FALSE, results = 'asis') devtools::load_all()
r6obj_docstat <- rmddochelper::R6ClassDocuStatus$new() r6obj_docstat$set_current_status(psVersion = "0.0.901", psStatus = "Initialisation", psProject = "[REPLACE_WITH_PROJECT]") r6obj_docstat$include_doc_stat(psTitle = "## Document Status")
r6ob_abbrtable <- rmddochelper::R6ClassTableAbbrev$new() ### # include table of abbreviations only, if there are any if (!r6ob_abbrtable$is_empty_abbr()) r6ob_abbrtable$include_abbr_table(psAbbrTitle = "## Abbreviations")
Gegeben ist der folgende Datensatz
nNrAniInPed <- 7 nIdxFirstAniWithData <- 4 dfWwg <- data.frame(Tier = c(1:nNrAniInPed), Vater = c(NA,NA,NA,NA,1,5,5), Mutter = c(NA,NA,NA,NA,2,3,4), WWG = c(4.5,2.9,3.9,3.5,5.0,5.2,5.7)) sigmae2 <- 40 sigmaa2 <- 20 alpha <- sigmae2/sigmaa2 sigmap2 <- sigmaa2 + sigmae2 h2 <- sigmaa2 / sigmap2
knitr::kable((dfWwg))
Wir nehmen an, dass die Restvarianz $\sigma_e^2 = r sigmae2
$ und die genetisch additive Varianz $\sigma_a^2 = r sigmaa2
$.
suppressPackageStartupMessages(require(pedigreemm)) pedSmd <- pedigree(sire = dfWwg$Vater, dam = dfWwg$Mutter, label = as.character(dfWwg$Tier)) #print(pedSmd) matAInv <- as.matrix(getAInv(ped = pedSmd)) #print(matAInv)
In der Vorlesung haben wir die Zerlegung der phänotypischen Beobachtung aufgrund der Mischmodellgleichungen eines Tiermodells besprochen. Wir wollen in dieser Aufgabe nochmals eine solche Zerlegung üben und die Bestandteile eines geschätzten Zuchtwertes mit dem BLUP-Tiermodell noch einmal analysieren. Die Zerlegung soll für die phänotypische Beobachtung von Tier $5$ aus dem oben gezeigten Datensatz gemacht werden.
Wir nehmen an die Mischmodellgleichung für das BLUP-Tiermodell habe die folgende Struktur
### # constants nNrObsSmd <- nrow(dfWwg) ### # design matrics matXSmd <- matrix(data = 1, nrow = nNrObsSmd, ncol = 1) matZSmd <- diag(1, nrow = nNrObsSmd, ncol = nNrObsSmd) matXtXSmd <- crossprod(matXSmd) matXtZSmd <- crossprod(matXSmd,matZSmd) matZtZSmd <- crossprod(matZSmd) matZtZAInvSmd <- matZtZSmd + matAInv * alpha # right-handside vecY <- dfWwg$WWG vecRhsSmd <- rbind(crossprod(matXSmd,vecY), crossprod(matZSmd,vecY)) # coefficient matrix matCoeffSmd <- cbind(rbind(matXtXSmd,t(matXtZSmd)),rbind(matXtZSmd,matZtZAInvSmd)) # solution vector solVecSmd <- c("\\hat{\\mu}", vecGetVecElem(psBaseElement = "\\hat{a}", pnVecLen = nNrObsSmd)) # show mme cat("$$\\left[\n") cat(paste(sGetTexMatrix(pmatAMatrix = matCoeffSmd, pnDigits = 2, pnAlign = rep("c", nNrObsSmd+2)), collapse = "\n")) cat("\\right]\n") cat("\\left[\n") cat(paste(sGetTexMatrix(pmatAMatrix = as.matrix(solVecSmd, nrow = nNrObsSmd+1), pnAlign = rep("c", 2)), collapse = "\n")) cat("\\right]\n") cat(" = \\left[\n") cat(paste(sGetTexMatrix(pmatAMatrix = as.matrix(vecRhsSmd, nrow = nNrObsSmd+1), pnDigits = 1, pnAlign = rep("c", 2)), collapse = "\n")) cat("\\right]\n") cat("$$")
Lösung
\begin{equation}
y_5 = r vecY[5]
= \hat{\mu} - 2(\hat{a}_1 + \hat{a}_2) + \hat{a}_3 + \hat{a}_4 + 7\hat{a}_5 - 2(\hat{a}_6 + \hat{a}_7)
\label{eq:DecompPhenObs}
\end{equation}
\begin{equation} \hat{a}_5 = {1\over 7}(y_5 - \hat{\mu} + 2(\hat{a}_1 + \hat{a}_2) - \hat{a}_3 - \hat{a}_4 + 2(\hat{a}_6 + \hat{a}_7)) \label{eq:SolveAhatAni5} \end{equation}
Die analoge Zerlegung einer phänotypischen Beobachtung soll jetzt für den Fall eines Vatermodells gemacht werden. Vergleichen Sie dabei die Komponenten eines Vatereffektes mit den Bestandteilen eines geschätzten Zuchtwertes aus dem Tiermodell in Aufgabe 1.
sigmas2 <- sigmaa2/4 sigmae2Sire <- sigmap2 - sigmas2 alphaSire <- sigmae2Sire/sigmas2
Die Varianzkomponenten $\sigma_s^2$ beträgt ein Viertel der genetisch-additiven Varianz. Wir übernehmen die phänotypische Varianz aus Aufgabe 1. Somit ist die Restvarianz im Vatermodel $\sigma_e^2 = r sigmae2Sire
$ und das Verhältnis der Varianzen $\alpha = \sigma_e^2/\sigma_s^2 = r alphaSire
$.
Die Mischmodellgleichungen für das Vatermodell lauten
nNrSireEffects <- length(unique(dfWwg$Vater[!is.na(dfWwg$Vater)])) matZSmdSire <- rbind(matrix(0, nrow = sum(is.na(dfWwg$Vater)), ncol = nNrSireEffects), matrix(data = c(1,0,0,0,1,1), nrow = sum(!is.na(dfWwg$Vater)), ncol = nNrSireEffects)) matXtZSmdSire <- crossprod(matXSmd, matZSmdSire) matZtZSmdSire <- crossprod(matZSmdSire) ### # pedigree matASire <- matrix(data = c(1,.5,.5,1), nrow = nNrSireEffects) matAInvSire <- solve(matASire) matZtZAInvSmdSire <- matZtZSmdSire + matAInvSire * alphaSire ### # rhs vecRhsSmdSire <- rbind(crossprod(matXSmd,vecY), crossprod(matZSmdSire,vecY)) # coefficient matrix matCoeffSmdSire <- cbind(rbind(matXtXSmd,t(matXtZSmdSire)),rbind(matXtZSmdSire,matZtZAInvSmdSire)) # solution vector solVecSmdSire <- c("\\hat{\\mu}", "\\hat{s}_1", "\\hat{s}_5") # show mme cat("$$\\left[\n") cat(paste(sGetTexMatrix(pmatAMatrix = matCoeffSmdSire, pnDigits = 2, pnAlign = rep("c", ncol(matCoeffSmdSire)+1)), collapse = "\n")) cat("\\right]\n") cat("\\left[\n") cat(paste(sGetTexMatrix(pmatAMatrix = as.matrix(solVecSmdSire, nrow = lenght(solVecSmdSire)), pnAlign = rep("c", 2)), collapse = "\n")) cat("\\right]\n") cat(" = \\left[\n") cat(paste(sGetTexMatrix(pmatAMatrix = as.matrix(vecRhsSmdSire, nrow = length(vecRhsSmdSire)), pnDigits = 1, pnAlign = rep("c", 2)), collapse = "\n")) cat("\\right]\n") cat("$$")
\pagebreak
Lösung:
Zerlegung der phänotypischen Beobachtun: $$y_5 = \hat{\mu} + 15.67*\hat{s}_1 - 7.33 * \hat{s}_5 $$
Auflösung nach $\hat{s}_1$: $$\hat{s}_1 = (y_5 - \hat{\mu} + 7.33 * \hat{s}_5) / 15.67$$
Komponenten, welche in $\hat{s}_1$ enthalten sind
r round(1 + 11 * 4/3, digits = 2)
$$r round(11 * 2/3, digits = 2)
$$Welches sind die Unterschiede zwischen den Zerlegungen der phänotypischen Beobachtungen und der Komponenten der geschätzten Zuchtwerte in den Aufgaben 1 und 2?
Lösung:
r6ob_abbrtable$writeToTsvFile()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.