1 Chapter 1

  • p. 4, line 14 from bottom: happening they way → happening the way
  • p. 5, lines 3-4 of par. 2: could impossibly have contributed something useful → could not possibly have contributed something useful (thanks to Michael Fiddler for pointing this out)
  • p. 10, example (1a) should be labeled vop (as it is spelled out in the parentheses; thanks to Michael Fiddler for pointing this out)
  • p. 12, line 1: things whereas → things prefer CONSTRUCTION: vpo whereas (thanks to Adam Przepiórkowski for pointing this out)
  • p. 14, last line: the word not into → the word not into
  • p. 29, line 6: support our H1 → support our H1 whereas (thanks to Adam Przepiórkowski for pointing this out)
  • p. 29, par 1 after 4b.: ’the result is of a kind […] → ‘the result is of a kind […] threshold’ (thanks to Adam Przepiórkowski for pointing this out)
  • p. 33, line 1: in Table 11, →’ In Table 11, (thanks to Adam Przepiórkowski for pointing this out)
  • p. 33, line 6: Why is that →’ Why is that? (thanks to Adam Przepiórkowski for pointing this out)
  • p. 36, line 3: even i the →’ even if the (thanks to Adam Przepiórkowski for pointing this out)
  • p. 36, line 7: deviation).The →’ deviation). The (thanks to Adam Przepiórkowski for pointing this out)
  • p. 36, line 6 from bottom of first paragraph: because the one assumes → because then one assumes
  • p. 39, line 4 from bottom: then cumulative the → then the cumulative (thanks to Adam Przepiórkowski for pointing this out)
  • p. 42, line 2: ’“how likely it → ’how likely it (thanks to Adam Przepiórkowski for pointing this out)
  • p. 44, section heading of 1.6: Data collection and storage → The design of a factorial experiment (thanks to Maria Fionda for pointing this out)

2 Chapter 2

  • p. 54: the first code block should be this (thanks to Michael Fiddler for pointing this out):
> 2 -
+
  • p. 54: the third code block should be this (thanks to Michael Fiddler for pointing this out):
