{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Modelling proportion data using the binomial distribution\n", "\n", "本节需要的包:" ] }, { "cell_type": "code", "execution_count": 2, "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": [ "## Binary (Bernoulli) data, odds and log-odds\n", "\n", "Here we are considering the situation where the response can only take two possible values. These might be coded in the form of:\n", "\n", "- Zeros or ones.\n", "- TRUE or FALSE.\n", "- Yes or No.\n", "- Success or Failure.\n", "- Or any other pair of categorical values.\n", "\n", "Bernoulli random variables(伯努利随机变量):\n", "\n", "If Y is a Bernoulli random variable with parameter p, then Y will take the value 1 with probability p, and the value 0 with probability 1 - p. Since it is a probability, p must be a value that is between 0 and 1, i.e. $p ∈ [0, 1]$.\n", "\n", "很容易表明,伯努利随机变量的平均值为:\n", "\n", "$$\n", "E(Y) = p\n", "$$\n", "\n", "而且,方差为\n", "\n", "$$\n", "Var(Y) = p(1 - p)\n", "$$\n", "\n", "### Odds\n", "\n", "为了使 glm 对数几率的解释更加容易,我们需要引入 Odds 这个概念,把定义域从 $[0, 1]$ 扩展到 $[0, \\infty]$。\n", "\n", "Odds 是指事件发生的概率与事件不发生的概率的比值,即:\n", "\n", "$$\n", "Odds = \\frac{p}{1 - p}\n", "$$\n", "\n", "反过来说:\n", "\n", "$$\n", "p = \\frac{Odds}{1 + Odds}\n", "$$\n", "\n", "### Log-odds\n", "\n", "Odds 的对数(简称为 log-odds)为:\n", "\n", "$$\n", "LogOdds = log(\\frac{p}{1 - p})\n", "$$\n", "\n", "此时定义域从 $[0, \\infty]$ 变为 $[-\\infty, \\infty]$。\n", "\n", "$$\n", "p = \\frac{exp(LogOdds)}{1 + exp(LogOdds)}\n", "$$" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Modelling log-odds\n", "\n", "Why log-odds?\n", "\n", "由于我们的模型对或的值没有限制,所以在设置变量为 $β_0$、$β_1$ 的情况下,$β_0 + β_1 x$ 可以在实线上取任何值。\n", "\n", "That is, $\\beta_0+\\beta_1x\\in(-\\infty,\\infty)$.\n", "\n", "$$\n", "\\text{Log-Odds}=\\beta_0+\\beta_1x\n", "$$\n", "\n", "Log-Odds can be any real number.\n", "\n", "即:\n", "\n", "$$\n", "\\text{log}\\left(\\frac{p}{1-p}\\right)=\\beta_0+\\beta_1x\n", "$$\n", "\n", "其中p是解释变量x的主体 \"成功\" 的概率。\n", "\n", "This can be re-arranged in the logistic form\n", "\n", "$$\n", "p=\\frac{exp(\\beta_0+\\beta_1x)}{1+exp(\\beta_0+\\beta_1x)}\n", "$$" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Modelling the response when it is binary (ungrouped data) via glm" ] }, { "cell_type": "code", "execution_count": 3, "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", "\t\n", "\t\n", "\n", "
A data.frame: 10 × 3
distancegenderbasket
<int><chr><int>
13M1
21F1
32M1
43M0
51M1
62F1
72F1
81F1
93F0
101F1
\n" ], "text/latex": [ "A data.frame: 10 × 3\n", "\\begin{tabular}{r|lll}\n", " & distance & gender & basket\\\\\n", " & & & \\\\\n", "\\hline\n", "\t1 & 3 & M & 1\\\\\n", "\t2 & 1 & F & 1\\\\\n", "\t3 & 2 & M & 1\\\\\n", "\t4 & 3 & M & 0\\\\\n", "\t5 & 1 & M & 1\\\\\n", "\t6 & 2 & F & 1\\\\\n", "\t7 & 2 & F & 1\\\\\n", "\t8 & 1 & F & 1\\\\\n", "\t9 & 3 & F & 0\\\\\n", "\t10 & 1 & F & 1\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 10 × 3\n", "\n", "| | distance <int> | gender <chr> | basket <int> |\n", "|---|---|---|---|\n", "| 1 | 3 | M | 1 |\n", "| 2 | 1 | F | 1 |\n", "| 3 | 2 | M | 1 |\n", "| 4 | 3 | M | 0 |\n", "| 5 | 1 | M | 1 |\n", "| 6 | 2 | F | 1 |\n", "| 7 | 2 | F | 1 |\n", "| 8 | 1 | F | 1 |\n", "| 9 | 3 | F | 0 |\n", "| 10 | 1 | F | 1 |\n", "\n" ], "text/plain": [ " distance gender basket\n", "1 3 M 1 \n", "2 1 F 1 \n", "3 2 M 1 \n", "4 3 M 0 \n", "5 1 M 1 \n", "6 2 F 1 \n", "7 2 F 1 \n", "8 1 F 1 \n", "9 3 F 0 \n", "10 1 F 1 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bb.df <- read.csv(\"../data/basketball.csv\")\n", "head(bb.df, 10)\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ " gender\n", "distance F M\n", " 1 10 10\n", " 2 6 5\n", " 3 2 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "success.tbl <- xtabs(basket ~ distance + gender, data = bb.df)\n", "success.tbl\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "bb.fit <- glm(\n", " basket ~ distance * gender,\n", " family = binomial, # binomial distribution\n", " data = bb.df\n", ")\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Plot with title \"\"" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "plot(bb.fit, which = 1, lty = 2)\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ "\n", "Call:\n", "glm(formula = basket ~ distance * gender, family = binomial, \n", " data = bb.df)\n", "\n", "Deviance Residuals: \n", " Min 1Q Median 3Q Max \n", "-1.5106 -0.5900 0.2723 0.2866 2.3474 \n", "\n", "Coefficients:\n", " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 5.5878 1.9050 2.933 0.00335 **\n", "distance -2.4159 0.8181 -2.953 0.00314 **\n", "genderM 0.6710 2.9235 0.230 0.81847 \n", "distance:genderM -0.5668 1.3213 -0.429 0.66794 \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: 82.108 on 59 degrees of freedom\n", "Residual deviance: 46.202 on 56 degrees of freedom\n", "AIC: 54.202\n", "\n", "Number of Fisher Scoring iterations: 5\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "summary(bb.fit)\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ "\n", "Call:\n", "glm(formula = basket ~ distance + gender, family = binomial, \n", " data = bb.df)\n", "\n", "Deviance Residuals: \n", " Min 1Q Median 3Q Max \n", "-1.5382 -0.5411 0.2461 0.3219 2.2283 \n", "\n", "Coefficients:\n", " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 6.1469 1.5242 4.033 5.51e-05 ***\n", "distance -2.6648 0.6364 -4.188 2.82e-05 ***\n", "genderM -0.5478 0.7486 -0.732 0.464 \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: 82.108 on 59 degrees of freedom\n", "Residual deviance: 46.392 on 57 degrees of freedom\n", "AIC: 52.392\n", "\n", "Number of Fisher Scoring iterations: 5\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bb.fit1 <- glm(basket ~ distance + gender,\n", " family = binomial, data = bb.df\n", ")\n", "summary(bb.fit1)\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ "\n", "Call:\n", "glm(formula = basket ~ distance, family = binomial, data = bb.df)\n", "\n", "Deviance Residuals: \n", " Min 1Q Median 3Q Max \n", "-1.4118 -0.4818 0.2873 0.2873 2.1029 \n", "\n", "Coefficients:\n", " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 5.7980 1.4038 4.130 3.63e-05 ***\n", "distance -2.6310 0.6274 -4.193 2.75e-05 ***\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: 82.108 on 59 degrees of freedom\n", "Residual deviance: 46.937 on 58 degrees of freedom\n", "AIC: 50.937\n", "\n", "Number of Fisher Scoring iterations: 5\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bb.fit2 <- glm(basket ~ distance, family = binomial, data = bb.df)\n", "summary(bb.fit2)\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "
(Intercept)
5.79796774980359
distance
-2.63103340427344
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[(Intercept)] 5.79796774980359\n", "\\item[distance] -2.63103340427344\n", "\\end{description*}\n" ], "text/markdown": [ "(Intercept)\n", ": 5.79796774980359distance\n", ": -2.63103340427344\n", "\n" ], "text/plain": [ "(Intercept) distance \n", " 5.797968 -2.631033 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "coef(bb.fit2)\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "
(Intercept)
329.628990177673
distance
0.0720040145217855
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[(Intercept)] 329.628990177673\n", "\\item[distance] 0.0720040145217855\n", "\\end{description*}\n" ], "text/markdown": [ "(Intercept)\n", ": 329.628990177673distance\n", ": 0.0720040145217855\n", "\n" ], "text/plain": [ " (Intercept) distance \n", "329.62899018 0.07200401 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
(Intercept)
-32862.8990177673
distance
92.7995985478214
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[(Intercept)] -32862.8990177673\n", "\\item[distance] 92.7995985478214\n", "\\end{description*}\n" ], "text/markdown": [ "(Intercept)\n", ": -32862.8990177673distance\n", ": 92.7995985478214\n", "\n" ], "text/plain": [ "(Intercept) distance \n", "-32862.8990 92.7996 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "exp(coef(bb.fit2))\n", "100 * (1 - exp(coef(bb.fit2)))\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Waiting for profiling to be done...\n", "\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A matrix: 2 × 2 of type dbl
2.5 %97.5 %
(Intercept) 3.422396 9.037020
distance-4.103523-1.568945
\n" ], "text/latex": [ "A matrix: 2 × 2 of type dbl\n", "\\begin{tabular}{r|ll}\n", " & 2.5 \\% & 97.5 \\%\\\\\n", "\\hline\n", "\t(Intercept) & 3.422396 & 9.037020\\\\\n", "\tdistance & -4.103523 & -1.568945\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 2 × 2 of type dbl\n", "\n", "| | 2.5 % | 97.5 % |\n", "|---|---|---|\n", "| (Intercept) | 3.422396 | 9.037020 |\n", "| distance | -4.103523 | -1.568945 |\n", "\n" ], "text/plain": [ " 2.5 % 97.5 % \n", "(Intercept) 3.422396 9.037020\n", "distance -4.103523 -1.568945" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A matrix: 2 × 2 of type dbl
2.5 %97.5 %
(Intercept)-2964.27509-840767.86136
distance 98.34856 79.17351
\n" ], "text/latex": [ "A matrix: 2 × 2 of type dbl\n", "\\begin{tabular}{r|ll}\n", " & 2.5 \\% & 97.5 \\%\\\\\n", "\\hline\n", "\t(Intercept) & -2964.27509 & -840767.86136\\\\\n", "\tdistance & 98.34856 & 79.17351\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 2 × 2 of type dbl\n", "\n", "| | 2.5 % | 97.5 % |\n", "|---|---|---|\n", "| (Intercept) | -2964.27509 | -840767.86136 |\n", "| distance | 98.34856 | 79.17351 |\n", "\n" ], "text/plain": [ " 2.5 % 97.5 % \n", "(Intercept) -2964.27509 -840767.86136\n", "distance 98.34856 79.17351" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(bb.ci2 <- confint(bb.fit2))\n", "100 * (1 - exp(bb.ci2))\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "
1
3.16693434553015
2
0.535900941256714
3
-2.09513246301672
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[1] 3.16693434553015\n", "\\item[2] 0.535900941256714\n", "\\item[3] -2.09513246301672\n", "\\end{description*}\n" ], "text/markdown": [ "1\n", ": 3.166934345530152\n", ": 0.5359009412567143\n", ": -2.09513246301672\n", "\n" ], "text/plain": [ " 1 2 3 \n", " 3.1669343 0.5359009 -2.0951325 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "predn.df <- data.frame(distance = 1:3)\n", "bb.logit.pred <- predict(bb.fit2, newdata = predn.df)\n", "bb.logit.pred\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "
1
0.959570820970203
2
0.630858358052516
3
0.109570820976234
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[1] 0.959570820970203\n", "\\item[2] 0.630858358052516\n", "\\item[3] 0.109570820976234\n", "\\end{description*}\n" ], "text/markdown": [ "1\n", ": 0.9595708209702032\n", ": 0.6308583580525163\n", ": 0.109570820976234\n", "\n" ], "text/plain": [ " 1 2 3 \n", "0.9595708 0.6308584 0.1095708 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plogis(bb.logit.pred)\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "
1
0.959570820970203
2
0.630858358052516
3
0.109570820976234
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[1] 0.959570820970203\n", "\\item[2] 0.630858358052516\n", "\\item[3] 0.109570820976234\n", "\\end{description*}\n" ], "text/markdown": [ "1\n", ": 0.9595708209702032\n", ": 0.6308583580525163\n", ": 0.109570820976234\n", "\n" ], "text/plain": [ " 1 2 3 \n", "0.9595708 0.6308584 0.1095708 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "predict(bb.fit2, newdata = predn.df, type = \"response\")\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "
1
0.815101808705841
2
0.381297733450052
3
0.643231168633718
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[1] 0.815101808705841\n", "\\item[2] 0.381297733450052\n", "\\item[3] 0.643231168633718\n", "\\end{description*}\n" ], "text/markdown": [ "1\n", ": 0.8151018087058412\n", ": 0.3812977334500523\n", ": 0.643231168633718\n", "\n" ], "text/plain": [ " 1 2 3 \n", "0.8151018 0.3812977 0.6432312 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 3 × 2 of type dbl
lowerupper
10.827688760.9915452
20.447335410.7830016
30.033703610.3027157
\n" ], "text/latex": [ "A matrix: 3 × 2 of type dbl\n", "\\begin{tabular}{r|ll}\n", " & lower & upper\\\\\n", "\\hline\n", "\t1 & 0.82768876 & 0.9915452\\\\\n", "\t2 & 0.44733541 & 0.7830016\\\\\n", "\t3 & 0.03370361 & 0.3027157\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 3 × 2 of type dbl\n", "\n", "| | lower | upper |\n", "|---|---|---|\n", "| 1 | 0.82768876 | 0.9915452 |\n", "| 2 | 0.44733541 | 0.7830016 |\n", "| 3 | 0.03370361 | 0.3027157 |\n", "\n" ], "text/plain": [ " lower upper \n", "1 0.82768876 0.9915452\n", "2 0.44733541 0.7830016\n", "3 0.03370361 0.3027157" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bb.logit.predses <- predict(bb.fit2, newdata = predn.df, se.fit = TRUE)$se.fit\n", "bb.logit.predses\n", "# Lower and upper bounds of CIs for the log-odds\n", "lower = bb.logit.pred - 1.96 * bb.logit.predses\n", "upper = bb.logit.pred + 1.96 * bb.logit.predses\n", "ci = cbind(lower, upper)\n", "plogis(ci)\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "***Estimates and CIs are on the link scale***\n", "\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 3 × 3 of type dbl
fitlwrupr
1 3.1669343 1.5693642 4.7645045
2 0.5359009-0.2114289 1.2832308
3-2.0951325-3.3558424-0.8344225
\n" ], "text/latex": [ "A matrix: 3 × 3 of type dbl\n", "\\begin{tabular}{r|lll}\n", " & fit & lwr & upr\\\\\n", "\\hline\n", "\t1 & 3.1669343 & 1.5693642 & 4.7645045\\\\\n", "\t2 & 0.5359009 & -0.2114289 & 1.2832308\\\\\n", "\t3 & -2.0951325 & -3.3558424 & -0.8344225\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 3 × 3 of type dbl\n", "\n", "| | fit | lwr | upr |\n", "|---|---|---|---|\n", "| 1 | 3.1669343 | 1.5693642 | 4.7645045 |\n", "| 2 | 0.5359009 | -0.2114289 | 1.2832308 |\n", "| 3 | -2.0951325 | -3.3558424 | -0.8344225 |\n", "\n" ], "text/plain": [ " fit lwr upr \n", "1 3.1669343 1.5693642 4.7645045\n", "2 0.5359009 -0.2114289 1.2832308\n", "3 -2.0951325 -3.3558424 -0.8344225" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "***Estimates and CIs are on the response scale***\n", "\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A matrix: 3 × 3 of type dbl
fitlwrupr
10.95957080.827692940.9915450
20.63085840.447338810.7829992
30.10957080.033704370.3027108
\n" ], "text/latex": [ "A matrix: 3 × 3 of type dbl\n", "\\begin{tabular}{r|lll}\n", " & fit & lwr & upr\\\\\n", "\\hline\n", "\t1 & 0.9595708 & 0.82769294 & 0.9915450\\\\\n", "\t2 & 0.6308584 & 0.44733881 & 0.7829992\\\\\n", "\t3 & 0.1095708 & 0.03370437 & 0.3027108\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A matrix: 3 × 3 of type dbl\n", "\n", "| | fit | lwr | upr |\n", "|---|---|---|---|\n", "| 1 | 0.9595708 | 0.82769294 | 0.9915450 |\n", "| 2 | 0.6308584 | 0.44733881 | 0.7829992 |\n", "| 3 | 0.1095708 | 0.03370437 | 0.3027108 |\n", "\n" ], "text/plain": [ " fit lwr upr \n", "1 0.9595708 0.82769294 0.9915450\n", "2 0.6308584 0.44733881 0.7829992\n", "3 0.1095708 0.03370437 0.3027108" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "predictGLM(bb.fit2, newdata = data.frame(distance = 1:3), type = \"link\")\n", "predictGLM(bb.fit2, newdata = data.frame(distance = 1:3), type = \"response\")\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Modelling the response when it is binomial (grouped binary data) via glm" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[1m\u001b[22m`summarise()` has grouped output by 'gender'. 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", "\t\n", "\t\n", "\n", "
A data.frame: 6 × 4
genderdistancenpropn
<chr><int><int><dbl>
F1101.0
F2100.6
F3100.2
M1101.0
M2100.5
M3100.1
\n" ], "text/latex": [ "A data.frame: 6 × 4\n", "\\begin{tabular}{llll}\n", " gender & distance & n & propn\\\\\n", " & & & \\\\\n", "\\hline\n", "\t F & 1 & 10 & 1.0\\\\\n", "\t F & 2 & 10 & 0.6\\\\\n", "\t F & 3 & 10 & 0.2\\\\\n", "\t M & 1 & 10 & 1.0\\\\\n", "\t M & 2 & 10 & 0.5\\\\\n", "\t M & 3 & 10 & 0.1\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 6 × 4\n", "\n", "| gender <chr> | distance <int> | n <int> | propn <dbl> |\n", "|---|---|---|---|\n", "| F | 1 | 10 | 1.0 |\n", "| F | 2 | 10 | 0.6 |\n", "| F | 3 | 10 | 0.2 |\n", "| M | 1 | 10 | 1.0 |\n", "| M | 2 | 10 | 0.5 |\n", "| M | 3 | 10 | 0.1 |\n", "\n" ], "text/plain": [ " gender distance n propn\n", "1 F 1 10 1.0 \n", "2 F 2 10 0.6 \n", "3 F 3 10 0.2 \n", "4 M 1 10 1.0 \n", "5 M 2 10 0.5 \n", "6 M 3 10 0.1 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Load dplyr package to manipulate data frames\n", "library(dplyr)\n", "bb.grouped.df = bb.df %>%\n", " group_by(gender, distance) %>%\n", " summarize(n = n(), propn = sum(basket) / n)\n", "# Change tibble back to a data frame\n", "bb.grouped.df = data.frame(bb.grouped.df)\n", "bb.grouped.df\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "这样转换后,虽然结果相同,但我们可以做卡方检验了(手动经历了分组)。" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ "\n", "Call:\n", "glm(formula = propn ~ distance * gender, family = binomial, data = bb.grouped.df, \n", " weights = n)\n", "\n", "Deviance Residuals: \n", " 1 2 3 4 5 6 \n", " 0.9063 -0.5354 0.3367 0.8612 -0.4629 0.4376 \n", "\n", "Coefficients:\n", " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 5.5878 1.9050 2.933 0.00335 **\n", "distance -2.4159 0.8181 -2.953 0.00314 **\n", "genderM 0.6710 2.9236 0.230 0.81848 \n", "distance:genderM -0.5668 1.3214 -0.429 0.66795 \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: 38.2749 on 5 degrees of freedom\n", "Residual deviance: 2.3688 on 2 degrees of freedom\n", "AIC: 20.23\n", "\n", "Number of Fisher Scoring iterations: 4\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bb.fit3 = glm(propn ~ distance * gender,\n", " weights = n,\n", " family = binomial, data = bb.grouped.df\n", ")\n", "summary(bb.fit3)\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "0.305929682251732" ], "text/latex": [ "0.305929682251732" ], "text/markdown": [ "0.305929682251732" ], "text/plain": [ "[1] 0.3059297" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "1 - pchisq(2.3688, 2)\n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Plot with title \"\"" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "plot(bb.fit3, which = 1, lty = 2)\n" ] }, { "cell_type": "code", "execution_count": 22, "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", "\n", "
A data.frame: 6 × 6
genderdistancenpropnsuccessfail
<chr><int><int><dbl><dbl><dbl>
F1101.0100
F2100.6 64
F3100.2 28
M1101.0100
M2100.5 55
M3100.1 19
\n" ], "text/latex": [ "A data.frame: 6 × 6\n", "\\begin{tabular}{llllll}\n", " gender & distance & n & propn & success & fail\\\\\n", " & & & & & \\\\\n", "\\hline\n", "\t F & 1 & 10 & 1.0 & 10 & 0\\\\\n", "\t F & 2 & 10 & 0.6 & 6 & 4\\\\\n", "\t F & 3 & 10 & 0.2 & 2 & 8\\\\\n", "\t M & 1 & 10 & 1.0 & 10 & 0\\\\\n", "\t M & 2 & 10 & 0.5 & 5 & 5\\\\\n", "\t M & 3 & 10 & 0.1 & 1 & 9\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 6 × 6\n", "\n", "| gender <chr> | distance <int> | n <int> | propn <dbl> | success <dbl> | fail <dbl> |\n", "|---|---|---|---|---|---|\n", "| F | 1 | 10 | 1.0 | 10 | 0 |\n", "| F | 2 | 10 | 0.6 | 6 | 4 |\n", "| F | 3 | 10 | 0.2 | 2 | 8 |\n", "| M | 1 | 10 | 1.0 | 10 | 0 |\n", "| M | 2 | 10 | 0.5 | 5 | 5 |\n", "| M | 3 | 10 | 0.1 | 1 | 9 |\n", "\n" ], "text/plain": [ " gender distance n propn success fail\n", "1 F 1 10 1.0 10 0 \n", "2 F 2 10 0.6 6 4 \n", "3 F 3 10 0.2 2 8 \n", "4 M 1 10 1.0 10 0 \n", "5 M 2 10 0.5 5 5 \n", "6 M 3 10 0.1 1 9 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bb.grouped.df <- transform(bb.grouped.df, success = n * propn, fail = n * (1 - propn))\n", "bb.grouped.df\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "bb.fit4 = glm(cbind(success, fail) ~ distance * gender,\n", " family = binomial,\n", " data = bb.grouped.df\n", ")\n", "summary(bb.fit4)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Example 1: Space shuttle Challenger accident\n", "\n", "The NASA space shuttle Challenger broke up during launch on the cold morning of 28 January 1986. Most of the crew survived the initial break-up, but are believed to have been killed when the crew capsule hit the ocean at high speed. 1986年1月28日的寒冷早晨,美国宇航局的挑战者号航天飞机在发射过程中解体。大多数机组人员在最初的解体过程中幸存下来,但据信在机组人员舱高速撞向海洋时被杀死。" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 66
  2. 70
  3. 69
  4. 68
  5. 67
  6. 72
  7. 73
  8. 70
  9. 57
  10. 63
  11. 70
  12. 78
  13. 67
  14. 53
  15. 67
  16. 75
  17. 70
  18. 81
  19. 76
  20. 79
  21. 75
  22. 76
  23. 58
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 66\n", "\\item 70\n", "\\item 69\n", "\\item 68\n", "\\item 67\n", "\\item 72\n", "\\item 73\n", "\\item 70\n", "\\item 57\n", "\\item 63\n", "\\item 70\n", "\\item 78\n", "\\item 67\n", "\\item 53\n", "\\item 67\n", "\\item 75\n", "\\item 70\n", "\\item 81\n", "\\item 76\n", "\\item 79\n", "\\item 75\n", "\\item 76\n", "\\item 58\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 66\n", "2. 70\n", "3. 69\n", "4. 68\n", "5. 67\n", "6. 72\n", "7. 73\n", "8. 70\n", "9. 57\n", "10. 63\n", "11. 70\n", "12. 78\n", "13. 67\n", "14. 53\n", "15. 67\n", "16. 75\n", "17. 70\n", "18. 81\n", "19. 76\n", "20. 79\n", "21. 75\n", "22. 76\n", "23. 58\n", "\n", "\n" ], "text/plain": [ " [1] 66 70 69 68 67 72 73 70 57 63 70 78 67 53 67 75 70 81 76 79 75 76 58" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
  1. 0
  2. 1
  3. 0
  4. 0
  5. 0
  6. 0
  7. 0
  8. 0
  9. 1
  10. 1
  11. 1
  12. 0
  13. 0
  14. 2
  15. 0
  16. 0
  17. 0
  18. 0
  19. 0
  20. 0
  21. 2
  22. 0
  23. 1
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 1\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 0\n", "\\item 0\n", "\\item 2\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 0\n", "\\item 2\n", "\\item 0\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 1\n", "3. 0\n", "4. 0\n", "5. 0\n", "6. 0\n", "7. 0\n", "8. 0\n", "9. 1\n", "10. 1\n", "11. 1\n", "12. 0\n", "13. 0\n", "14. 2\n", "15. 0\n", "16. 0\n", "17. 0\n", "18. 0\n", "19. 0\n", "20. 0\n", "21. 2\n", "22. 0\n", "23. 1\n", "\n", "\n" ], "text/plain": [ " [1] 0 1 0 0 0 0 0 0 1 1 1 0 0 2 0 0 0 0 0 0 2 0 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Space.df <- read.table(\"../data/ChallengerShuttle.txt\", head = TRUE)\n", "Space.df$Temp\n", "Space.df$Failure\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/plain": [ "\n", "Call:\n", "glm(formula = cbind(Failure, 6 - Failure) ~ Temp, family = binomial, \n", " data = Space.df)\n", "\n", "Deviance Residuals: \n", " Min 1Q Median 3Q Max \n", "-0.95227 -0.78299 -0.54117 -0.04379 2.65152 \n", "\n", "Coefficients:\n", " Estimate Std. Error z value Pr(>|z|) \n", "(Intercept) 5.08498 3.05247 1.666 0.0957 .\n", "Temp -0.11560 0.04702 -2.458 0.0140 *\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: 24.230 on 22 degrees of freedom\n", "Residual deviance: 18.086 on 21 degrees of freedom\n", "AIC: 35.647\n", "\n", "Number of Fisher Scoring iterations: 5\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Space.gfit = glm(cbind(Failure, 6 - Failure) ~ Temp,\n", " family = binomial,\n", " data = Space.df\n", ")\n", "summary(Space.gfit)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "predictGLM(Space.gfit, newdata = data.frame(Temp = 31), type = \"response\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "r" } }, "outputs": [], "source": [ "6 * predictGLM(Space.gfit, newdata = data.frame(Temp = 31), type = \"response\")\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 }