

   AAnnssccoommbbee''ss QQuuaarrtteett ooff ````IIddeennttiiccaall'''' SSiimmppllee LLiinneeaarr RReeggrreess--
   ssiioonnss

        data(anscombe)

   FFoorrmmaatt::

        A data frame with 11 observations on 8 variables.

         x1 == x2 == x3     the integers 4:14, specially arranged
                    x4      values 8 and 19
         y1, y2, y3, y4     numbers in (3, 12.5)
                            mean(y<j>) = 7.5 and st.dev = 2.03

   DDeessccrriippttiioonn::

        Four x-y datasets which have the same traditional sta-
        tistical properties (mean, variance, correlation,
        regression line, etc.), yet are quite different.

   SSoouurrccee::

        Edward R. Tufte (1989).  The Visual Display of Quanti-
        tative Information; Graphics Press, p.13-14.

   RReeffeerreenncceess::

        Francis J. Anscombe (1973). Graphs in Statistical Anal-
        ysis; American Statistician, 27, 17-21.

   EExxaammpplleess::

        data(anscombe)
        summary(anscombe)

        ##-- now some "magic" to do the 4 regressions in a loop:
        ff <- y ~ x
        for(i in 1:4) {
          ff[2:3] <- lapply(paste(c("y","x"), i, sep=""), as.name)
          ## or   ff[[2]] <- as.name(paste("y", i, sep=""))
          ##      ff[[3]] <- as.name(paste("x", i, sep=""))
          assign(paste("lm.",i,sep=""), lmi <- lm(ff, data= anscombe))
          print(anova(lmi))
        }

        ## See how close they are (numerically!)
        sapply(objects(pat="lm.[1-4]$"), function(n) coef(get(n)))
        lapply(objects(pat="lm.[1-4]$"), function(n) summary(get(n))$coef)

        ## Now, do what you should have done in the first place: PLOTS
        op <- par(mfrow=c(2,2), mar=.1+c(4,4,1,1), oma= c(0,0,2,0))
        for(i in 1:4) {
          ff[2:3] <- lapply(paste(c("y","x"), i, sep=""), as.name)
          plot(ff, data =anscombe, col="red", pch=21, bg = "orange", cex = 1.2,
               xlim=c(3,19), ylim=c(3,13))
          abline(get(paste("lm.",i,sep="")), col="blue")
        }
        mtext("Anscombe's  4  Regression data sets", outer = TRUE, cex=1.5)
        par(op)