> library(effects +
+
  • p. 57, the first code box should be this:
log(x=5, base=2) # compute the log of 5
log(base=2, x=5) # (to the base of 2)
  • p. 64, the last block of code should be this (thanks to Michael Fiddler for pointing this out):
(x <- scan(file="_inputfiles/02_vector2.txt", what=character(),
   sep="\n"))
[1] "This is the first line"  "This is the second line"
  • p. 67: line 3 from bottom: Thus, which translates → Thus, which translates (thanks to Michael Fiddler for pointing this out):
  • p. 71: mid of par. 2: Crucially, the values that table returns → Crucially, the values that table returns (thanks to Michael Fiddler for pointing this out)
  • p. 73: mid of par. 2: then, like sort it can take a logical vector called decreasing as an additional argument → then, like sort, it can take a logical vector called decreasing as an additional argument (thanks to Michael Fiddler for pointing this out)
  • p. 78, caption of Table 20: Concrete token set for CONSTRUCTION:OBJTYPE 3 → A simple example data frame
  • p. 80, lines 6-7 before 2.5.2: human-readable strings closed and open and → human-readable strings closed and open and (thanks to Michael Fiddler for pointing this out)
  • p. 82, line 3: we can usually just use the function read.delim with only the file argument → we can usually just use the function read.delim with only the file argument (and ideally also stringsAsFactors=TRUE) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 84: the recommendation(s) for further study might be better placed immediately before the beginning of Section 2.5.3
  • p. 85, line 2: with subsetting - [ or subset - it’s often %rarr; with subsetting - "[" or subset - it’s often
  • p. 85, last line: We will return to split in → We will return to split in (thanks to Michael Fiddler for pointing this out)

3 Chapter 3

  • p. 102, line 1 of 3.1.2.3: can typically done → can typically be done (thanks to Adam Przepiórkowski for pointing this out)
  • p. 112, lines 1-2 of code box should be this (thanks to Michael Fiddler for pointing this out):
set.seed(sum(utf8ToInt("Räucherforelle"))) # set a replicable random number seed
two.normals.side.by.side <- c(rnorm(200, 0, 2), rnorm(200, 8, 2)) # generate random data
  • p. 113-114, the two code boxes: change the two “shorter ways” to the following: (thanks to Adam Przepiórkowski for pointing this out)
MEAN.c <- as.numeric(scale(MEAN, scale=FALSE))
MEAN.s <- as.numeric(scale(MEAN))
  • p. 117, change code box 2 to the following: (thanks to Adam Przepiórkowski for pointing this out)
c("mean"=mean(RT), "sd"=sd(RT), "n"=length(RT))
##      mean        sd         n
## 631.85996  60.16321  77.00000
  • p. 118, bullet point 2: Fields → Field (thanks to Adam Przepiórkowski for pointing this out)

On p. 119:

  • what is the smallest number of heads you can get in 500 tosses that is not significantly different from the 300-out-of-500 result? It’s 277, i.e. 0.554 or 55.4% (the result of sum(dbinom(x=0:277, size=number.tosses, prob=perc.heads)) is <0.025, the result of sum(dbinom(x=0:278, size=number.tosses, prob=perc.heads)) is >0.025);
  • what is the largest number of heads you can get in 500 tosses that is not significantly different from the 300-out-of-500 result? It’s 322, i.e. 0.644 or 64.4% (the result of sum(dbinom(x=322:number.tosses, size=number.tosses, prob=perc.heads)) is <0.025, the result of sum(x=dbinom(0:321, size=number.tosses, prob=perc.heads)) is >0.025);

Thus, computing the 95%-CI for this example in this way returns [277, 322] or, in %, [0.554, 0.644], and you can see how similar they are to the result of binom.test, which was [0.556, 0.643]. Thus, the 95%-CI includes the values that do not differ significantly from the result you found and the interpretation of this approach would be to say “the 95%-CI boundaries are the numbers of heads that wouldn’t be significantly different from the 0.6 result you got, i.e. between 277 and 322”.

  • what is the smallest number of heads you can get in 500 tosses that is not significantly different from the 300-out-of-500 result? It’s 278, i.e. 0.556 or 55.6% (the result of sum(dbinom(x=0:278, size=number.tosses, prob=perc.heads)) is >0.025, the result of sum(dbinom(x=0:277, size=number.tosses, prob=perc.heads)) is >0.025);
  • what is the largest number of heads you can get in 500 tosses that is not significantly different from the 300-out-of-500 result? It’s 321, i.e. 0.642 or 64.2% (the result of sum(dbinom(x=321:number.tosses, size=number.tosses, prob=perc.heads)) is >0.025, the result of sum(x=dbinom(322:number.tosses, size=number.tosses, prob=perc.heads)) is >0.025).

Thus, computing the 95%-CI for this example in this way returns [278, 321] or, in %, [0.556, 0.642], and you can see how similar they are to the result of binom.test, which was [0.556, 0.643]. Thus, the 95%-CI includes the values that do not differ significantly from the result you found and the interpretation of this approach would be to say “these 95%-CI boundaries are the numbers of heads that wouldn’t be significantly different from the 0.6 result you got”.

  • p. 125, last par.: Section 3.1.2) often get analyzed with the tools designed for categorical variables; → Section 3.1.2 often get analyzed with the tools designed for categorical variables); (thanks to Adam Przepiórkowski for pointing this out)
  • p. 136, last line of the third last paragraph: around 640 somewhere: → around 640 somewhere.
  • p. 139, line 9 from bttom: hopefully immediately discarded → hopefully have immediately discarded (thanks to Adam Przepiórkowski for pointing this out)
  • p. 154, upper code box: change the line beginning with sort to as.character(sort(unique(x[,i]))), (thanks to Adam Przepiórkowski for pointing this out)
  • p. 156, line 2 above code box 1: pairwise addition → pairwise multiplication (thanks to Adam Przepiórkowski for pointing this out)

