{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis of contingency tables\n", "\n", "本节需要的包:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [ "hide-output" ], "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "载入需要的程辑包:s20x\n", "\n", "Warning message:\n", "\"程辑包's20x'是用R版本4.2.3 来建造的\"\n" ] } ], "source": [ "require(s20x)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "分类统计表" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 8 × 3
SubjectPassAttend
<int><chr><chr>
11passattend
22passattend
33passattend
44passattend
55passattend
66failnot.attend
77passnot.attend
88failattend
\n" ], "text/latex": [ "A data.frame: 8 × 3\n", "\\begin{tabular}{r|lll}\n", " & Subject & Pass & Attend\\\\\n", " & & & \\\\\n", "\\hline\n", "\t1 & 1 & pass & attend \\\\\n", "\t2 & 2 & pass & attend \\\\\n", "\t3 & 3 & pass & attend \\\\\n", "\t4 & 4 & pass & attend \\\\\n", "\t5 & 5 & pass & attend \\\\\n", "\t6 & 6 & fail & not.attend\\\\\n", "\t7 & 7 & pass & not.attend\\\\\n", "\t8 & 8 & fail & attend \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 8 × 3\n", "\n", "| | Subject <int> | Pass <chr> | Attend <chr> |\n", "|---|---|---|---|\n", "| 1 | 1 | pass | attend |\n", "| 2 | 2 | pass | attend |\n", "| 3 | 3 | pass | attend |\n", "| 4 | 4 | pass | attend |\n", "| 5 | 5 | pass | attend |\n", "| 6 | 6 | fail | not.attend |\n", "| 7 | 7 | pass | not.attend |\n", "| 8 | 8 | fail | attend |\n", "\n" ], "text/plain": [ " Subject Pass Attend \n", "1 1 pass attend \n", "2 2 pass attend \n", "3 3 pass attend \n", "4 4 pass attend \n", "5 5 pass attend \n", "6 6 fail not.attend\n", "7 7 pass not.attend\n", "8 8 fail attend " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "AP.df <- read.table(\"../data/AttendPass.txt\", header = T)\n", "head(AP.df, 8)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ " Pass\n", "Attend fail pass\n", " attend 17 83\n", " not.attend 27 19" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "AP.tbl <- with(AP.df, table(Attend, Pass))\n", "AP.tbl\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAM1BMVEUAAABNTU1oaGh8fHyMjIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD////ojgWfAAAACXBIWXMAABJ0AAASdAHeZh94AAAdu0lEQVR4nO3djXJUh5qr4WUgwAl/ff9Xe7AdoEkQswtL9pL6farGsJm07FqfNHYc78lxAfBkx0t/AMAChgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIL4QH/6fO+eTO+VHNOC7qEfPg/+X4739senLn/KhmtNXhBTEk/MpxHI9vHn7z7e3l4Zf7tzz4q6dxfHtAP/3Hqid3zo+q3z//B/W4/PQ/x/HtTw8e/NXT+PbL5VL75M75UW34RR1+/tMb99+HcvW/aXty5/yoBhzHcV2Hn/7jeevwrMSQOp/cOT+qfr/4AuW/f3rjfj2k0id3zo+q348v66u+QHlWckiNT+6cH9WAx28vHd/+7vjb955+fL3ysh/eGVw9jcuP9ZQ+uXN+VEAZhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkAADhgQYMCTAgCEBBgwJMGBIgAFDAgwYEmDAkACD0w/pwKksnCbS00So0/H/cCLHwGkYEl4cQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPU2EOrVeaxRDUj1NhDq1XmsUQ1I9TYT+5t19e3/H//quW681iiGpniZC/7f3xpAKMSTV00To//beGFIhhqR6mgiV7+z+K7uHN3xpV4ohqZ4mQn/33n6siCEVYki62s/o+P4LQ+rEkFRPE6G/fW/H4xd4DKkSQ/pNtZ8PX9q1Y0i62s/onwUxpFoMSVf7GT1+acdnpF4M6TfVPrXWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKfWa41iSKqniVCn1muNYkiqp4lQp9ZrjWJIqqeJUKcDp3J9mpdexB+6zSHhtBjS9cNIhOImMKTrh5EIxU1gSNcPIxGKm8CQrh9GIhQ3gSFdP4xEKG4CQ7p+GIlQ3ASGdP0wEqG4CQzp+mEkQnETGNL1w0iE4iYwpOuHkQjFTWBI1w8jEer00j9bhp9dn+alF/GHbnRIL/3YcY0hqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpniZCnVqvNYohqZ4mQp1arzWKIameJkKdWq81iiGpnj7lxe9fXS6fXx2vPro+ml9ovdYohqR6+oTXfji+vvru+Cq4pNZrjWJIqqdPeO3r4+/Lp+PV5e/jte3j+Y/Wa41iSKqnT3nt1xd/Ot4+/ial9VqjGJLq6VNe+/XFb44PDOmGMCTV0ye89vXx6cNxd+FLuxvCkFRPn/DaD/ffZ3h3/wnpg+3j+Y/Wa41iSKqnT3nx+7v7v0O6vPrb9MH8Suu1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV06e8mJ9suDkMSfX0Ca/lJxtuD0NSPX3Ca/nJhtvDkFRPn/JafrLh5jAk1dOnvJafbLg5DEn19Amv5Scbbg9DUj19wmv5yYbbw5BUT5/yYn6y4eYwJNXTRKhT67VGMSTV00SoU+u1RjEk1VNHyMc3jpRfa73WKIakevqUF789vnF9OP/Veq1RDEn19Amv/bEjvmt3KxiS6ukTXnt3/H15fXz+/JqftbsZDEn19Cmv/frid18/G33iH8jeDIakevqU1x73/1D2PT8idEMYkurpE1775uuXdp+PV5ePDOlmMCTV0ye89uG/j/T6/psNf9k+nv9ovdYohqR6+pQXv7t/9V/Hw88JpbReaxRDUj1NhDq1XmsUQ1I9TYQ6tV5rFENSPf3TF35+e3fcvf3i/Fh+qfVaoxiS6ukfvu7zw//Tk+Pus/Wj+YXWa41iSKqnf/i6v47XXy5fXie/X/eo9VqjGJLq6R++7u64/6ru8/1/0zyr9VqjGJLq6Z++7rj+Jaj1WqMYkurpn76OId0khqR6+qevY0g3iSGpnv7p6xjSTWJIqqd/+rqfWT+mn9/RSz92XGNIqqd/+jqGdJMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjGJLqaSLUqfVaoxiS6mki1Kn1WqMYkuppItSp9VqjfhpSq0hPE6FODOlUTt+Xl3L6B8OQTuX0fXkpp38wDOlUTt+Xl3L6B8OQTuX0fXkpp38wDOlUTt+Xl3L6B8OQTuX0fXkpz/tgjsvj9x6PX/0iXvLS1cE1hiQ885COh/d4XH7xi3rJS1cH1xiS8Nyfkb6/x+P6d797yUtXB9cYkvAyQ/rnHy/zpV0dhiS8yJB+/sT0+w+DIZ0KQxJe6u+RDv4eqRI/a6d6mgj9zXv79sXchS/tKvHT37Laz+kP3lvrtUYxJNXTRKjzvbVeaxRDUj1NhDrfW+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKhT67VGMSTV00SoU+u1RjEk1dNEqFPrtUYxJNXTRKjTgVNZOE2kp4lQ4NYwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBjS+d0dd//87sPV29/I/ItL8Ds88tP7cBzH43ZeHT/e/g5Den488tP763h7/PXwu8eB/N8zYUjPj0d+el+/sLt7PBNDOi8e+dn9fby9vD3+vvzzr5q8fP+XN75/ddy9vzz8+ec3x927h7/67d3Xv5whPT8e+dm9Pj5ePh6vL/8e0puH3zz++d39b989/MVfvWFIz49HfnJfHr5ld3d8ufz8pd2H4/WXy5fX99+GOO5/+/54df/Z6+7T5dMdQ3p+PPKTu//K7vL9a7vL97dvHqb15Xhz/wcf//njNw+/+8CQnh+P/ORePWzj0/3nm5+GdPXvuv/xx8f1NyXwnHjk5/b5+2A+M6Qz45Gf27vvg3n37yF9/2sY0gnwyM/t1f1nosv9Z6ZX//57pO8/KfTjjx//8CNDen488lP7dP/NhAevj0+Xh6/v/nn78A26y/vHbzZcLo9vP/Bdu5fCIz+1t98/73w43n799HT/vfDHt4//yOi4+/lvnR7+4dJfDOn58chP7e7u+rcfX91P6PHtw082HH89foq6fH/7jp9seBk8csCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAAOGBBgwJMCAIQEGDAkwYEiAAUMCDBgSYMCQAIP/D661c5z4jQfAAAAAAElFTkSuQmCC", "text/plain": [ "Plot with title \"\"" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "plot(AP.tbl, main = \"\", las = 1)\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "image/png": "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Ic0SUhU3XEfaXq4jrTYPriOFEVIV7mxITUhVBK3UdO23v/Sv/zXNT0hVLF6p4/Z8qu7hbprWTwuHENIsIVWxdKUOq5dnmuPKLUKxhFTF0pW6nzbHlx/3h5em7p3+jiKkKpbf2XB8+/HyKs8F2ShCquKmW4RW09U//P0QQpolpCqWv7Tbn04Pr/cJHf/8JklIywmpiqUrtZ9W2/1ps3opaXc37RYNIaRZQqpi8UrtVh8Xih6WDSGkWUKq4oaVerq//C3ZzcNh4RBCmiWkKtwilJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElJqQqhBSakKqQkipCakKIaUmpCqElNoNyzMxZ/nk/mK6R/5hfzmEkGbdEtK/Pvb0hNSHkAIJqQ8hBRJSH0IKJKQ+hBRISH0IKZCQ+hBSICH1IaRAQupDSIGE1IeQAgmpDyEFElIfQgokpD6EFEhIfQgpkJD6EFIgIfUhpEBC6kNIgYTUh5ACCakPIQUSUh9CCiSkPoQUSEh9CCmQkPoQUiAh9SGkQELqQ0iBhNSHkAIlCen5YXP53NfN9nnhEJZ6lpACpQjpeHf1GcrrZUNY6llCCpQipO20etpftg671bRdNISlniWkQClCWk379+39tFo0hKWeJaRAKUL66Tsx/vwFGUJaTkiBUoTkGelLCClQipBe3iPtDpct75ECCSlQipBO66uzdnfHRUNY6llCCpQjpNPz9nIdabV5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", "text/plain": [ "plot without title" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "barplot(t(AP.tbl), legend = T)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## The binomial approach to contingency table analysis" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 3
AttendFailPass
<fct><dbl><dbl>
not.attend2719
attend 1783
\n" ], "text/latex": [ "A data.frame: 2 × 3\n", "\\begin{tabular}{lll}\n", " Attend & Fail & Pass\\\\\n", " & & \\\\\n", "\\hline\n", "\t not.attend & 27 & 19\\\\\n", "\t attend & 17 & 83\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 3\n", "\n", "| Attend <fct> | Fail <dbl> | Pass <dbl> |\n", "|---|---|---|\n", "| not.attend | 27 | 19 |\n", "| attend | 17 | 83 |\n", "\n" ], "text/plain": [ " Attend Fail Pass\n", "1 not.attend 27 19 \n", "2 attend 17 83 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Freqs.df <- data.frame(\n", " Attend = c(\"not.attend\", \"attend\"),\n", " Fail = c(27, 17), Pass = c(19, 83)\n", ")\n", "Freqs.df <- transform(Freqs.df, Attend = factor(Attend))\n", "Freqs.df\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ "\n", "Call:\n", "glm(formula = cbind(Pass, Fail) ~ Attend, family = binomial, \n", " data = Freqs.df)\n", "\n", "Deviance Residuals: \n", "[1] 0 0\n", "\n", "Coefficients:\n", " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 1.5856 0.2662 5.956 2.58e-09 ***\n", "Attendnot.attend -1.9370 0.4007 -4.834 1.34e-06 ***\n", "---\n", "Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n", "\n", "(Dispersion parameter for binomial family taken to be 1)\n", "\n", " Null deviance: 2.5162e+01 on 1 degrees of freedom\n", "Residual deviance: -4.2188e-15 on 0 degrees of freedom\n", "AIC: 12.756\n", "\n", "Number of Fisher Scoring iterations: 3\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "AP.binom <- glm(cbind(Pass, Fail) ~ Attend, data = Freqs.df, family = binomial)\n", "summary(AP.binom)\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Waiting for profiling to be done...\n", "\n" ] }, { "data": { "text/html": [ "
2.5 %
0.0642983964738622
97.5 %
0.311134072466483
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[2.5 \\textbackslash{}\\%] 0.0642983964738622\n", "\\item[97.5 \\textbackslash{}\\%] 0.311134072466483\n", "\\end{description*}\n" ], "text/markdown": [ "2.5 %\n", ": 0.064298396473862297.5 %\n", ": 0.311134072466483\n", "\n" ], "text/plain": [ " 2.5 % 97.5 % \n", "0.0642984 0.3111341 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "exp(confint(AP.binom))[2, ]\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## The Poisson approach to contingency table analysis" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning message:\n", "\"程辑包'dplyr'是用R版本4.2.3 来建造的\"\n", "\n", "载入程辑包:'dplyr'\n", "\n", "\n", "The following objects are masked from 'package:stats':\n", "\n", " filter, lag\n", "\n", "\n", "The following objects are masked from 'package:base':\n", "\n", " intersect, setdiff, setequal, union\n", "\n", "\n", "\u001b[1m\u001b[22m`summarise()` has grouped output by 'Attend'. You can override using the\n", "`.groups` argument.\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 4 × 3
AttendPassfreq
<fct><fct><int>
attend fail17
attend pass83
not.attendfail27
not.attendpass19
\n" ], "text/latex": [ "A data.frame: 4 × 3\n", "\\begin{tabular}{lll}\n", " Attend & Pass & freq\\\\\n", " & & \\\\\n", "\\hline\n", "\t attend & fail & 17\\\\\n", "\t attend & pass & 83\\\\\n", "\t not.attend & fail & 27\\\\\n", "\t not.attend & pass & 19\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 4 × 3\n", "\n", "| Attend <fct> | Pass <fct> | freq <int> |\n", "|---|---|---|\n", "| attend | fail | 17 |\n", "| attend | pass | 83 |\n", "| not.attend | fail | 27 |\n", "| not.attend | pass | 19 |\n", "\n" ], "text/plain": [ " Attend Pass freq\n", "1 attend fail 17 \n", "2 attend pass 83 \n", "3 not.attend fail 27 \n", "4 not.attend pass 19 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "library(dplyr)\n", "AP.df <- read.table(\"../data/AttendPass.txt\", header = T)\n", "AP.df <- transform(AP.df, Pass = factor(Pass), Attend = factor(Attend))\n", "Freqs2.df <- AP.df %>%\n", " group_by(Attend, Pass) %>%\n", " summarize(freq = n()) %>%\n", " data.frame()\n", "Freqs2.df\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 4 × 4 of type dbl
EstimateStd. Errorz valuePr(>|z|)
(Intercept) 3.29583690.192450117.1256719.550242e-66
Attendattend-0.46262350.3096136-1.4941971.351243e-01
Passpass-0.35139790.2994472-1.1734892.405999e-01
Attendattend:Passpass 1.93702520.4006749 4.8344071.335434e-06
\n" ], "text/latex": [ "A matrix: 4 × 4 of type dbl\n", "\\begin{tabular}{r|llll}\n", " & Estimate & Std. Error & z value & Pr(>\\textbar{}z\\textbar{})\\\\\n", "\\hline\n", "\t(Intercept) & 3.2958369 & 0.1924501 & 17.125671 & 9.550242e-66\\\\\n", "\tAttendattend & -0.4626235 & 0.3096136 & -1.494197 & 1.351243e-01\\\\\n", "\tPasspass & -0.3513979 & 0.2994472 & -1.173489 & 2.405999e-01\\\\\n", "\tAttendattend:Passpass & 1.9370252 & 0.4006749 & 4.834407 & 1.335434e-06\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 4 × 4 of type dbl\n", "\n", "| | Estimate | Std. Error | z value | Pr(>|z|) |\n", "|---|---|---|---|---|\n", "| (Intercept) | 3.2958369 | 0.1924501 | 17.125671 | 9.550242e-66 |\n", "| Attendattend | -0.4626235 | 0.3096136 | -1.494197 | 1.351243e-01 |\n", "| Passpass | -0.3513979 | 0.2994472 | -1.173489 | 2.405999e-01 |\n", "| Attendattend:Passpass | 1.9370252 | 0.4006749 | 4.834407 | 1.335434e-06 |\n", "\n" ], "text/plain": [ " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 3.2958369 0.1924501 17.125671 9.550242e-66\n", "Attendattend -0.4626235 0.3096136 -1.494197 1.351243e-01\n", "Passpass -0.3513979 0.2994472 -1.173489 2.405999e-01\n", "Attendattend:Passpass 1.9370252 0.4006749 4.834407 1.335434e-06" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Attendattend:Passpass: 6.93808049535602" ], "text/latex": [ "\\textbf{Attendattend:Passpass:} 6.93808049535602" ], "text/markdown": [ "**Attendattend:Passpass:** 6.93808049535602" ], "text/plain": [ "Attendattend:Passpass \n", " 6.93808 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Freqs2.df$Attend <- relevel(Freqs2.df$Attend, ref = \"not.attend\")\n", "AP.pois <- glm(freq ~ Attend * Pass, family = poisson, data = Freqs2.df)\n", "summary(AP.pois)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Null deviance 叫做零模型自由度,Residual deviance 叫做残差自由度。\n", "\n", "残差自由度等于零时,参数个数等于该数据的行数。由此可以推出原数据有 4 行。" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Waiting for profiling to be done...\n", "\n" ] }, { "data": { "text/html": [ "
2.5 %
3.21404850350281
97.5 %
15.552487384471
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[2.5 \\textbackslash{}\\%] 3.21404850350281\n", "\\item[97.5 \\textbackslash{}\\%] 15.552487384471\n", "\\end{description*}\n" ], "text/markdown": [ "2.5 %\n", ": 3.2140485035028197.5 %\n", ": 15.552487384471\n", "\n" ], "text/plain": [ " 2.5 % 97.5 % \n", " 3.214049 15.552487 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "exp(confint(AP.pois))[4, ]\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Equivalence of the binomial and Poisson approaches" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 3
AttendFailPass
<fct><dbl><dbl>
not.attend2719
attend 1783
\n" ], "text/latex": [ "A data.frame: 2 × 3\n", "\\begin{tabular}{lll}\n", " Attend & Fail & Pass\\\\\n", " & & \\\\\n", "\\hline\n", "\t not.attend & 27 & 19\\\\\n", "\t attend & 17 & 83\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 3\n", "\n", "| Attend <fct> | Fail <dbl> | Pass <dbl> |\n", "|---|---|---|\n", "| not.attend | 27 | 19 |\n", "| attend | 17 | 83 |\n", "\n" ], "text/plain": [ " Attend Fail Pass\n", "1 not.attend 27 19 \n", "2 attend 17 83 " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Waiting for profiling to be done...\n", "\n" ] }, { "data": { "text/html": [ "
2.5 %
3.21404850350281
97.5 %
15.552487384471
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[2.5 \\textbackslash{}\\%] 3.21404850350281\n", "\\item[97.5 \\textbackslash{}\\%] 15.552487384471\n", "\\end{description*}\n" ], "text/markdown": [ "2.5 %\n", ": 3.2140485035028197.5 %\n", ": 15.552487384471\n", "\n" ], "text/plain": [ " 2.5 % 97.5 % \n", " 3.214049 15.552487 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Freqs.df\n", "exp(confint(AP.pois))[4, ]\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "
1
17.0000000000001
2
83.0000000000001
3
27
4
19
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[1] 17.0000000000001\n", "\\item[2] 83.0000000000001\n", "\\item[3] 27\n", "\\item[4] 19\n", "\\end{description*}\n" ], "text/markdown": [ "1\n", ": 17.00000000000012\n", ": 83.00000000000013\n", ": 274\n", ": 19\n", "\n" ], "text/plain": [ " 1 2 3 4 \n", "17 83 27 19 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "predict(AP.pois, type = \"response\")\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 3
AttendFailPass
<fct><dbl><dbl>
not.attend2719
attend 1783
\n" ], "text/latex": [ "A data.frame: 2 × 3\n", "\\begin{tabular}{lll}\n", " Attend & Fail & Pass\\\\\n", " & & \\\\\n", "\\hline\n", "\t not.attend & 27 & 19\\\\\n", "\t attend & 17 & 83\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 3\n", "\n", "| Attend <fct> | Fail <dbl> | Pass <dbl> |\n", "|---|---|---|\n", "| not.attend | 27 | 19 |\n", "| attend | 17 | 83 |\n", "\n" ], "text/plain": [ " Attend Fail Pass\n", "1 not.attend 27 19 \n", "2 attend 17 83 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 4 × 4 of type dbl
EstimateStd. Errorz valuePr(>|z|)
(Intercept) 3.29583690.192450117.1256719.550242e-66
Attendattend-0.46262350.3096136-1.4941971.351243e-01
Passpass-0.35139790.2994472-1.1734892.405999e-01
Attendattend:Passpass 1.93702520.4006749 4.8344071.335434e-06
\n" ], "text/latex": [ "A matrix: 4 × 4 of type dbl\n", "\\begin{tabular}{r|llll}\n", " & Estimate & Std. Error & z value & Pr(>\\textbar{}z\\textbar{})\\\\\n", "\\hline\n", "\t(Intercept) & 3.2958369 & 0.1924501 & 17.125671 & 9.550242e-66\\\\\n", "\tAttendattend & -0.4626235 & 0.3096136 & -1.494197 & 1.351243e-01\\\\\n", "\tPasspass & -0.3513979 & 0.2994472 & -1.173489 & 2.405999e-01\\\\\n", "\tAttendattend:Passpass & 1.9370252 & 0.4006749 & 4.834407 & 1.335434e-06\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 4 × 4 of type dbl\n", "\n", "| | Estimate | Std. Error | z value | Pr(>|z|) |\n", "|---|---|---|---|---|\n", "| (Intercept) | 3.2958369 | 0.1924501 | 17.125671 | 9.550242e-66 |\n", "| Attendattend | -0.4626235 | 0.3096136 | -1.494197 | 1.351243e-01 |\n", "| Passpass | -0.3513979 | 0.2994472 | -1.173489 | 2.405999e-01 |\n", "| Attendattend:Passpass | 1.9370252 | 0.4006749 | 4.834407 | 1.335434e-06 |\n", "\n" ], "text/plain": [ " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 3.2958369 0.1924501 17.125671 9.550242e-66\n", "Attendattend -0.4626235 0.3096136 -1.494197 1.351243e-01\n", "Passpass -0.3513979 0.2994472 -1.173489 2.405999e-01\n", "Attendattend:Passpass 1.9370252 0.4006749 4.834407 1.335434e-06" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Attendattend:Passpass: 6.93808049535602" ], "text/latex": [ "\\textbf{Attendattend:Passpass:} 6.93808049535602" ], "text/markdown": [ "**Attendattend:Passpass:** 6.93808049535602" ], "text/plain": [ "Attendattend:Passpass \n", " 6.93808 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Freqs.df\n", "coef(summary(AP.pois))\n", "exp(coef(AP.pois))[4]\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "options(digits = 4)\n", "OR <- 27 * 83 / (17 * 19)\n", "OR\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": "4.2.2" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }