#set document(title: "8.7 Applications of the Normal Distribution", author: "OpenStax / XYZ Homework") #set page(width: 8.5in, height: auto, margin: 1in) #import "@preview/cetz:0.5.2" #set text(font: ("STIX Two Text", "Libertinus Serif", "New Computer Modern"), size: 10.5pt, lang: "en") #show math.equation: set text(font: ("STIX Two Math", "New Computer Modern Math")) #set par(justify: true, leading: 0.62em, spacing: 0.9em) #set enum(spacing: 1.1em) // room between list items so tall inline fractions don't collide #set list(spacing: 1.1em) #set table(stroke: 0.5pt + rgb("#c7ccd3")) #let BLUE = rgb("#183B6F") // brand navy — section bars + example/solution labels (white on navy 11.09:1) #let ORANGE = rgb("#A94509") // brand primary-700 — AA-safe deep orange for TEXT (5.93:1 on white; raw brand #F37021 is 2.94:1 and must never carry text) #let RED = rgb("#DC2626") // brand error-600 #let GREEN = rgb("#059669") // brand success-600 (decoration only; small green text uses green-text #007942) #show heading.where(level: 1): it => block(width: 100%, above: 0pt, below: 16pt, fill: gradient.linear(BLUE, rgb("#2C5AA0")), inset: (x: 14pt, y: 12pt), radius: 3pt, text(fill: white, weight: "bold", size: 19pt, it.body)) #show heading.where(level: 2): it => block(width: 100%, above: 18pt, below: 10pt, fill: BLUE, inset: (x: 10pt, y: 6pt), radius: 2pt, text(fill: white, weight: "bold", size: 12pt, it.body)) #show heading.where(level: 3): it => text(fill: ORANGE, weight: "bold", size: 12.5pt, it.body) #show heading.where(level: 4): it => text(fill: BLUE, weight: "bold", size: 10.5pt, it.body) #let examplebox(label, title, body) = block(width: 100%, breakable: true, fill: rgb("#EFF1F5"), stroke: 0.5pt + rgb("#CFDDF0"), radius: 4pt, inset: 10pt, above: 12pt, below: 12pt)[ #block(below: 6pt)[#box(fill: BLUE, inset: (x: 6pt, y: 2pt), radius: 2pt, text(fill: white, weight: "bold", size: 8.5pt, label)) #h(0.4em) #strong[#title]] #body] // rail = decorative left rule (raw brand token); labelcolor = AA-safe label text shade #let notebox(label, rail, labelcolor, tint, body) = block(width: 100%, breakable: true, fill: tint, stroke: (left: 3pt + rail), inset: (left: 10pt, rest: 8pt), radius: (right: 4pt), above: 11pt, below: 11pt)[ #text(fill: labelcolor, weight: "bold", size: 7.5pt, tracking: 0.5pt)[#upper(label)] #linebreak() #body] #let solutionbox(body) = block(above: 4pt, below: 8pt)[ #text(fill: BLUE, weight: "bold", size: 8.5pt)[Solution] #linebreak() #body] #let figph(msg) = block(width: 100%, height: 60pt, fill: rgb("#f6f7f9"), stroke: (paint: rgb("#c7ccd3"), dash: "dashed"), radius: 4pt, inset: 10pt)[ #align(center + horizon, text(fill: rgb("#889"), style: "italic", size: 9pt, msg))] // Standardize inlined figure sizes: measure the natural CeTZ canvas, then scale to a // consistent envelope (aspect-aware; see build_typst.py FIG_* constants). Unlike the // print preamble, dimensions are FLOORED: in an editor a user can trim a figure to a // degenerate 1-D shape (a bare line), and w/h or tw/w would then divide by zero. #let _STD_W = 3.5 #let _WIDE_W = 5.6 #let _MAX_H = 3.4 #let _ASPECT_WIDE = 2.2 #let _UPSCALE_MAX = 1.15 #let stdfig(body) = context { let m = measure(body) let w = calc.max(m.width / 1in, 0.01) let h = calc.max(m.height / 1in, 0.01) let tw = if w / h > _ASPECT_WIDE { _WIDE_W } else { _STD_W } let s = calc.min(tw / w, _MAX_H / h, _UPSCALE_MAX) align(center, box(scale(x: s * 100%, y: s * 100%, reflow: true, body))) } #show figure: set block(breakable: false) #set figure(gap: 8pt) #show figure.caption: set text(size: 8.5pt, fill: rgb("#555")) == 8.7#h(0.6em)Applications of the Normal Distribution #figure(figph[A hand is holding a pencil and filling in the scantron sheet.], alt: "A hand is holding a pencil and filling in the scantron sheet.", caption: [Standardized test results generally adhere to the normal distribution.]) === Learning Objectives After completing this section, you should be able to: + Apply the normal distribution to real-world scenarios. As we saw in The Normal Distribution, the word “standardized” is closely associated with the normal distribution. This is why tests like college entrance exams, state achievement tests for K–12 students, and Advanced Placement tests are often called “standardized tests”: scores are assigned in a way that forces them to follow a normal distribution, with a mean and standard deviation that are consistent from year to year. Standardization also allows people like college admissions officers to directly compare an applicant who took the ACT (a college entrance exam) to an applicant who instead chose to take the SAT (a different college entrance exam). Standardization allows us to compare individuals from different groups; this is among the most important applications of the normal distribution. We’ll explore this and other real-world uses of the normal distribution in this section. === College Entrance Exams There are two good ways to compare two data values from different groups: using #math.equation(block: false, alt: "z")[$z$]-scores and using percentiles. The two methods will always give consistent results (meaning that we won’t find, for example, that the first value is better using #math.equation(block: false, alt: "z")[$z$]-scores but the second value is better using percentiles), so use whichever method is more comfortable for you. #examplebox("Example 1")[Evaluating College Entrance Exam Scores][ According to the #link("https://openstax.org/r/nces_ed_gov")[Digest of Education Statistics], composite scores on the SAT have mean 1060 and standard deviation 195, while composite scores on the ACT have mean 21 and standard deviation 5. + At what percentile would an SAT score of 990 fall? + What is the #emph[z]-score of an ACT score of 27? + Which is better: a score of 1450 on the SAT or 29 on the ACT? #solutionbox[ + Using Google Sheets, we can answer this question with the formula “=NORM.DIST(990, 1060, 195, TRUE)”. A score of 990 would fall at the 36th percentile. + Using the formula #math.equation(block: false, alt: "z equals the fraction x minus µ over s")[$z = frac(x − µ, s)$], we get #math.equation(block: false, alt: "z equals the fraction 27 minus 21 over 5 equals 1.2")[$z = frac(27 − 21, 5) = 1.2$]. + Let’s compare the values using both percentiles and #math.equation(block: false, alt: "z")[$z$]-values: #strong[Percentiles:] Using “=NORM.DIST(1450, 1060, 195, TRUE)” we find that an SAT score of 1450 is at the 98th percentile. Meanwhile, by entering “=NORM.DIST(29, 21, 5, TRUE)” we see that an ACT score of 29 is around the 95th percentile. Since it’s at a higher percentile, we can conclude that an SAT score of 1450 is better than an ACT score of 29. #math.equation(block: false, alt: "z")[$bold(italic(z))$]#strong[-scores:] Using the formula, we see that the #math.equation(block: false, alt: "z")[$z$]-score for an SAT score of 1450 is #math.equation(block: false, alt: "z equals the fraction 1450 minus 1060 over 195 equals 2")[$z = frac(1450 − 1060, 195) = 2$], while the #math.equation(block: false, alt: "z")[$z$]-score for an ACT score of 29 is #math.equation(block: false, alt: "z equals the fraction 29 minus 21 over 5 equals 1.6")[$z = frac(29 − 21, 5) = 1.6$]. Since it has a higher #math.equation(block: false, alt: "z")[$z$]-score, an SAT score of 1450 is better than an ACT score of 29. ] ] === Coin flipping In the opening of The Normal Distribution, we saw that the number of heads we get when we flip a coin 100 times is distributed normally. It can be shown that if #math.equation(block: false, alt: "n")[$n$] is the number of flips, then the mean of that distribution is #math.equation(block: false, alt: "the fraction n over 2")[$frac(n, 2)$] and the standard deviation is #math.equation(block: false, alt: "the fraction the square root of n over 2")[$frac(sqrt(n), 2)$] (as long as #math.equation(block: false, alt: "n greater than or equal to 20")[$n ≥ 20$]). So, for 100 flips, the mean of the distribution is 50 and the standard deviation is 5. In that opening example, one of our early runs gave us 70 heads in 100 flips, which we noted seemed unusual. Using the normal distribution, we can identify exactly how unusual that really is. Using Google Sheets, the formula “=NORM.DIST(70, 50, 5, TRUE)” gives us 0.999968, which is the 99.997th percentile! How is that useful? Suppose you need to test whether a coin is fair, and so you flip it 100 times. While we might be suspicious if we get 70 heads out of the 100 flips, we now have a numerical measure for how unusual that is: If the coin were fair, we would expect to see 70 heads (or more) only #math.equation(block: false, alt: "100 minus 99.9968 equals 0.0032 %")[$100 − 99.9968 = 0.0032 %$] of the time. That’s really unlikely! Analysis like this is related to #emph[hypothesis testing], an important application of statistics in the sciences and social sciences. #examplebox("Example 2")[Flipping a Coin][ Let’s say we flip a coin 64 times and count the number of heads. + What would be the mean of the corresponding distribution? + What would be the standard deviation of the corresponding distribution? + Suppose we got 25 heads, which seems a little low. At what percentile would 25 heads fall? #solutionbox[ + Since #math.equation(block: false, alt: "n equals 64")[$n = 64$], the mean is #math.equation(block: false, alt: "the fraction 64 over 2 equals 32")[$frac(64, 2) = 32$]. + Again using #math.equation(block: false, alt: "n equals 64")[$n = 64$], we get a standard deviation of #math.equation(block: false, alt: "the fraction the square root of 64 over 2 equals 4")[$frac(sqrt(64), 2) = 4$]. + Using “=NORM.DIST(25, 32, 4, TRUE)”, we see that 25 heads is at the 4th percentile. Reading and Interpreting Scatter Plots ] ] === Analyzing Data That Are Normally Distributed Whenever we’re working with a dataset that has a distribution that looks symmetric and bell-shaped, we can use techniques associated with the normal distribution to analyze the data. #examplebox("Example 3")[Using Normal Techniques to Analyze Data][ The data in #link("https://openstax.org/r/Chapter8_Data-Sets")[“AvgSAT”] contains the average SAT score for students attending every institution of higher learning in the United States for which data is available. In Example 8 in Section 8.2, we created a histogram for these data: #figure( stdfig([#cetz.canvas({ import cetz.draw: * content((272.00pt, 162.00pt), box(width: 544.00pt)[#align(center)[#text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 11pt)[average SAT scores at US institutions]]]) rect((6.40pt, 0pt), (25.60pt, 1.87pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((38.40pt, 0pt), (57.60pt, 2.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((70.40pt, 0pt), (89.60pt, 7.00pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((102.40pt, 0pt), (121.60pt, 11.67pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((134.40pt, 0pt), (153.60pt, 39.67pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((166.40pt, 0pt), (185.60pt, 79.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((198.40pt, 0pt), (217.60pt, 107.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((230.40pt, 0pt), (249.60pt, 128.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((262.40pt, 0pt), (281.60pt, 107.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((294.40pt, 0pt), (313.60pt, 51.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((326.40pt, 0pt), (345.60pt, 32.67pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((358.40pt, 0pt), (377.60pt, 23.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((390.40pt, 0pt), (409.60pt, 18.67pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((422.40pt, 0pt), (441.60pt, 18.67pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((454.40pt, 0pt), (473.60pt, 9.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((486.40pt, 0pt), (505.60pt, 11.67pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) rect((518.40pt, 0pt), (537.60pt, 2.33pt), fill: rgb("#e0e0e0"), stroke: 0.6pt + black) line((0.00pt, 0pt), (544.00pt, 0pt), stroke: 0.7pt + black) line((0.00pt, 0pt), (0.00pt, 140.00pt), stroke: 0.7pt + black) content((16.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[750-800]) content((48.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[800-850]) content((80.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[850-900]) content((112.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[900-950]) content((144.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[950-1000]) content((176.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1000-1050]) content((208.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1050-1100]) content((240.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1100-1150]) content((272.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1150-1200]) content((304.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1200-1250]) content((336.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1250-1300]) content((368.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1300-1350]) content((400.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1350-1400]) content((432.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1400-1450]) content((464.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1450-1500]) content((496.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1500-1550]) content((528.00pt, -5pt), angle: 45deg, anchor: "east", text(size: 8pt)[1550-1600]) line((-3.00pt, 0.00pt), (0.00pt, 0.00pt), stroke: 0.5pt + black) content((-5.00pt, 0.00pt), anchor: "east", text(size: 8pt)[0]) line((-3.00pt, 46.67pt), (0.00pt, 46.67pt), stroke: 0.5pt + black) content((-5.00pt, 46.67pt), anchor: "east", text(size: 8pt)[100]) line((-3.00pt, 93.33pt), (0.00pt, 93.33pt), stroke: 0.5pt + black) content((-5.00pt, 93.33pt), anchor: "east", text(size: 8pt)[200]) line((-3.00pt, 140.00pt), (0.00pt, 140.00pt), stroke: 0.5pt + black) content((-5.00pt, 140.00pt), anchor: "east", text(size: 8pt)[300]) content((272.00pt, -40.47pt), anchor: "north", text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 9pt)[average SAT]) content((-32.00pt, 70.00pt), angle: 90deg, anchor: "south", text(font: sys.inputs.at("title-font", default: "STIX Two Text"), size: 9pt)[frequency]) })]), alt: "A histogram titled, average SAT scores at US institutions. The horizontal axis representing average SAT ranges from 750 to 1600, in increments of 50. The vertical axis representing frequency ranges from 0 to 300, in increments of 100. The histogram infers the following data. 750 to 800: 4. 800 to 850: 5. 850 to 900: 15. 900 to 950: 25. 950 to 1000: 85. 1000 to 1050: 170. 1050 to 1100: 230. 1100 to 1150: 275. 1150 to 1200: 230. 1200 to 1250: 110. 1250 to 1300: 70. 1300 to 1350: 50. 1350 to 1400: 40. 1400 to 1450: 40. 1450 to 1500: 20. 1500 to 1550: 25. 1550 to 1600: 5. Note: all values are approximate.", caption: [(data source: https://data.ed.gov)], ) This distribution is fairly symmetric (it’s just a little right-skewed) and bell-shaped, so we can use normal distribution techniques to analyze the data. + What is the mean of these average SAT scores? + What is the standard deviation of these SAT scores? + Using the answers to the previous two questions, use NORM.DIST in Google Sheets to estimate at what percentile the University at Buffalo in New York (average SAT: 1250) falls. + Use PERCENTRANK to find the actual percentile of the University at Buffalo, and see how close the estimate in the previous question came. #solutionbox[ + Using the AVERAGE function in Google Sheets, we find that the mean is 1141.174. + Using the STDEV function, we get that the standard deviation is 125.517. + Entering “=NORM.DIST(1250, 1141, 125.517, TRUE)” into Google Sheets, we estimate that the University at Buffalo is at the 81st percentile. + Using PERCENTRANK, we find that the actual percentile is the 84th. These are close! ] ] #notebox("Who Knew?", rgb("#183B6F"), rgb("#183B6F"), rgb("#EFF1F5"))[ #emph[Political Meddling Exposed] The normal distribution pops up in some unusual places. Recently, a team at Duke University has been using statistics to help identify partisan gerrymandering, where electoral districts have been carefully drawn in a way that benefits one political party over another. In their analysis, they found that hypothetical election results in randomly drawn districts are normally distributed. By using techniques similar to the ones we used above, they can quantify precisely how biased a particular electoral map is by finding the percentile rank of the actual election result on the normal distribution of the hypothetical results. You can find out more about their work at the #link("https://openstax.org/r/quantifying-gerrymandering")["Quantifying Gerrymandering" site here.] ] === Key Concepts - We can use #math.equation(block: false, alt: "z")[$z$]-scores to compare data values from different datasets.