#set document(title: "11.1 One-Way ANOVA", author: "Rachel Webb") #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")) == 11.1#h(0.6em)One-Way ANOVA The #math.equation(block: false, alt: "z")[$z$]- and #math.equation(block: false, alt: "t")[$t$]-tests can be used to test the equality between two population means #math.equation(block: false, alt: "μ sub 1")[$μ_(1)$] and #math.equation(block: false, alt: "μ sub 2")[$μ_(2)$]. When we have more than two groups, we would inflate the probability of making a type I error if we were to compare just two at a time and make a conclusion about all the groups together. To account for this P(Type I Error) inflation, we instead will do an analysis of variance (ANOVA) to test the equality between 3 or more population means #math.equation(block: false, alt: "μ sub 1 , μ sub 2 , μ sub 3 , … , μ sub k")[$μ_(1) , μ_(2) , μ_(3) , … , μ_(k)$]. The F-test (for ANOVA) is a statistical test for testing the equality of #math.equation(block: false, alt: "k")[$k$] population means. The one-way ANOVA F-test is a statistical test for testing the equality of #math.equation(block: false, alt: "k")[$k$] population means from 3 or more groups within one variable or factor. There are many different types of ANOVA; for now, we are going to start with what is commonly referred to as a one-way ANOVA, which has one main effect or factor that is split up into three or more independent treatment levels. In more advanced courses you would learn about dependent groups or two or more factors. Assumptions: - The populations are normally distributed continuous variables with equal variances. - The observations are independent. The hypotheses for testing the equality of #math.equation(block: false, alt: "k")[$k$] population means (ANOVA) are set up with all the means equal to one another in the null hypothesis and at least one mean is different in the alternative hypothesis. #math.equation(block: true, alt: "H sub 0 : μ sub 1 equals μ sub 2 equals μ sub 3 equals … equals μ sub k")[$H_(0) : μ_(1) = μ_(2) = μ_(3) = … = μ_(k)$] #math.equation(block: false, alt: "H sub 1 :")[$H_(1) :$] At least one mean is different. Even though there is equality in #math.equation(block: false, alt: "H sub 0")[$H_(0)$], the ANOVA test is testing if the variance between groups is significantly greater than the variance within groups; hence, this will always be set up as a right-tailed test. We will be using abbreviations for many of the numbers found in this section. B = Between, W = Within MS = Mean Square (This is a variance) MSB = Mean Square (Variance) Between groups. MSW = Mean Square (Variance) Within groups. The formula for the F-test statistic is #math.equation(block: false, alt: "F equals the fraction M S B over M S W")[$F = frac(M S B, M S W)$]. Use the F-distribution with degrees of freedom from the between and within groups. The numerator degrees of freedom are equal to the number of groups minus one, that is numerator degrees of freedom are #math.equation(block: false, alt: "d f sub B equals k minus 1")[$d f_(B) = k − 1$]. The denominator degrees of freedom are equal to the total of all the sample sizes minus the number of groups, that is denominator degrees of freedom are #math.equation(block: false, alt: "d f sub W equals N minus k")[$d f_(W) = N − k$]. The sum of squares, degrees of freedom and mean squares are organized in a table called an ANOVA table. Figure 11-1 below is a template for an ANOVA table. #figure(figph[ANOVA table format and equations.], alt: "ANOVA table format and equations.", caption: [Figure 11-1: ANOVA table template.]) Where: #math.equation(block: false, alt: "χ bar sub i")[$overline(χ)_(i)$] = sample mean from the #math.equation(block: false, alt: "i to the power t h")[$i^(t h)$] group #math.equation(block: false, alt: "s sub i squared")[$s_(i)^(2)$] = sample variance from the #math.equation(block: false, alt: "i to the power t h")[$i^(t h)$] group #math.equation(block: false, alt: "n sub i")[$n_(i)$] = sample size from the #math.equation(block: false, alt: "i to the power t h")[$i^(t h)$] group #math.equation(block: false, alt: "k")[$k$] = number of groups #math.equation(block: false, alt: "N equals n sub 1 plus n sub 2 plus ⋯ plus n sub k")[$N = n_(1) + n_(2) + ⋯ + n_(k)$] = sum of the individual sample sizes for groups Grand mean from all groups = #math.equation(block: false, alt: "χ bar sub G M equals the fraction ∑ χ sub i over N")[$overline(χ)_(G M) = frac(∑ χ_(i), N)$] Sum of squares between groups = SSB = #math.equation(block: false, alt: "∑ n sub i open parenthesis χ bar sub i minus χ bar sub G M close parenthesis squared")[$∑ n_(i) attach(( overline(χ)_(i) − overline(χ)_(G M) ), t: 2)$] Sum of squares within groups = SSW = #math.equation(block: false, alt: "∑ open parenthesis n sub i minus 1 close parenthesis s sub i squared")[$∑ ( n_(i) − 1 ) s_(i)^(2)$] Mean squares between groups (or the between-groups variance #math.equation(block: false, alt: "s sub B squared")[$s_(B)^(2)$]) = #math.equation(block: false, alt: "M S B equals the fraction S S B over k minus 1")[$M S B = frac(S S B, k − 1)$] Mean squares within-group (or error within-groups variance #math.equation(block: false, alt: "s sub W squared")[$s_(W)^(2)$]) = #math.equation(block: false, alt: "M S W equals the fraction S S W over N minus k")[$M S W = frac(S S W, N − k)$] #math.equation(block: false, alt: "F equals the fraction M S B over M S W")[$F = frac(M S B, M S W)$] is the test statistic. These calculations can be time-consuming to do by hand, so use technology to find the ANOVA table values, critical value and/or p-value. Different textbooks and computer software programs use different labels in the ANOVA tables. - The TI-calculators use the word Factor for Between Groups and Error for Within Groups. - Some software packages use Treatment instead of Between groups. You may see different notation depending on which textbook, software or video you are using. - For between groups SSB = SS#sub[B] = SSTR = SST = SSF and for within groups SSW = SS#sub[W] = SSE. - One thing that is consistent within the ANOVA table is that the between = factor = treatment always appears on the first row of the ANOVA table, and the within = error always is in the second row of the ANOVA table. - The #math.equation(block: false, alt: "d f")[$d f$] column usually is in the second column since we divide the sum of squares by the #math.equation(block: false, alt: "d f")[$d f$] to find the mean squares. However, some software packages will put the #math.equation(block: false, alt: "d f")[$d f$] column before the sum of squares column. - The test statistic is under the column labeled F. - Many software packages will give an extra column for the p-value and some software packages give a critical value too. #strong[Assumption: The population we are sampling from must be approximately normal with equal variances.] If these assumptions are not met there are more advanced statistical methods that should be used. #examplebox("Example 1")[][ An educator wants to see if there is a difference in the average grades given to students for the 4 different instructors who teach intro statistics courses. They randomly choose courses that each of the 4 instructors taught over the last few years and perform an ANOVA test. What would be the correct hypotheses for this test? #solutionbox[ There are 4 groups (the 4 instructors) so there will be 4 means in the null hypothesis, #math.equation(block: false, alt: "H sub 0 : μ sub 1 equals μ sub 2 equals μ sub 3 equals m u sub 4")[$H_(0) : μ_(1) = μ_(2) = μ_(3) = m u_(4)$]. It is tempting to write #math.equation(block: false, alt: "μ sub 1 not equal to μ sub 2 not equal to μ sub 3 not equal to m u sub 4")[$μ_(1) ≠ μ_(2) ≠ μ_(3) ≠ m u_(4)$] for the alternative hypothesis, but the test is testing the opposite of all equal is that at least one mean is different. We could for instance have just the mean for group 2 be different and groups 1, 3 and 4 have equal means. If we wanted to write out all the way to have unequal groups, you would have a combination problem with #math.equation(block: false, alt: "4 C sub 3 plus 4 C sub 2 plus 4 C sub 1")[$4 C_(3) + 4 C_(2) + 4 C_(1)$] ways of getting unequal means. Instead of all of these possibilities, we just write a sentence: “at least one mean is different.” The hypotheses are: #math.equation(block: true, alt: "H sub 0 : μ sub 1 equals μ sub 2 equals μ sub 3 equals m u sub 4")[$H_(0) : μ_(1) = μ_(2) = μ_(3) = m u_(4)$] #math.equation(block: false, alt: "H sub 1 :")[$H_(1) :$] At least one mean is different. ] ] #examplebox("Example 2")[][ A researcher claims that there is a difference in the average age of assistant professors, associate professors, and full professors at her university. Faculty members are selected randomly and their ages are recorded. Assume faculty ages are normally distributed. Test the claim at the #math.equation(block: false, alt: "α")[$α$] = 0.01 significance level. The data are listed below. \# Example 11-2: build the whole ANOVA table from the 1-Var Stats summaries n \<- c(7, 7, 7) \# group sizes xbar \<- c(37, 52, 54) \# sample means s2 \<- c(53, 55.66667, 35) \# sample variances N \<- sum(n); k \<- length(n) gm \<- sum(n \* xbar) / N \# grand mean -\> 47.66667 SSB \<- sum(n \* (xbar - gm)^2) \# between -\> 1208.66667 SSW \<- sum((n - 1) \* s2) \# within -\> 862 MSB \<- SSB / (k - 1) \# -\> 604.3333 MSW \<- SSW / (N - k) \# -\> 47.8889 Fstat \<- MSB / MSW \# -\> 12.6195 qf(0.99, k - 1, N - k) \# critical value -\> 6.0129 pf(Fstat, k - 1, N - k, lower.tail = FALSE) \# p-value -\> 0.0003755 \# Edit a mean or a variance above and watch F and the p-value move. #figure(figph[Table of Example 11-2 data.], alt: "Table of Example 11-2 data.", caption: none) #solutionbox[ The claim is that there is a difference in the average age of assistant professors #math.equation(block: false, alt: "open parenthesis μ sub 1 close parenthesis")[$( μ_(1) )$], associate professors #math.equation(block: false, alt: "open parenthesis μ sub 2 close parenthesis")[$( μ_(2) )$], and full professors #math.equation(block: false, alt: "open parenthesis μ sub 3 close parenthesis")[$( μ_(3) )$] at her university. The correct hypotheses are: #math.equation(block: true, alt: "H sub 0 : μ sub 1 equals μ sub 2 equals μ sub 3")[$H_(0) : μ_(1) = μ_(2) = μ_(3)$] #math.equation(block: false, alt: "H sub 1 :")[$H_(1) :$] At least one mean differs. We need to compute all of the necessary parts for the ANOVA table and F-test. Compute the descriptive stats for each group with your calculator using 1–Var Stats L1. #figure(figph[1–Var Stats L1 coputations], alt: "1–Var Stats L1 coputations", caption: none) Record the sample size, sample mean, sum of #math.equation(block: false, alt: "χ")[$χ$], and sample variances. Take the standard deviation #math.equation(block: false, alt: "s sub χ")[$s_(χ)$] and square it to find the variance #math.equation(block: false, alt: "s sub χ squared")[$s_(χ)^(2)$] for each group. #figure(table( columns: 5, align: left, inset: 6pt, table.header([Assistant Prof], [#math.equation(block: false, alt: "n sub 1 equals 7")[$n_(1) = 7$]], [#math.equation(block: false, alt: "χ bar sub 1 equals 37")[$overline(χ)_(1) = 37$]], [#math.equation(block: false, alt: "∑ χ sub 1 equals 259")[$∑ χ_(1) = 259$]], [#math.equation(block: false, alt: "s sub 1 squared equals 53")[$s_(1)^(2) = 53$]]), [Associate Prof], [#math.equation(block: false, alt: "n sub 2 equals 7")[$n_(2) = 7$]], [#math.equation(block: false, alt: "χ bar sub 2 equals 52")[$overline(χ)_(2) = 52$]], [#math.equation(block: false, alt: "∑ χ sub 2 equals 364")[$∑ χ_(2) = 364$]], [#math.equation(block: false, alt: "s sub 2 squared equals 55.6667")[$s_(2)^(2) = 55.6667$]], [Prof], [#math.equation(block: false, alt: "n sub 3 equals 7")[$n_(3) = 7$]], [#math.equation(block: false, alt: "χ bar sub 1 equals 54")[$overline(χ)_(1) = 54$]], [#math.equation(block: false, alt: "∑ χ sub 3 equals 378")[$∑ χ_(3) = 378$]], [#math.equation(block: false, alt: "s sub 3 squared equals 35")[$s_(3)^(2) = 35$]], )) Compute the grand mean: #math.equation(block: false, alt: "N equals n sub 1 plus n sub 2 plus n sub 3 equals 7 plus 7 plus 7 equals 21")[$N = n_(1) + n_(2) + n_(3) = 7 + 7 + 7 = 21$], #math.equation(block: false, alt: "χ bar sub G M equals the fraction ∑ χ sub i over N equals the fraction open parenthesis 259 plus 364 plus 378 close parenthesis over 21 equals 47.66667")[$overline(χ)_(G M) = frac(∑ χ_(i), N) = frac(( 259 + 364 + 378 ), 21) = 47.66667$]. Compute the sum of squares for between groups: SSB = #math.equation(block: false, alt: "∑ n sub i open parenthesis χ bar sub i minus χ bar sub G M close parenthesis squared equals n sub 1 open parenthesis χ bar sub 1 minus χ bar sub G M close parenthesis squared plus n sub 2 open parenthesis χ bar sub 2 minus χ bar sub G M close parenthesis squared plus n sub 3 open parenthesis χ bar sub 3 minus χ bar sub G M close parenthesis squared equals 7 open parenthesis 37 minus 47.66667 close parenthesis squared plus 7 open parenthesis 52 − 47.66667 close parenthesis squared plus 7 open parenthesis 54 − 47.66667 close parenthesis squared equals 1208.66667")[$∑ n_(i) attach(( overline(χ)_(i) − overline(χ)_(G M) ), t: 2) = n_(1) attach(( overline(χ)_(1) − overline(χ)_(G M) ), t: 2) + n_(2) attach(( overline(χ)_(2) − overline(χ)_(G M) ), t: 2) + n_(3) attach(( overline(χ)_(3) − overline(χ)_(G M) ), t: 2) = 7 ( 37 − 47.66667 )^(2) + 7 ( 52 − 47.66667 )^(2) + 7 ( 54 − 47.66667 )^(2) = 1208.66667$]. Compute the sum of squares within groups: SSW = #math.equation(block: false, alt: "∑ open parenthesis n sub i minus 1 close parenthesis s sub i squared equals open parenthesis n sub 1 minus 1 close parenthesis s sub 1 squared plus open parenthesis n sub 2 minus 1 close parenthesis s sub 2 squared plus open parenthesis n sub 3 minus 1 close parenthesis s sub 3 squared equals 6 times 53 plus 6 times 55.66667 plus 6 times 35 equals 862")[$∑ ( n_(i) − 1 ) s_(i)^(2) = ( n_(1) − 1 ) s_(1)^(2) + ( n_(2) − 1 ) s_(2)^(2) + ( n_(3) − 1 ) s_(3)^(2) = 6 · 53 + 6 · 55.66667 + 6 · 35 = 862$]. Place the sum of squares into your ANOVA table and add them up to get the total. #figure(figph[ANOVA table with SS column filled out.], alt: "ANOVA table with SS column filled out.", caption: none) Next, find the degrees of freedom: #math.equation(block: false, alt: "k equals 3")[$k = 3$] since there are 3 groups, so #math.equation(block: false, alt: "d f sub B equals k minus 1 equals 2")[$d f_(B) = k − 1 = 2$]; #math.equation(block: false, alt: "d f sub W equals N minus k equals 21 minus 3 equals 18")[$d f_(W) = N − k = 21 − 3 = 18$]. Add the degrees of freedom to the table to get the total #math.equation(block: false, alt: "d f")[$d f$]. #figure(figph[ANOVA table with SS and df columns filled out.], alt: "ANOVA table with SS and df columns filled out.", caption: none) Compute the mean squares by dividing the sum of squares by their corresponding #math.equation(block: false, alt: "d f")[$d f$], then add these numbers to the table. #math.equation(block: false, alt: "M S B equals the fraction S S B over k minus 1 equals the fraction 1208.66667 over 2 equals 604.3333 M S W equals the fraction S S W over N minus k equals the fraction 862 over 18 equals 47.8889")[$M S B = frac(S S B, k − 1) = frac(1208.66667, 2) = 604.3333 #h(1em) M S W = frac(S S W, N − k) = frac(862, 18) = 47.8889$] The test statistic is the ratio of these two mean squares: #math.equation(block: false, alt: "F equals the fraction M S B over M S W equals the fraction 604.3333 over 47.8889 equals 12.6195")[$F = frac(M S B, M S W) = frac(604.3333, 47.8889) = 12.6195$]. Add the test statistic to the table under F. #figure(figph[Completely filled ANOVA table for Example 11-2.], alt: "Completely filled ANOVA table for Example 11-2.", caption: none) All ANOVA tests are right-tailed tests, so the critical value for a right-tailed F-test is found with the F-distribution. Use #math.equation(block: false, alt: "α")[$α$] = 0.01 area in the right-tail. The degrees of freedom are #math.equation(block: false, alt: "d f sub N equals 2")[$d f_(N) = 2$], and #math.equation(block: false, alt: "d f sub D equals 18")[$d f_(D) = 18$]. The critical value is 6.0129; see the sampling distribution curve in Figure 11-2. #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ #emph[Replace the invF and Fcdf steps] Both links open the F-distribution with dfN = 2 and dfD = 18 already set. The first solves the inverse problem (left-tail area 0.99 puts 0.01 in the right tail) for the critical value; the second reads the right-tail area beyond the test statistic. Check that both methods give the same reject decision at alpha = 0.01. - Critical value: F(2, 18) with 0.01 right tail = 6.0129 - p-value: P(F \> 12.6195) = 0.0003755 ] #figure(figph[Sampling distribution curve with critical values and calculated F value shown.], alt: "Sampling distribution curve with critical values and calculated F value shown.", caption: [Figure 11-2: Sampling distribution curve with the critical value and calculated F-value shown.]) Note that the F-distribution starts at zero, and is skewed to the right. The test statistic of 12.6295 is larger than the critical value of 6.0129 so the decision would be to reject the null hypothesis. Decision: Reject #math.equation(block: false, alt: "H sub 0")[$H_(0)$]. Summary: There is enough evidence to support the claim that there is a difference in the average age of assistant professors, associate professors, and full professors at her university. If we were using the p-value method, then we would use the calculator or computer for a right-tailed test. The p-value = 0.0003755 is less than #math.equation(block: false, alt: "α")[$α$] = 0.01, which leads to the same decision of rejecting #math.equation(block: false, alt: "H sub 0")[$H_(0)$] that we found using the critical value method. #figure(figph[Finding the p-value via calculator.], alt: "Finding the p-value via calculator.", caption: none) Alternatively, use technology to compute the ANOVA table and p-value. #strong[TI-84:] ANOVA, hypothesis test for the equality of k population means. Note you have to have the actual raw data to do this test on the calculator. Press the \[STAT\] key and then the \[EDIT\] function, type the three lists of data into list one, two and three. Press the \[STAT\] key, arrow over to the \[TESTS\] menu, arrow down to the option \[F:ANOVA(\] and press the \[ENTER\] key. This brings you back to the regular screen where you should now see ANOVA(. Now hit the \[2nd\] \[L1\] \[,\] \[2nd\] \[L2\] \[,\]\[2nd\] \[L3\]\[)\] keys in that order. You should now see ANOVA(L1,L2,L3); if you had 4 lists you would then have an additional list. #figure(figph[Selecting the ANOVA with 3 lists in a TI-84 calculator.], alt: "Selecting the ANOVA with 3 lists in a TI-84 calculator.", caption: none) Press the \[ENTER\] key. The calculator returns the F-test statistic, the p-value, Factor (Between) #math.equation(block: false, alt: "d f")[$d f$], SS and MS, Error (Within) #math.equation(block: false, alt: "d f")[$d f$], SS and MS. The last value, Sxp is the square root of the MSE. #figure(figph[TI-84 calculator results from the one-way ANOVA.], alt: "TI-84 calculator results from the one-way ANOVA.", caption: none) #strong[TI-89:] ANOVA, hypothesis test for the equality of #math.equation(block: false, alt: "k")[$k$] population means. Go to the \[Apps\] Stat/List Editor, then type in the data for each group into a separate list (or if you don’t have the raw data, enter the sample size, sample mean and sample variance for group 1 into list1 in that order, repeat for list2, etc.). Press \[2#super[nd]\] then F6 \[Tests\], then select C:ANOVA. Select the input method data or stats. Select the number of groups. Press the \[ENTER\] key to calculate. The calculator returns the F-test statistic, the p-value, Factor (Between) df, SS and MS, Error (Within) df, SS and MS. The last value, Sxp, is the square root of the MSE. #figure(figph[Selecting ANOVA with 3 lists in a TI-89 calculator.], alt: "Selecting ANOVA with 3 lists in a TI-89 calculator.", caption: none) #strong[Excel:] Type the labels and data into adjacent columns (it is important not to have any blank columns, which would be an additional group counted as zeros). Select the Data tab, then Data Analysis, ANOVA: Single-Factor, then OK. #figure(figph[Entering data columns in Excel, with labels in the first row, and selecting Data Analysis, ANOVA: Single-factor in the Data tab.], alt: "Entering data columns in Excel, with labels in the first row, and selecting Data Analysis, ANOVA: Single-factor in the Data tab.", caption: none) Next, select all three columns of data at once for the input range. Check the box that says Labels in first row (only select this if you actually selected the labels in the input range). Change your value of alpha and output range will be one cell reference where you want your output to start, see below. #figure(figph[ANOVA: Single Factor pop-up window, with input range selected and grouped by columns, the "labels in the first row" option selected, an alpha value of 0.01, and output range selected.], alt: "ANOVA: Single Factor pop-up window, with input range selected and grouped by columns, the \"labels in the first row\" option selected, an alpha value of 0.01, and output range selected.", caption: none) You get the following output: #figure(figph[Excel results for Single-factor Anova.], alt: "Excel results for Single-factor Anova.", caption: none) Excel gives both the p-value and critical value so you can use either method when making your decision, but make sure you are comfortable with both. ] ] #strong[Summary] The ANOVA test gives evidence that there is a difference between three or more means. The null hypothesis will always have the means equal to one another versus the alternative hypothesis that at least one mean is different. The F-test results are about the difference in means, but the test is actually testing if the variation between the groups is larger than the variation within the groups. If this between group variation is significantly larger than the within groups then we can say there is a statistically significant difference in the population means. Hence, we are always performing a right-tailed F-test for ANOVA. Make sure to only compare the p-value with #math.equation(block: false, alt: "α")[$α$] and the test statistic to the critical value.