{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Lista 3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Rozważmy model: "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{y} = \\mathbf{X\\beta+Za+\\epsilon}$, gdzie"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{y}$ - wektor z wartościami fenotypowmi ($n\\times 1$ w naszym przypadku n = ilość zwierząt) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{\\beta}$ - wektor efektów stałych ($p\\times 1$)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{a}$ - wektor efektów losowych ($q\\times 1$)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{\\epsilon}$ - wektor błędów ($n\\times 1$)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{X}$ - macierz wystąpien dla efektów stałych ($n\\times p$)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{Z}$ - macierz wystąpien dla efektów losowych ($n\\times q$)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zakładamy, że macierze $\\mathbf{X}$ i $\\mathbf{Z}$ są niezależne. Dodatkowo zakładamy, że:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$E(\\mathbf{y}) = \\mathbf{X\\beta}$, $E(\\mathbf{a})=E(\\mathbf{\\epsilon})=0$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$V=Var(\\mathbf{y})=Var(\\mathbf{Za})+ Var(\\mathbf{\\epsilon})=\\mathbf{Z}Var(\\mathbf{a})\\mathbf{Z}^{T}+\\mathbf{I}Var(\\mathbf{\\epsilon})\\mathbf{I}^{T}=\\mathbf{ZGZ}^{T}+\\mathbf{R}$, gdzie"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\mathbf{G}=\\mathbf{A}\\cdot\\sigma^{2}_{a}$, $\\mathbf{R}=\\mathbf{I}\\cdot\\sigma^{2}_{\\epsilon}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$ \\left[ \\begin{array}{cc}\n",
" \\mathbf{X}^{T}\\mathbf{X} & \\mathbf{X}^{T}\\mathbf{Z} \\\\\n",
" \\mathbf{Z}^{T}\\mathbf{X} & \\mathbf{Z}^{T}\\mathbf{Z}+\\mathbf{A}^{-1}\\alpha \\end{array}\\right]\\cdot\n",
" \\left[ \\begin{array}{c}\n",
" \\widehat{\\mathbf{\\beta}} \\\\\n",
" \\widehat{\\mathbf{a}} \\end{array}\\right]=\n",
" \\left[ \\begin{array}{c}\n",
" \\mathbf{X}^{T}\\mathbf{y} \\\\\n",
" \\mathbf{Z}^{T}\\mathbf{y} \\end{array}\\right]$, gdzie"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\alpha=\\frac{\\sigma^{2}_{\\epsilon}}{\\sigma^{2}_{a}}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$ \\left[ \\begin{array}{c}\n",
" \\widehat{\\mathbf{\\beta}} \\\\\n",
" \\widehat{\\mathbf{a}} \\end{array}\\right]=\n",
" \\left[ \\begin{array}{cc}\n",
" \\mathbf{X}^{T}\\mathbf{X} & \\mathbf{X}^{T}\\mathbf{Z} \\\\\n",
" \\mathbf{Z}^{T}\\mathbf{X} & \\mathbf{Z}^{T}\\mathbf{Z}+\\mathbf{A}^{-1}\\alpha \\end{array}\\right]^{-1}\\cdot\n",
" \\left[ \\begin{array}{c}\n",
" \\mathbf{X}^{T}\\mathbf{y} \\\\\n",
" \\mathbf{Z}^{T}\\mathbf{y} \\end{array}\\right]$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$ C = \\left[ \\begin{array}{cc}\n",
" \\mathbf{X}^{T}\\mathbf{X} & \\mathbf{X}^{T}\\mathbf{Z} \\\\\n",
" \\mathbf{Z}^{T}\\mathbf{X} & \\mathbf{Z}^{T}\\mathbf{Z}+\\mathbf{A}^{-1}\\alpha \\end{array}\\right] = \n",
" \\left[ \\begin{array}{cc}\n",
" \\mathbf{C}_{11} & \\mathbf{C}_{12} \\\\ \\mathbf{C}_{21} & \\mathbf{C}_{22} \\end{array}\\right]$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$ C^{-1} = \\left[ \\begin{array}{cc}\n",
" \\mathbf{C}^{11} & \\mathbf{C}^{12} \\\\ \\mathbf{C}^{21} & \\mathbf{C}^{22} \\end{array}\\right]$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dokładność oszacowania wynosi: $r^2 = diag(1-\\mathbf{C}^{22}\\cdot\\alpha$)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Liczymy macierz A"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
\n",
"\n",
"\t| 1.00 | 0.00 | 0.00 | 0.500 | 0.000 | 0.50 | 0.25 | 0.250 |
\n",
"\t| 0.00 | 1.00 | 0.00 | 0.000 | 0.500 | 0.50 | 0.25 | 0.250 |
\n",
"\t| 0.00 | 0.00 | 1.00 | 0.000 | 0.500 | 0.00 | 0.25 | 0.500 |
\n",
"\t| 0.50 | 0.00 | 0.00 | 1.000 | 0.000 | 0.25 | 0.50 | 0.125 |
\n",
"\t| 0.00 | 0.50 | 0.50 | 0.000 | 1.000 | 0.25 | 0.50 | 0.375 |
\n",
"\t| 0.50 | 0.50 | 0.00 | 0.250 | 0.250 | 1.00 | 0.25 | 0.500 |
\n",
"\t| 0.25 | 0.25 | 0.25 | 0.500 | 0.500 | 0.25 | 1.00 | 0.250 |
\n",
"\t| 0.25 | 0.25 | 0.50 | 0.125 | 0.375 | 0.50 | 0.25 | 1.000 |
\n",
"\n",
"
\n"
],
"text/latex": [
"\\begin{tabular}{r|llllllll}\n",
" 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\\\\n",
"\\hline\n",
"\t 1.00 & 0.00 & 0.00 & 0.500 & 0.000 & 0.50 & 0.25 & 0.250\\\\\n",
"\t 0.00 & 1.00 & 0.00 & 0.000 & 0.500 & 0.50 & 0.25 & 0.250\\\\\n",
"\t 0.00 & 0.00 & 1.00 & 0.000 & 0.500 & 0.00 & 0.25 & 0.500\\\\\n",
"\t 0.50 & 0.00 & 0.00 & 1.000 & 0.000 & 0.25 & 0.50 & 0.125\\\\\n",
"\t 0.00 & 0.50 & 0.50 & 0.000 & 1.000 & 0.25 & 0.50 & 0.375\\\\\n",
"\t 0.50 & 0.50 & 0.00 & 0.250 & 0.250 & 1.00 & 0.25 & 0.500\\\\\n",
"\t 0.25 & 0.25 & 0.25 & 0.500 & 0.500 & 0.25 & 1.00 & 0.250\\\\\n",
"\t 0.25 & 0.25 & 0.50 & 0.125 & 0.375 & 0.50 & 0.25 & 1.000\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |\n",
"|---|---|---|---|---|---|---|---|\n",
"| 1.00 | 0.00 | 0.00 | 0.500 | 0.000 | 0.50 | 0.25 | 0.250 |\n",
"| 0.00 | 1.00 | 0.00 | 0.000 | 0.500 | 0.50 | 0.25 | 0.250 |\n",
"| 0.00 | 0.00 | 1.00 | 0.000 | 0.500 | 0.00 | 0.25 | 0.500 |\n",
"| 0.50 | 0.00 | 0.00 | 1.000 | 0.000 | 0.25 | 0.50 | 0.125 |\n",
"| 0.00 | 0.50 | 0.50 | 0.000 | 1.000 | 0.25 | 0.50 | 0.375 |\n",
"| 0.50 | 0.50 | 0.00 | 0.250 | 0.250 | 1.00 | 0.25 | 0.500 |\n",
"| 0.25 | 0.25 | 0.25 | 0.500 | 0.500 | 0.25 | 1.00 | 0.250 |\n",
"| 0.25 | 0.25 | 0.50 | 0.125 | 0.375 | 0.50 | 0.25 | 1.000 |\n",
"\n"
],
"text/plain": [
" 1 2 3 4 5 6 7 8 \n",
"1 1.00 0.00 0.00 0.500 0.000 0.50 0.25 0.250\n",
"2 0.00 1.00 0.00 0.000 0.500 0.50 0.25 0.250\n",
"3 0.00 0.00 1.00 0.000 0.500 0.00 0.25 0.500\n",
"4 0.50 0.00 0.00 1.000 0.000 0.25 0.50 0.125\n",
"5 0.00 0.50 0.50 0.000 1.000 0.25 0.50 0.375\n",
"6 0.50 0.50 0.00 0.250 0.250 1.00 0.25 0.500\n",
"7 0.25 0.25 0.25 0.500 0.500 0.25 1.00 0.250\n",
"8 0.25 0.25 0.50 0.125 0.375 0.50 0.25 1.000"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"library(pedigreemm)\n",
"\n",
"id = 1:8\n",
"sire = c(NA, NA, NA, 1, 3, 1, 4, 3)\n",
"dam = c(NA, NA, NA, NA, 2, 2, 5, 6)\n",
"\n",
"ped = pedigree(sire = sire, dam = dam, label = id)\n",
"(A = as.matrix(getA(ped)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Definiujemy kolejne źródła informacji"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\t| 4.5 | 2.9 | 3.9 | 3.5 | 5 |
\n",
"\n",
"
\n"
],
"text/latex": [
"\\begin{tabular}{lllll}\n",
"\t 4.5 & 2.9 & 3.9 & 3.5 & 5 \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"| 4.5 | 2.9 | 3.9 | 3.5 | 5 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] [,4] [,5]\n",
"[1,] 4.5 2.9 3.9 3.5 5 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"\t| 1 | 0 | 0 | 1 | 1 |
\n",
"\t| 0 | 1 | 1 | 0 | 0 |
\n",
"\n",
"
\n"
],
"text/latex": [
"\\begin{tabular}{lllll}\n",
"\t 1 & 0 & 0 & 1 & 1\\\\\n",
"\t 0 & 1 & 1 & 0 & 0\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"| 1 | 0 | 0 | 1 | 1 |\n",
"| 0 | 1 | 1 | 0 | 0 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] [,4] [,5]\n",
"[1,] 1 0 0 1 1 \n",
"[2,] 0 1 1 0 0 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"\t| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
\n",
"\t| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
\n",
"\t| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
\n",
"\t| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
\n",
"\t| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
\n",
"\n",
"
\n"
],
"text/latex": [
"\\begin{tabular}{llllllll}\n",
"\t 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\\n",
"\t 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\\\\n",
"\t 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\\\\n",
"\t 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\\\\n",
"\t 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |\n",
"| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |\n",
"| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |\n",
"| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |\n",
"| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]\n",
"[1,] 0 0 0 1 0 0 0 0 \n",
"[2,] 0 0 0 0 1 0 0 0 \n",
"[3,] 0 0 0 0 0 1 0 0 \n",
"[4,] 0 0 0 0 0 0 1 0 \n",
"[5,] 0 0 0 0 0 0 0 1 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y = as.matrix(c(4.5, 2.9, 3.9, 3.5, 5.0))\n",
"t(y)\n",
"\n",
"sex = c(1, 0, 0, 1, 1)\n",
"X = matrix(0, 5, 2)\n",
"X[,1] = sex\n",
"X[,2] = 1-sex\n",
"t(X)\n",
"\n",
"I = diag(5)\n",
"Z = matrix(0, 5, 8)\n",
"Z[1:5, 4:8] = I\n",
"Z"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Rozwiązujemy układ równan mieszanych"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\t- $mC
\n",
"\t\t\n",
"\n",
"\t| 3 | 0 | 0.000000e+00 | 0.000000e+00 | 0.000000e+00 | 1.000000e+00 | 0.000000e+00 | 0.000000e+00 | 1.000000e+00 | 1.000000e+00 |
\n",
"\t| 0 | 2 | 0.000000e+00 | 0.000000e+00 | 0.000000e+00 | 0.000000e+00 | 1.000000e+00 | 1.000000e+00 | 0.000000e+00 | 0.000000e+00 |
\n",
"\t| 0 | 0 | 3.666667e+00 | 1.000000e+00 | 5.107026e-15 | -1.333333e+00 | 1.110223e-15 | -2.000000e+00 | -9.547918e-15 | -4.309053e-15 |
\n",
"\t| 0 | 0 | 1.000000e+00 | 4.000000e+00 | 1.000000e+00 | -2.664535e-15 | -2.000000e+00 | -2.000000e+00 | 1.776357e-15 | 2.914335e-16 |
\n",
"\t| 0 | 0 | 1.665335e-15 | 1.000000e+00 | 4.000000e+00 | 9.992007e-16 | -2.000000e+00 | 1.000000e+00 | -7.771561e-16 | -2.000000e+00 |
\n",
"\t| 1 | 0 | -1.333333e+00 | -2.664535e-15 | -4.329870e-15 | 4.666667e+00 | 1.000000e+00 | 1.998401e-15 | -2.000000e+00 | 1.915135e-15 |
\n",
"\t| 0 | 1 | -2.220446e-16 | -2.000000e+00 | -2.000000e+00 | 1.000000e+00 | 6.000000e+00 | 8.881784e-16 | -2.000000e+00 | -4.232725e-15 |
\n",
"\t| 0 | 1 | -2.000000e+00 | -2.000000e+00 | 1.000000e+00 | -5.551115e-16 | -1.776357e-15 | 6.000000e+00 | 1.221245e-15 | -2.000000e+00 |
\n",
"\t| 1 | 0 | 4.440892e-16 | -1.332268e-15 | -4.440892e-16 | -2.000000e+00 | -2.000000e+00 | -7.771561e-16 | 5.000000e+00 | 1.172673e-15 |
\n",
"\t| 1 | 0 | -1.998401e-15 | -7.709111e-15 | -2.000000e+00 | -5.509482e-15 | 1.970646e-15 | -2.000000e+00 | 5.606626e-15 | 5.000000e+00 |
\n",
"\n",
"
\n",
" \n",
"\t- $est
\n",
"\t\t\n",
"\n",
"\t| 4.358502330 |
\n",
"\t| 3.404430006 |
\n",
"\t| 0.098444576 |
\n",
"\t| -0.018770099 |
\n",
"\t| -0.041084203 |
\n",
"\t| -0.008663123 |
\n",
"\t| -0.185732099 |
\n",
"\t| 0.176872088 |
\n",
"\t| -0.249458555 |
\n",
"\t| 0.182614688 |
\n",
"\n",
"
\n",
" \n",
"
\n"
],
"text/latex": [
"\\begin{description}\n",
"\\item[\\$mC] \\begin{tabular}{llllllllll}\n",
"\t 3 & 0 & 0.000000e+00 & 0.000000e+00 & 0.000000e+00 & 1.000000e+00 & 0.000000e+00 & 0.000000e+00 & 1.000000e+00 & 1.000000e+00\\\\\n",
"\t 0 & 2 & 0.000000e+00 & 0.000000e+00 & 0.000000e+00 & 0.000000e+00 & 1.000000e+00 & 1.000000e+00 & 0.000000e+00 & 0.000000e+00\\\\\n",
"\t 0 & 0 & 3.666667e+00 & 1.000000e+00 & 5.107026e-15 & -1.333333e+00 & 1.110223e-15 & -2.000000e+00 & -9.547918e-15 & -4.309053e-15\\\\\n",
"\t 0 & 0 & 1.000000e+00 & 4.000000e+00 & 1.000000e+00 & -2.664535e-15 & -2.000000e+00 & -2.000000e+00 & 1.776357e-15 & 2.914335e-16\\\\\n",
"\t 0 & 0 & 1.665335e-15 & 1.000000e+00 & 4.000000e+00 & 9.992007e-16 & -2.000000e+00 & 1.000000e+00 & -7.771561e-16 & -2.000000e+00\\\\\n",
"\t 1 & 0 & -1.333333e+00 & -2.664535e-15 & -4.329870e-15 & 4.666667e+00 & 1.000000e+00 & 1.998401e-15 & -2.000000e+00 & 1.915135e-15\\\\\n",
"\t 0 & 1 & -2.220446e-16 & -2.000000e+00 & -2.000000e+00 & 1.000000e+00 & 6.000000e+00 & 8.881784e-16 & -2.000000e+00 & -4.232725e-15\\\\\n",
"\t 0 & 1 & -2.000000e+00 & -2.000000e+00 & 1.000000e+00 & -5.551115e-16 & -1.776357e-15 & 6.000000e+00 & 1.221245e-15 & -2.000000e+00\\\\\n",
"\t 1 & 0 & 4.440892e-16 & -1.332268e-15 & -4.440892e-16 & -2.000000e+00 & -2.000000e+00 & -7.771561e-16 & 5.000000e+00 & 1.172673e-15\\\\\n",
"\t 1 & 0 & -1.998401e-15 & -7.709111e-15 & -2.000000e+00 & -5.509482e-15 & 1.970646e-15 & -2.000000e+00 & 5.606626e-15 & 5.000000e+00\\\\\n",
"\\end{tabular}\n",
"\n",
"\\item[\\$est] \\begin{tabular}{l}\n",
"\t 4.358502330\\\\\n",
"\t 3.404430006\\\\\n",
"\t 0.098444576\\\\\n",
"\t -0.018770099\\\\\n",
"\t -0.041084203\\\\\n",
"\t -0.008663123\\\\\n",
"\t -0.185732099\\\\\n",
"\t 0.176872088\\\\\n",
"\t -0.249458555\\\\\n",
"\t 0.182614688\\\\\n",
"\\end{tabular}\n",
"\n",
"\\end{description}\n"
],
"text/markdown": [
"$mC\n",
": \n",
"| 3 | 0 | 0.000000e+00 | 0.000000e+00 | 0.000000e+00 | 1.000000e+00 | 0.000000e+00 | 0.000000e+00 | 1.000000e+00 | 1.000000e+00 |\n",
"| 0 | 2 | 0.000000e+00 | 0.000000e+00 | 0.000000e+00 | 0.000000e+00 | 1.000000e+00 | 1.000000e+00 | 0.000000e+00 | 0.000000e+00 |\n",
"| 0 | 0 | 3.666667e+00 | 1.000000e+00 | 5.107026e-15 | -1.333333e+00 | 1.110223e-15 | -2.000000e+00 | -9.547918e-15 | -4.309053e-15 |\n",
"| 0 | 0 | 1.000000e+00 | 4.000000e+00 | 1.000000e+00 | -2.664535e-15 | -2.000000e+00 | -2.000000e+00 | 1.776357e-15 | 2.914335e-16 |\n",
"| 0 | 0 | 1.665335e-15 | 1.000000e+00 | 4.000000e+00 | 9.992007e-16 | -2.000000e+00 | 1.000000e+00 | -7.771561e-16 | -2.000000e+00 |\n",
"| 1 | 0 | -1.333333e+00 | -2.664535e-15 | -4.329870e-15 | 4.666667e+00 | 1.000000e+00 | 1.998401e-15 | -2.000000e+00 | 1.915135e-15 |\n",
"| 0 | 1 | -2.220446e-16 | -2.000000e+00 | -2.000000e+00 | 1.000000e+00 | 6.000000e+00 | 8.881784e-16 | -2.000000e+00 | -4.232725e-15 |\n",
"| 0 | 1 | -2.000000e+00 | -2.000000e+00 | 1.000000e+00 | -5.551115e-16 | -1.776357e-15 | 6.000000e+00 | 1.221245e-15 | -2.000000e+00 |\n",
"| 1 | 0 | 4.440892e-16 | -1.332268e-15 | -4.440892e-16 | -2.000000e+00 | -2.000000e+00 | -7.771561e-16 | 5.000000e+00 | 1.172673e-15 |\n",
"| 1 | 0 | -1.998401e-15 | -7.709111e-15 | -2.000000e+00 | -5.509482e-15 | 1.970646e-15 | -2.000000e+00 | 5.606626e-15 | 5.000000e+00 |\n",
"\n",
"\n",
"$est\n",
": \n",
"| 4.358502330 |\n",
"| 3.404430006 |\n",
"| 0.098444576 |\n",
"| -0.018770099 |\n",
"| -0.041084203 |\n",
"| -0.008663123 |\n",
"| -0.185732099 |\n",
"| 0.176872088 |\n",
"| -0.249458555 |\n",
"| 0.182614688 |\n",
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
"$mC\n",
" [,1] [,2] [,3] [,4] [,5] [,6]\n",
" [1,] 3 0 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00\n",
" [2,] 0 2 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00\n",
" [3,] 0 0 3.666667e+00 1.000000e+00 5.107026e-15 -1.333333e+00\n",
" [4,] 0 0 1.000000e+00 4.000000e+00 1.000000e+00 -2.664535e-15\n",
" [5,] 0 0 1.665335e-15 1.000000e+00 4.000000e+00 9.992007e-16\n",
" [6,] 1 0 -1.333333e+00 -2.664535e-15 -4.329870e-15 4.666667e+00\n",
" [7,] 0 1 -2.220446e-16 -2.000000e+00 -2.000000e+00 1.000000e+00\n",
" [8,] 0 1 -2.000000e+00 -2.000000e+00 1.000000e+00 -5.551115e-16\n",
" [9,] 1 0 4.440892e-16 -1.332268e-15 -4.440892e-16 -2.000000e+00\n",
"[10,] 1 0 -1.998401e-15 -7.709111e-15 -2.000000e+00 -5.509482e-15\n",
" [,7] [,8] [,9] [,10]\n",
" [1,] 0.000000e+00 0.000000e+00 1.000000e+00 1.000000e+00\n",
" [2,] 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n",
" [3,] 1.110223e-15 -2.000000e+00 -9.547918e-15 -4.309053e-15\n",
" [4,] -2.000000e+00 -2.000000e+00 1.776357e-15 2.914335e-16\n",
" [5,] -2.000000e+00 1.000000e+00 -7.771561e-16 -2.000000e+00\n",
" [6,] 1.000000e+00 1.998401e-15 -2.000000e+00 1.915135e-15\n",
" [7,] 6.000000e+00 8.881784e-16 -2.000000e+00 -4.232725e-15\n",
" [8,] -1.776357e-15 6.000000e+00 1.221245e-15 -2.000000e+00\n",
" [9,] -2.000000e+00 -7.771561e-16 5.000000e+00 1.172673e-15\n",
"[10,] 1.970646e-15 -2.000000e+00 5.606626e-15 5.000000e+00\n",
"\n",
"$est\n",
" [,1]\n",
" [1,] 4.358502330\n",
" [2,] 3.404430006\n",
" [3,] 0.098444576\n",
" [4,] -0.018770099\n",
" [5,] -0.041084203\n",
" [6,] -0.008663123\n",
" [7,] -0.185732099\n",
" [8,] 0.176872088\n",
" [9,] -0.249458555\n",
"[10,] 0.182614688\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"library(MASS)\n",
"\n",
"mme = function(y, X, Z, A, sigma_a, sigma_e) {\n",
" alpha = sigma_e / sigma_a\n",
" invA = ginv(A)\n",
" C = rbind(cbind(t(X)%*%X, t(X)%*%Z),\n",
" cbind(t(Z)%*%X, t(Z)%*%Z+invA*alpha))\n",
" rhs = rbind(t(X)%*%y, t(Z)%*%y)\n",
" invC = ginv(C)\n",
" estimators = invC%*%rhs\n",
" list(mC = C, est = estimators)\n",
"}\n",
"\n",
"mme(y, X, Z, A, 20, 40)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Dokładność wartości hodowlanych"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\t| 0.59556097 | 0.15730213 | -0.164119413 | -0.083624565 | -0.13059083 | -0.26455749 | -0.14827804 | -0.16632621 | -0.2842464 | -0.2378790 |
\n",
"\t| 0.15730213 | 0.80245865 | -0.132863260 | -0.241250738 | -0.11196840 | -0.08730803 | -0.29891465 | -0.30600266 | -0.1859495 | -0.1986488 |
\n",
"\t| -0.16411941 | -0.13286326 | 0.471094211 | 0.006928037 | 0.03264668 | 0.21954371 | 0.04495225 | 0.22077427 | 0.1386223 | 0.1341923 |
\n",
"\t| -0.08362457 | -0.24125074 | 0.006928037 | 0.492095721 | -0.01030797 | 0.02039033 | 0.23734577 | 0.24515571 | 0.1198194 | 0.1106640 |
\n",
"\t| -0.13059083 | -0.11196840 | 0.032646682 | -0.010307967 | 0.45645878 | 0.04812709 | 0.20132326 | 0.02261354 | 0.1258983 | 0.2177471 |
\n",
"\t| -0.26455749 | -0.08730803 | 0.219543709 | 0.020390333 | 0.04812709 | 0.42768015 | 0.04704420 | 0.12757186 | 0.2428012 | 0.1231911 |
\n",
"\t| -0.14827804 | -0.29891465 | 0.044952254 | 0.237345770 | 0.20132326 | 0.04704420 | 0.42810675 | 0.16972255 | 0.2197160 | 0.1780739 |
\n",
"\t| -0.16632621 | -0.30600266 | 0.220774267 | 0.245155707 | 0.02261354 | 0.12757186 | 0.16972255 | 0.44228277 | 0.1521830 | 0.2192238 |
\n",
"\t| -0.28424641 | -0.18594950 | 0.138622268 | 0.119819354 | 0.12589831 | 0.24280124 | 0.21971599 | 0.15218301 | 0.4418562 | 0.1680818 |
\n",
"\t| -0.23787901 | -0.19864885 | 0.134192262 | 0.110664009 | 0.21774710 | 0.12319108 | 0.17807393 | 0.21922376 | 0.1680818 | 0.4223641 |
\n",
"\n",
"
\n"
],
"text/latex": [
"\\begin{tabular}{llllllllll}\n",
"\t 0.59556097 & 0.15730213 & -0.164119413 & -0.083624565 & -0.13059083 & -0.26455749 & -0.14827804 & -0.16632621 & -0.2842464 & -0.2378790 \\\\\n",
"\t 0.15730213 & 0.80245865 & -0.132863260 & -0.241250738 & -0.11196840 & -0.08730803 & -0.29891465 & -0.30600266 & -0.1859495 & -0.1986488 \\\\\n",
"\t -0.16411941 & -0.13286326 & 0.471094211 & 0.006928037 & 0.03264668 & 0.21954371 & 0.04495225 & 0.22077427 & 0.1386223 & 0.1341923 \\\\\n",
"\t -0.08362457 & -0.24125074 & 0.006928037 & 0.492095721 & -0.01030797 & 0.02039033 & 0.23734577 & 0.24515571 & 0.1198194 & 0.1106640 \\\\\n",
"\t -0.13059083 & -0.11196840 & 0.032646682 & -0.010307967 & 0.45645878 & 0.04812709 & 0.20132326 & 0.02261354 & 0.1258983 & 0.2177471 \\\\\n",
"\t -0.26455749 & -0.08730803 & 0.219543709 & 0.020390333 & 0.04812709 & 0.42768015 & 0.04704420 & 0.12757186 & 0.2428012 & 0.1231911 \\\\\n",
"\t -0.14827804 & -0.29891465 & 0.044952254 & 0.237345770 & 0.20132326 & 0.04704420 & 0.42810675 & 0.16972255 & 0.2197160 & 0.1780739 \\\\\n",
"\t -0.16632621 & -0.30600266 & 0.220774267 & 0.245155707 & 0.02261354 & 0.12757186 & 0.16972255 & 0.44228277 & 0.1521830 & 0.2192238 \\\\\n",
"\t -0.28424641 & -0.18594950 & 0.138622268 & 0.119819354 & 0.12589831 & 0.24280124 & 0.21971599 & 0.15218301 & 0.4418562 & 0.1680818 \\\\\n",
"\t -0.23787901 & -0.19864885 & 0.134192262 & 0.110664009 & 0.21774710 & 0.12319108 & 0.17807393 & 0.21922376 & 0.1680818 & 0.4223641 \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"| 0.59556097 | 0.15730213 | -0.164119413 | -0.083624565 | -0.13059083 | -0.26455749 | -0.14827804 | -0.16632621 | -0.2842464 | -0.2378790 |\n",
"| 0.15730213 | 0.80245865 | -0.132863260 | -0.241250738 | -0.11196840 | -0.08730803 | -0.29891465 | -0.30600266 | -0.1859495 | -0.1986488 |\n",
"| -0.16411941 | -0.13286326 | 0.471094211 | 0.006928037 | 0.03264668 | 0.21954371 | 0.04495225 | 0.22077427 | 0.1386223 | 0.1341923 |\n",
"| -0.08362457 | -0.24125074 | 0.006928037 | 0.492095721 | -0.01030797 | 0.02039033 | 0.23734577 | 0.24515571 | 0.1198194 | 0.1106640 |\n",
"| -0.13059083 | -0.11196840 | 0.032646682 | -0.010307967 | 0.45645878 | 0.04812709 | 0.20132326 | 0.02261354 | 0.1258983 | 0.2177471 |\n",
"| -0.26455749 | -0.08730803 | 0.219543709 | 0.020390333 | 0.04812709 | 0.42768015 | 0.04704420 | 0.12757186 | 0.2428012 | 0.1231911 |\n",
"| -0.14827804 | -0.29891465 | 0.044952254 | 0.237345770 | 0.20132326 | 0.04704420 | 0.42810675 | 0.16972255 | 0.2197160 | 0.1780739 |\n",
"| -0.16632621 | -0.30600266 | 0.220774267 | 0.245155707 | 0.02261354 | 0.12757186 | 0.16972255 | 0.44228277 | 0.1521830 | 0.2192238 |\n",
"| -0.28424641 | -0.18594950 | 0.138622268 | 0.119819354 | 0.12589831 | 0.24280124 | 0.21971599 | 0.15218301 | 0.4418562 | 0.1680818 |\n",
"| -0.23787901 | -0.19864885 | 0.134192262 | 0.110664009 | 0.21774710 | 0.12319108 | 0.17807393 | 0.21922376 | 0.1680818 | 0.4223641 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] [,4] [,5] [,6] \n",
" [1,] 0.59556097 0.15730213 -0.164119413 -0.083624565 -0.13059083 -0.26455749\n",
" [2,] 0.15730213 0.80245865 -0.132863260 -0.241250738 -0.11196840 -0.08730803\n",
" [3,] -0.16411941 -0.13286326 0.471094211 0.006928037 0.03264668 0.21954371\n",
" [4,] -0.08362457 -0.24125074 0.006928037 0.492095721 -0.01030797 0.02039033\n",
" [5,] -0.13059083 -0.11196840 0.032646682 -0.010307967 0.45645878 0.04812709\n",
" [6,] -0.26455749 -0.08730803 0.219543709 0.020390333 0.04812709 0.42768015\n",
" [7,] -0.14827804 -0.29891465 0.044952254 0.237345770 0.20132326 0.04704420\n",
" [8,] -0.16632621 -0.30600266 0.220774267 0.245155707 0.02261354 0.12757186\n",
" [9,] -0.28424641 -0.18594950 0.138622268 0.119819354 0.12589831 0.24280124\n",
"[10,] -0.23787901 -0.19864885 0.134192262 0.110664009 0.21774710 0.12319108\n",
" [,7] [,8] [,9] [,10] \n",
" [1,] -0.14827804 -0.16632621 -0.2842464 -0.2378790\n",
" [2,] -0.29891465 -0.30600266 -0.1859495 -0.1986488\n",
" [3,] 0.04495225 0.22077427 0.1386223 0.1341923\n",
" [4,] 0.23734577 0.24515571 0.1198194 0.1106640\n",
" [5,] 0.20132326 0.02261354 0.1258983 0.2177471\n",
" [6,] 0.04704420 0.12757186 0.2428012 0.1231911\n",
" [7,] 0.42810675 0.16972255 0.2197160 0.1780739\n",
" [8,] 0.16972255 0.44228277 0.1521830 0.2192238\n",
" [9,] 0.21971599 0.15218301 0.4418562 0.1680818\n",
"[10,] 0.17807393 0.21922376 0.1680818 0.4223641"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\t- 0.0578115770821027
\n",
"\t- 0.0158085581151157
\n",
"\t- 0.0870824309247226
\n",
"\t- 0.144639692852924
\n",
"\t- 0.143786506530158
\n",
"\t- 0.115434468727441
\n",
"\t- 0.116287655050208
\n",
"\t- 0.155271707028943
\n",
"
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.0578115770821027\n",
"\\item 0.0158085581151157\n",
"\\item 0.0870824309247226\n",
"\\item 0.144639692852924\n",
"\\item 0.143786506530158\n",
"\\item 0.115434468727441\n",
"\\item 0.116287655050208\n",
"\\item 0.155271707028943\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.0578115770821027\n",
"2. 0.0158085581151157\n",
"3. 0.0870824309247226\n",
"4. 0.144639692852924\n",
"5. 0.143786506530158\n",
"6. 0.115434468727441\n",
"7. 0.116287655050208\n",
"8. 0.155271707028943\n",
"\n",
"\n"
],
"text/plain": [
"[1] 0.05781158 0.01580856 0.08708243 0.14463969 0.14378651 0.11543447 0.11628766\n",
"[8] 0.15527171"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\t- 0.240440381554561
\n",
"\t- 0.125732088645324
\n",
"\t- 0.295097324496042
\n",
"\t- 0.38031525456248
\n",
"\t- 0.379191912532636
\n",
"\t- 0.339756484452381
\n",
"\t- 0.341009757998518
\n",
"\t- 0.39404531088308
\n",
"
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.240440381554561\n",
"\\item 0.125732088645324\n",
"\\item 0.295097324496042\n",
"\\item 0.38031525456248\n",
"\\item 0.379191912532636\n",
"\\item 0.339756484452381\n",
"\\item 0.341009757998518\n",
"\\item 0.39404531088308\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.240440381554561\n",
"2. 0.125732088645324\n",
"3. 0.295097324496042\n",
"4. 0.38031525456248\n",
"5. 0.379191912532636\n",
"6. 0.339756484452381\n",
"7. 0.341009757998518\n",
"8. 0.39404531088308\n",
"\n",
"\n"
],
"text/plain": [
"[1] 0.2404404 0.1257321 0.2950973 0.3803153 0.3791919 0.3397565 0.3410098\n",
"[8] 0.3940453"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"C = as.matrix(mme(y, X, Z, A, 20, 40)$mC)\n",
"(invC = ginv(C))\n",
"\n",
"invC22 = invC[3:10, 3:10]\n",
"(r2 = diag(1 - invC22*2))\n",
"(r = sqrt(r2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5. Odziedziczalność cechy"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"0.333333333333333"
],
"text/latex": [
"0.333333333333333"
],
"text/markdown": [
"0.333333333333333"
],
"text/plain": [
"[1] 0.3333333"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"(h2 = 20 / (20 + 40))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6. Istotność efektów stałych"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Test Walda:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$W = \\frac{\\widehat{\\beta}}{se(\\widehat{\\beta})}\\sim\\mathcal{N}(0,1)$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$H_{0}: \\beta=0$ vs. $H_{1}: \\beta\\neq 0$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$var(\\widehat{\\beta}) = \\left(\\mathbf{X}^{T}\\mathbf{V}^{-1}\\mathbf{X}\\right)^{-1}$"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\t| 60.0 | 0.0 | 5 | 10 | 2.5 |
\n",
"\t| 0.0 | 60.0 | 5 | 10 | 7.5 |
\n",
"\t| 5.0 | 5.0 | 60 | 5 | 10.0 |
\n",
"\t| 10.0 | 10.0 | 5 | 60 | 5.0 |
\n",
"\t| 2.5 | 7.5 | 10 | 5 | 60.0 |
\n",
"\n",
"
\n"
],
"text/latex": [
"\\begin{tabular}{lllll}\n",
"\t 60.0 & 0.0 & 5 & 10 & 2.5\\\\\n",
"\t 0.0 & 60.0 & 5 & 10 & 7.5\\\\\n",
"\t 5.0 & 5.0 & 60 & 5 & 10.0\\\\\n",
"\t 10.0 & 10.0 & 5 & 60 & 5.0\\\\\n",
"\t 2.5 & 7.5 & 10 & 5 & 60.0\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"| 60.0 | 0.0 | 5 | 10 | 2.5 |\n",
"| 0.0 | 60.0 | 5 | 10 | 7.5 |\n",
"| 5.0 | 5.0 | 60 | 5 | 10.0 |\n",
"| 10.0 | 10.0 | 5 | 60 | 5.0 |\n",
"| 2.5 | 7.5 | 10 | 5 | 60.0 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] [,4] [,5]\n",
"[1,] 60.0 0.0 5 10 2.5\n",
"[2,] 0.0 60.0 5 10 7.5\n",
"[3,] 5.0 5.0 60 5 10.0\n",
"[4,] 10.0 10.0 5 60 5.0\n",
"[5,] 2.5 7.5 10 5 60.0"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"\t| 23.822439 | 6.292085 |
\n",
"\t| 6.292085 | 32.098346 |
\n",
"\n",
"
\n"
],
"text/latex": [
"\\begin{tabular}{ll}\n",
"\t 23.822439 & 6.292085\\\\\n",
"\t 6.292085 & 32.098346\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"| 23.822439 | 6.292085 |\n",
"| 6.292085 | 32.098346 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] \n",
"[1,] 23.822439 6.292085\n",
"[2,] 6.292085 32.098346"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\t- 4.88082357807458
\n",
"\t- 5.66554023294585
\n",
"
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 4.88082357807458\n",
"\\item 5.66554023294585\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 4.88082357807458\n",
"2. 5.66554023294585\n",
"\n",
"\n"
],
"text/plain": [
"[1] 4.880824 5.665540"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\t- 0.892985017822407
\n",
"\t- 0.600901214346598
\n",
"
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.892985017822407\n",
"\\item 0.600901214346598\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.892985017822407\n",
"2. 0.600901214346598\n",
"\n",
"\n"
],
"text/plain": [
"[1] 0.8929850 0.6009012"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\t- 0.371865195985295
\n",
"\t- 0.547905784351094
\n",
"
\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.371865195985295\n",
"\\item 0.547905784351094\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.371865195985295\n",
"2. 0.547905784351094\n",
"\n",
"\n"
],
"text/plain": [
"[1] 0.3718652 0.5479058"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G = A*20\n",
"R = diag(5)*40\n",
"V = Z%*%G%*%t(Z) + R\n",
"V\n",
"\n",
"(varB = ginv(t(X)%*%ginv(V)%*%X))\n",
"(seB = sqrt(diag(varB)))\n",
"\n",
"(testWalda = mme(y, X, Z, A, 20, 40)$est[1:2] / seB)\n",
"(p_value = 2*pnorm(abs(testWalda), lower.tail = FALSE))\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "3.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}