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)
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)
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)
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)
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=TRUE
→
grid=TRUE)
(thanks to Adam Przepiórkowski for pointing this
out)
- p. 350, line 3 of code block 1:
co fint
→
confint
(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)
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=TRUE
→
grid=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.
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.
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.