# Archaeology and Statistics

Statistics can be a useful tool in archaeology, as the 1996 book Statistics for Archaeologists: A Common Sense Approach by Robert Drennan points out. Quantifying Archaeology by Stephen Shennan is another book on the subject.

Elsewhere I have discussed the benefits of the R statistical toolkit. The image below uses R to plot some data from Drennan’s book. Specifically, it is a histogram of the lengths of stone scrapers found at two sites (from his Tables 1.9 and 1.10). It can be seen that there is no significant difference between the two archaeological sites involved (red vs blue), but a very clear difference between scrapers made from flint (light, mean length 42.9 mm) vs chert (dark, mean length 18.4 mm). The visual plot summarises the numbers better than the tables can, and R’s statistical tests for significance (which I used to confirm the visual impression) are critically important for testing hypotheses.

The R code for this plot is:

``````#Group means
m.pc <- mean(Scrapers\$Length[Scrapers\$Site == "Pine Ridge Cave" & Scrapers\$Material == "Chert"])
m.pf <- mean(Scrapers\$Length[Scrapers\$Site == "Pine Ridge Cave" & Scrapers\$Material == "Flint"])
m.wc <- mean(Scrapers\$Length[Scrapers\$Site == "Willow Flats" & Scrapers\$Material == "Chert"])
m.wf <- mean(Scrapers\$Length[Scrapers\$Site == "Willow Flats" & Scrapers\$Material == "Flint"])

#Histograms for each group
bks <- 2.5+5*(0:18)
h.pc <- hist(Scrapers\$Length[Scrapers\$Site == "Pine Ridge Cave" & Scrapers\$Material == "Chert"], breaks=bks, plot=FALSE)
h.pf <- hist(Scrapers\$Length[Scrapers\$Site == "Pine Ridge Cave" & Scrapers\$Material == "Flint"], breaks=bks, plot=FALSE)
h.wc <- hist(Scrapers\$Length[Scrapers\$Site == "Willow Flats" & Scrapers\$Material == "Chert"], breaks=bks, plot=FALSE)
h.wf <- hist(Scrapers\$Length[Scrapers\$Site == "Willow Flats" & Scrapers\$Material == "Flint"], breaks=bks, plot=FALSE)

#Matrix of histograms
mat <- rbind (h.pc\$counts, h.pf\$counts, h.wc\$counts, h.wf\$counts)

#Plot matrix
legnd <- c(paste("Pine Ridge Cave, Chert (mean ", round(m.pc, digits=1), " mm)", sep=""),
paste("Pine Ridge Cave, Flint (mean ", round(m.pf, digits=1), " mm)", sep=""),
paste("Willow Flats, Chert (mean ", round(m.wc, digits=1), " mm)", sep=""),
paste("Willow Flats, Flint (mean ", round(m.wf, digits=1), " mm)", sep=""))
barplot(mat, space=0, col=c("darkred", "pink", "navy", "skyblue"), legend.text=legnd, names.arg=5*(1:18), ylim=c(0,12),
cex.names=0.7, ylab="Number of Scrapers", xlab="Scraper Length (mm)", cex.lab=1.3, args.legend=list(cex=0.8))

#Statistical tests
summary(lm(Scrapers\$Length ~ Scrapers\$Site + Scrapers\$Material))``````