4 Chapter 4

  • p. 165, line 11 from bottom: In both cases → In that case (thanks to Adam Przepiórkowski for pointing this out)
  • p. 176, line 1 of last paragraph: Kolmogorov-Smirnomv test → Kolmogorov-Smirnov test (thanks for William Comer for pointing this out)
  • p. 177, line two above Figure 56: the plot above → the plot below (thanks for Michael Fiddler for pointing this out)
  • p. 179, line 3 below code box 2: (14765) → (147/65) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 179, line 3 below code box 2: (i.e., the same as c(nrow(...), nol(...)) → (i.e., the same as c(nrow(...), nol(...))) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 187:, delete paragraph below Figure 60
  • p. 207, code block 2: (t.value ← (mean(x$HEDGES)-12.35)(t.value <- (mean(x$HEDGES)-12.35) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 208, line 3: with (i) the → with the (thanks to Adam Przepiórkowski for pointing this out)
  • p. 211, note 9: step 4b → 3b (thanks to Adam Przepiórkowski for pointing this out)
  • p. 212, line 2 above code block 2: applies (i) to → applies to (thanks to Adam Przepiórkowski for pointing this out)
  • p. 212, line 1 above code block 2: argument: (I show only one result.) → argument (I show only one result): (thanks to Adam Przepiórkowski for pointing this out)
  • p. 213, bullet point 2: one categorical response CRITERION → one categorical predictor CRITERION (thanks to Adam Przepiórkowski for pointing this out)
  • p. 215, procedure point 4: compute the test statistic T → compute the test statistic V (thanks to Adam Przepiórkowski for pointing this out)
  • p. 217, line 2: collect it somewhere; → collect it somewhere; (thanks for Michael Fiddler for pointing this out)
  • p. 222, delete the last (parenthesized) sentence of 4.3.2.3
  • p. 229, 2 lines below Figure 76: of the two variable RT → of the two variables RT (thanks for Michael Fiddler for pointing this out)
  • p. 230, H1: There is a negative correlation between MOUSEEVENT and KEYPRESS, r/ρ/τ<0. → There is a positive correlation between MOUSEEVENT and KEYPRESS, r/ρ/τ>0. (thanks to Adam Przepiórkowski for pointing this out)
  • p. 231, bullet point 2: so 00 mean → so 00 means (thanks for Michael Fiddler for pointing this out)

5 Chapter 5

  • p. 236, last line: Figure 79: mpg ~ disp → Figure 79: mpg ~ disp (thanks to Adam Przepiórkowski for pointing this out)
  • p. 237, line 8 from bottom: contribution: (p=0.3314). → contribution (p=0.3314).
  • p. 242, line 3 from bottom: We see that same thing in the our current plot → We see that same thing in our current plot (thanks to Adam Przepiórkowski for pointing this out)
  • p. 243: jitter(log2(x)$FREQ)jitter(log2(x$FREQ)) (thanks to Mohammad Alenezi for pointing this out)
  • p. 243, line 2 from bottom: easily to un-do → easy to undo (thanks to Adam Przepiórkowski for pointing this out)
  • p. 245, above equation: the intercept): → the intercept): (thanks to Adam Przepiórkowski for pointing this out)
  • p. 251, line 1 of last par.: or hypothesis → our hypothesis (thanks to Adam Przepiórkowski for pointing this out)
  • p. 251: line 2 above last code block: 2.12] and [2.12, → -4.585] and [+4.585,
  • p. 251, line 2: confidence intervals as well → confidence intervals as well) (thanks for Michael Fiddler for pointing this out)
  • p. 251, line 1 of last par.: we formulated or hypothesis → we formulated our hypothesis (thanks for Michael Fiddler for pointing this out)
  • p. 256, the first code block should be this:
sum(coef(m.01) * mm["ant",]) # same as predict(m.01)["ant"] and same as
667.03260 * # coef(m.01)[1]   , the intercept
1 +         # mm["ant",1]     , the intercept in the model matrix
-16.82015 * # coef(m.01)[2]   , the slope for FREQ
2.807355    # mm["ant",2]     , FREQ for "ant"
  • p. 265, line 3: in term of → in terms of (thanks to Adam Przepiórkowski for pointing this out)
  • p. 290, line 4: recall Table Table 21 → recall Table 21 (thanks to Adam Przepiórkowski for pointing this out)
  • p. 291, line 2 from bottom: what ever you’d → whatever you’d (thanks for Michael Fiddler for pointing this out)
  • p. 297, line 6 after code box: which level a certain exhibits → which level a certain data point exhibits (thanks to Adam Przepiórkowski for pointing this out)
  • p. 297, line 3 after bullet points: that ant has → that ant has (thanks for Michael Fiddler for pointing this out)
  • p. 303, line 2 above recommendation: the both the → both the (thanks for Michael Fiddler for pointing this out)
  • p. 303, line 6 from bottom: so that see how → so that we can see how (thanks to Adam Przepiórkowski for pointing this out)
  • p. 328, line 2 of code box: add underscores before helpers (thanks to Adam Przepiórkowski for pointing this out)
  • p. 332, line 2 of code box: add underscores before helpers (thanks to Adam Przepiórkowski for pointing this out)
  • p. 333, mid: Let’s compute Cis → Let’s compute CIs (thanks to Adam Przepiórkowski for pointing this out)
  • p. 339, line 9 from bottom: which I will use it to → which I will use to (thanks to Adam Przepiórkowski for pointing this out)
  • p. 342, last line: involved in. → involved in). (thanks to Adam Przepiórkowski for pointing this out)
  • p. 350, line 1 of code block 1: grid=TRUEgrid=TRUE) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 350, line 3 of code block 1: co fintconfint (thanks for Michael Fiddler for pointing this out)
  • p. 352: lines 1-2: which his why → which is why (thanks for Michael Fiddler for pointing this out)
  • p. 354, line before code box 1: that is changed → that it is changed (thanks to Adam Przepiórkowski for pointing this out)
  • p. 354, line 2 of code box: add underscores before helpers (thanks to Adam Przepiórkowski for pointing this out)
  • p. 371, the last bullet point: the equation for models with ordinal responses should be \(m=n-\frac{1}{n^2} \times \sum_{i=1}^{k} n_i^3\) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 381, lines 1-2 above Figure 127: the long run or prepositional datives → the long run of prepositional datives (thanks for Michael Fiddler for pointing this out)
  • p. 381, line 1 below Figure 127: to show many → to show how many (thanks for Michael Fiddler for pointing this out)
  • p. 385, mid: called overfitting A → called overfitting. A (thanks for Adam Przepiórkowski for pointing this out)

6 Chapter 6

  • p. 393, epigraph: testing], A → testing], (thanks for Adam Przepiórkowski for pointing this out)
  • p. 394, line 3 from bottom: there’s only file → there’s only one file (thanks to Adam Przepiórkowski for pointing this out)
  • p. 400, last line: how of data points produced → how the data points produced (thanks to Adam Przepiórkowski for pointing this out)
  • p. 409, line 3 from bottom: and when an MEM with → and an MEM with (thanks to Adam Przepiórkowski for pointing this out)
  • p. 410, 5 lines above recommendations: (2019:161 formulate → (2019:161) formulate
  • p. 412, line 1 or par. 2: Back the MEMS: → Back to MEMs: (thanks to Adam Przepiórkowski for pointing this out)
  • p. 417, line 2: there are quote noticeable → there are quite noticeable (thanks to Adam Przepiórkowski for pointing this out)
  • p. 419, line 8-9: ‘pockets’ of the data → ‘pockets’ of the data) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 429, line 2 from bottom: ; for predictors (which → for predictors (which (thanks to Adam Przepiórkowski for pointing this out)
  • p. 430, line 4 from bottom: but now there are → but now they are (thanks to Adam Przepiórkowski for pointing this out)
  • p. 432, line 2 below code block 2: 7×1015 → 7×1015 (thanks to Adam Przepiórkowski for pointing this out)
  • p. 434, bottom code block: the random number seed should be set like this: set.seed(sum(utf8ToInt("Brokkoliauflauf")))
  • p. 435, last line of code block 2: grid=TRUEgrid=TRUE) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 438, 2nd code block: the random number seed should be set like this: set.seed(sum(utf8ToInt("Schokonüsse")))
  • p. 439, line 2 of code box: add underscores before helpers (thanks to Adam Przepiórkowski for pointing this out)
  • p. 445, recommendations for further study: the random number seed should be set like this: set.seed(sum(utf8ToInt("simres")))
  • p. 446, bottom code block: the random number seed should be set like this: set.seed(sum(utf8ToInt("PolkHigh")))
  • p. 448, top code block: the random number seed should be set like this: set.seed(sum(utf8ToInt("Gorp.Fnark.Schmegle.")))
  • p. 448, line 1 of code block 2: spkt <- effect(m.final))) → spkt <- effect(“SPEAKERTYPE”, m.final))) (thanks to Adam Przepiórkowski for pointing this out)
  • p. 450, line 2 below Figure: when CONTRAST is new → when GIVENNESS.fac is new (thanks to Adam Przepiórkowski for pointing this out)

Note: the set.seed(sum(... errors were also fixed in the now updated code files.

7 Chapter 7

  • p. 453: from tree-base methods → from tree-based methods
  • p. 460: effects plots of shown → effects plots shown
  • p. 462, after code block 2: this is how can → this is how you can (thanks for Michael Fiddler for pointing this out)
  • p. 462, line 2 from bottom: pruned classification tree. → pruned classification tree). (thanks to Adam Przepiórkowski for pointing this out)
  • p. 466: and that the accuracy was much lower for sc-mc(0.46875) than for mc-sc (0.17818). → and that the classification/prediction error was much higher for sc-mc (0.46875) than for mc-sc (0.17818).
  • p. 76, line 1: provide quite importance results → provide quite important results (thanks to Adam Przepiórkowski for pointing this out)
  • p. 480: de-indent the third bullet point so that it is aligned with the previous two.

8 References

  • p. 489: add the following entry to the reference section: Good, Philip I., & James W. Hardin. 2012. Common errors in statistics (and how to a them). 4th ed. Hoboken, NJ: John Wiley and Sons.