blob: 2194baee0f4d9db5a20e8b5db5fab0a353ad8961 [file] [log] [blame]
R version 3.6.2 Patched (2020-02-12 r77795) -- "Dark and Stormy Night"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> pkgname <- "datasets"
> source(file.path(R.home("share"), "R", "examples-header.R"))
> options(warn = 1)
> library('datasets')
>
> base::assign(".oldSearch", base::search(), pos = 'CheckExEnv')
> base::assign(".old_wd", base::getwd(), pos = 'CheckExEnv')
> cleanEx()
> nameEx("AirPassengers")
> ### * AirPassengers
>
> flush(stderr()); flush(stdout())
>
> ### Name: AirPassengers
> ### Title: Monthly Airline Passenger Numbers 1949-1960
> ### Aliases: AirPassengers
> ### Keywords: datasets
>
> ### ** Examples
>
> ## Not run:
> ##D ## These are quite slow and so not run by example(AirPassengers)
> ##D
> ##D ## The classic 'airline model', by full ML
> ##D (fit <- arima(log10(AirPassengers), c(0, 1, 1),
> ##D seasonal = list(order = c(0, 1, 1), period = 12)))
> ##D update(fit, method = "CSS")
> ##D update(fit, x = window(log10(AirPassengers), start = 1954))
> ##D pred <- predict(fit, n.ahead = 24)
> ##D tl <- pred$pred - 1.96 * pred$se
> ##D tu <- pred$pred + 1.96 * pred$se
> ##D ts.plot(AirPassengers, 10^tl, 10^tu, log = "y", lty = c(1, 2, 2))
> ##D
> ##D ## full ML fit is the same if the series is reversed, CSS fit is not
> ##D ap0 <- rev(log10(AirPassengers))
> ##D attributes(ap0) <- attributes(AirPassengers)
> ##D arima(ap0, c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12))
> ##D arima(ap0, c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12),
> ##D method = "CSS")
> ##D
> ##D ## Structural Time Series
> ##D ap <- log10(AirPassengers) - 2
> ##D (fit <- StructTS(ap, type = "BSM"))
> ##D par(mfrow = c(1, 2))
> ##D plot(cbind(ap, fitted(fit)), plot.type = "single")
> ##D plot(cbind(ap, tsSmooth(fit)), plot.type = "single")
> ## End(Not run)
>
>
> cleanEx()
> nameEx("BOD")
> ### * BOD
>
> flush(stderr()); flush(stdout())
>
> ### Name: BOD
> ### Title: Biochemical Oxygen Demand
> ### Aliases: BOD
> ### Keywords: datasets
>
> ### ** Examples
>
> ## Don't show:
> options(show.nls.convergence=FALSE)
> old <- options(digits = 5)
> ## End(Don't show)
> require(stats)
> # simplest form of fitting a first-order model to these data
> fm1 <- nls(demand ~ A*(1-exp(-exp(lrc)*Time)), data = BOD,
+ start = c(A = 20, lrc = log(.35)))
> coef(fm1)
A lrc
19.14258 -0.63282
> fm1
Nonlinear regression model
model: demand ~ A * (1 - exp(-exp(lrc) * Time))
data: BOD
A lrc
19.143 -0.633
residual sum-of-squares: 26
> # using the plinear algorithm
> fm2 <- nls(demand ~ (1-exp(-exp(lrc)*Time)), data = BOD,
+ start = c(lrc = log(.35)), algorithm = "plinear", trace = TRUE)
32.946 : -1.0498 22.1260
25.992 : -0.62572 19.10319
25.99 : -0.6327 19.1419
25.99 : -0.63282 19.14256
> # using a self-starting model
> fm3 <- nls(demand ~ SSasympOrig(Time, A, lrc), data = BOD)
> summary(fm3)
Formula: demand ~ SSasympOrig(Time, A, lrc)
Parameters:
Estimate Std. Error t value Pr(>|t|)
A 19.143 2.496 7.67 0.0016 **
lrc -0.633 0.382 -1.65 0.1733
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.55 on 4 degrees of freedom
> ## Don't show:
> options(old)
> ## End(Don't show)
>
>
>
> cleanEx()
> nameEx("ChickWeight")
> ### * ChickWeight
>
> flush(stderr()); flush(stdout())
>
> ### Name: ChickWeight
> ### Title: Weight versus age of chicks on different diets
> ### Aliases: ChickWeight
> ### Keywords: datasets
>
> ### ** Examples
>
>
> cleanEx()
> nameEx("DNase")
> ### * DNase
>
> flush(stderr()); flush(stdout())
>
> ### Name: DNase
> ### Title: Elisa assay of DNase
> ### Aliases: DNase
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> ## Don't show:
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> coplot(density ~ conc | Run, data = DNase,
+ show.given = FALSE, type = "b")
> coplot(density ~ log(conc) | Run, data = DNase,
+ show.given = FALSE, type = "b")
> ## fit a representative run
> fm1 <- nls(density ~ SSlogis( log(conc), Asym, xmid, scal ),
+ data = DNase, subset = Run == 1)
> ## compare with a four-parameter logistic
> fm2 <- nls(density ~ SSfpl( log(conc), A, B, xmid, scal ),
+ data = DNase, subset = Run == 1)
> summary(fm2)
Formula: density ~ SSfpl(log(conc), A, B, xmid, scal)
Parameters:
Estimate Std. Error t value Pr(>|t|)
A -0.007897 0.017200 -0.459 0.654
B 2.377239 0.109516 21.707 5.35e-11 ***
xmid 1.507403 0.102080 14.767 4.65e-09 ***
scal 1.062579 0.056996 18.643 3.16e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01981 on 12 degrees of freedom
> anova(fm1, fm2)
Analysis of Variance Table
Model 1: density ~ SSlogis(log(conc), Asym, xmid, scal)
Model 2: density ~ SSfpl(log(conc), A, B, xmid, scal)
Res.Df Res.Sum Sq Df Sum Sq F value Pr(>F)
1 13 0.0047896
2 12 0.0047073 1 8.2314e-05 0.2098 0.6551
>
>
>
> cleanEx()
> nameEx("Formaldehyde")
> ### * Formaldehyde
>
> flush(stderr()); flush(stdout())
>
> ### Name: Formaldehyde
> ### Title: Determination of Formaldehyde
> ### Aliases: Formaldehyde
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> plot(optden ~ carb, data = Formaldehyde,
+ xlab = "Carbohydrate (ml)", ylab = "Optical Density",
+ main = "Formaldehyde data", col = 4, las = 1)
> abline(fm1 <- lm(optden ~ carb, data = Formaldehyde))
> summary(fm1)
Call:
lm(formula = optden ~ carb, data = Formaldehyde)
Residuals:
1 2 3 4 5 6
-0.006714 0.001029 0.002771 0.007143 0.007514 -0.011743
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.005086 0.007834 0.649 0.552
carb 0.876286 0.013535 64.744 3.41e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.008649 on 4 degrees of freedom
Multiple R-squared: 0.999, Adjusted R-squared: 0.9988
F-statistic: 4192 on 1 and 4 DF, p-value: 3.409e-07
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0))
> plot(fm1)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("HairEyeColor")
> ### * HairEyeColor
>
> flush(stderr()); flush(stdout())
>
> ### Name: HairEyeColor
> ### Title: Hair and Eye Color of Statistics Students
> ### Aliases: HairEyeColor
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> ## Full mosaic
> mosaicplot(HairEyeColor)
> ## Aggregate over sex (as in Snee's original data)
> x <- apply(HairEyeColor, c(1, 2), sum)
> x
Eye
Hair Brown Blue Hazel Green
Black 68 20 15 5
Brown 119 84 54 29
Red 26 17 14 14
Blond 7 94 10 16
> mosaicplot(x, main = "Relation between hair and eye color")
>
>
>
> cleanEx()
> nameEx("Harman23.cor")
> ### * Harman23.cor
>
> flush(stderr()); flush(stdout())
>
> ### Name: Harman23.cor
> ### Title: Harman Example 2.3
> ### Aliases: Harman23.cor
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats)
> (Harman23.FA <- factanal(factors = 1, covmat = Harman23.cor))
Call:
factanal(factors = 1, covmat = Harman23.cor)
Uniquenesses:
height arm.span forearm lower.leg weight
0.158 0.135 0.190 0.187 0.760
bitro.diameter chest.girth chest.width
0.829 0.877 0.801
Loadings:
Factor1
height 0.918
arm.span 0.930
forearm 0.900
lower.leg 0.902
weight 0.490
bitro.diameter 0.413
chest.girth 0.351
chest.width 0.446
Factor1
SS loadings 4.064
Proportion Var 0.508
Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 611.44 on 20 degrees of freedom.
The p-value is 1.12e-116
> for(factors in 2:4) print(update(Harman23.FA, factors = factors))
Call:
factanal(factors = factors, covmat = Harman23.cor)
Uniquenesses:
height arm.span forearm lower.leg weight
0.170 0.107 0.166 0.199 0.089
bitro.diameter chest.girth chest.width
0.364 0.416 0.537
Loadings:
Factor1 Factor2
height 0.865 0.287
arm.span 0.927 0.181
forearm 0.895 0.179
lower.leg 0.859 0.252
weight 0.233 0.925
bitro.diameter 0.194 0.774
chest.girth 0.134 0.752
chest.width 0.278 0.621
Factor1 Factor2
SS loadings 3.335 2.617
Proportion Var 0.417 0.327
Cumulative Var 0.417 0.744
Test of the hypothesis that 2 factors are sufficient.
The chi square statistic is 75.74 on 13 degrees of freedom.
The p-value is 6.94e-11
Call:
factanal(factors = factors, covmat = Harman23.cor)
Uniquenesses:
height arm.span forearm lower.leg weight
0.127 0.005 0.193 0.157 0.090
bitro.diameter chest.girth chest.width
0.359 0.411 0.490
Loadings:
Factor1 Factor2 Factor3
height 0.886 0.267 -0.130
arm.span 0.937 0.195 0.280
forearm 0.874 0.188
lower.leg 0.877 0.230 -0.145
weight 0.242 0.916 -0.106
bitro.diameter 0.193 0.777
chest.girth 0.137 0.755
chest.width 0.261 0.646 0.159
Factor1 Factor2 Factor3
SS loadings 3.379 2.628 0.162
Proportion Var 0.422 0.329 0.020
Cumulative Var 0.422 0.751 0.771
Test of the hypothesis that 3 factors are sufficient.
The chi square statistic is 22.81 on 7 degrees of freedom.
The p-value is 0.00184
Call:
factanal(factors = factors, covmat = Harman23.cor)
Uniquenesses:
height arm.span forearm lower.leg weight
0.137 0.005 0.191 0.116 0.138
bitro.diameter chest.girth chest.width
0.283 0.178 0.488
Loadings:
Factor1 Factor2 Factor3 Factor4
height 0.879 0.277 -0.115
arm.span 0.937 0.194 0.277
forearm 0.875 0.191
lower.leg 0.887 0.209 0.135 -0.188
weight 0.246 0.882 0.111 -0.109
bitro.diameter 0.187 0.822
chest.girth 0.117 0.729 0.526
chest.width 0.263 0.644 0.141
Factor1 Factor2 Factor3 Factor4
SS loadings 3.382 2.595 0.323 0.165
Proportion Var 0.423 0.324 0.040 0.021
Cumulative Var 0.423 0.747 0.787 0.808
Test of the hypothesis that 4 factors are sufficient.
The chi square statistic is 4.63 on 2 degrees of freedom.
The p-value is 0.0988
>
>
>
> cleanEx()
> nameEx("Harman74.cor")
> ### * Harman74.cor
>
> flush(stderr()); flush(stdout())
>
> ### Name: Harman74.cor
> ### Title: Harman Example 7.4
> ### Aliases: Harman74.cor
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats)
> (Harman74.FA <- factanal(factors = 1, covmat = Harman74.cor))
Call:
factanal(factors = 1, covmat = Harman74.cor)
Uniquenesses:
VisualPerception Cubes PaperFormBoard
0.677 0.866 0.830
Flags GeneralInformation PargraphComprehension
0.768 0.487 0.491
SentenceCompletion WordClassification WordMeaning
0.500 0.514 0.474
Addition Code CountingDots
0.818 0.731 0.824
StraightCurvedCapitals WordRecognition NumberRecognition
0.681 0.833 0.863
FigureRecognition ObjectNumber NumberFigure
0.775 0.812 0.778
FigureWord Deduction NumericalPuzzles
0.816 0.612 0.676
ProblemReasoning SeriesCompletion ArithmeticProblems
0.619 0.524 0.593
Loadings:
Factor1
VisualPerception 0.569
Cubes 0.366
PaperFormBoard 0.412
Flags 0.482
GeneralInformation 0.716
PargraphComprehension 0.713
SentenceCompletion 0.707
WordClassification 0.697
WordMeaning 0.725
Addition 0.426
Code 0.519
CountingDots 0.419
StraightCurvedCapitals 0.565
WordRecognition 0.408
NumberRecognition 0.370
FigureRecognition 0.474
ObjectNumber 0.434
NumberFigure 0.471
FigureWord 0.429
Deduction 0.623
NumericalPuzzles 0.569
ProblemReasoning 0.617
SeriesCompletion 0.690
ArithmeticProblems 0.638
Factor1
SS loadings 7.438
Proportion Var 0.310
Test of the hypothesis that 1 factor is sufficient.
The chi square statistic is 622.91 on 252 degrees of freedom.
The p-value is 2.28e-33
> for(factors in 2:5) print(update(Harman74.FA, factors = factors))
Call:
factanal(factors = factors, covmat = Harman74.cor)
Uniquenesses:
VisualPerception Cubes PaperFormBoard
0.650 0.864 0.844
Flags GeneralInformation PargraphComprehension
0.778 0.375 0.316
SentenceCompletion WordClassification WordMeaning
0.319 0.503 0.258
Addition Code CountingDots
0.670 0.608 0.581
StraightCurvedCapitals WordRecognition NumberRecognition
0.567 0.832 0.850
FigureRecognition ObjectNumber NumberFigure
0.743 0.770 0.625
FigureWord Deduction NumericalPuzzles
0.792 0.629 0.579
ProblemReasoning SeriesCompletion ArithmeticProblems
0.634 0.539 0.553
Loadings:
Factor1 Factor2
VisualPerception 0.506 0.306
Cubes 0.304 0.209
PaperFormBoard 0.297 0.260
Flags 0.327 0.339
GeneralInformation 0.240 0.753
PargraphComprehension 0.171 0.809
SentenceCompletion 0.163 0.809
WordClassification 0.344 0.615
WordMeaning 0.148 0.849
Addition 0.563 0.115
Code 0.591 0.207
CountingDots 0.647
StraightCurvedCapitals 0.612 0.241
WordRecognition 0.315 0.263
NumberRecognition 0.328 0.205
FigureRecognition 0.457 0.218
ObjectNumber 0.431 0.209
NumberFigure 0.601 0.116
FigureWord 0.399 0.222
Deduction 0.379 0.477
NumericalPuzzles 0.604 0.237
ProblemReasoning 0.390 0.462
SeriesCompletion 0.486 0.474
ArithmeticProblems 0.544 0.389
Factor1 Factor2
SS loadings 4.573 4.548
Proportion Var 0.191 0.190
Cumulative Var 0.191 0.380
Test of the hypothesis that 2 factors are sufficient.
The chi square statistic is 420.24 on 229 degrees of freedom.
The p-value is 2.01e-13
Call:
factanal(factors = factors, covmat = Harman74.cor)
Uniquenesses:
VisualPerception Cubes PaperFormBoard
0.500 0.793 0.662
Flags GeneralInformation PargraphComprehension
0.694 0.352 0.316
SentenceCompletion WordClassification WordMeaning
0.300 0.502 0.256
Addition Code CountingDots
0.200 0.586 0.494
StraightCurvedCapitals WordRecognition NumberRecognition
0.569 0.838 0.848
FigureRecognition ObjectNumber NumberFigure
0.643 0.780 0.635
FigureWord Deduction NumericalPuzzles
0.788 0.590 0.580
ProblemReasoning SeriesCompletion ArithmeticProblems
0.597 0.498 0.500
Loadings:
Factor1 Factor2 Factor3
VisualPerception 0.176 0.656 0.198
Cubes 0.122 0.428
PaperFormBoard 0.145 0.563
Flags 0.239 0.487 0.107
GeneralInformation 0.745 0.191 0.237
PargraphComprehension 0.780 0.249 0.118
SentenceCompletion 0.802 0.175 0.160
WordClassification 0.571 0.327 0.256
WordMeaning 0.821 0.248
Addition 0.162 -0.118 0.871
Code 0.198 0.219 0.572
CountingDots 0.179 0.688
StraightCurvedCapitals 0.190 0.381 0.499
WordRecognition 0.231 0.253 0.210
NumberRecognition 0.158 0.299 0.195
FigureRecognition 0.108 0.557 0.186
ObjectNumber 0.178 0.267 0.342
NumberFigure 0.427 0.424
FigureWord 0.167 0.355 0.240
Deduction 0.392 0.472 0.181
NumericalPuzzles 0.178 0.406 0.473
ProblemReasoning 0.382 0.473 0.182
SeriesCompletion 0.379 0.528 0.283
ArithmeticProblems 0.377 0.226 0.554
Factor1 Factor2 Factor3
SS loadings 3.802 3.488 3.186
Proportion Var 0.158 0.145 0.133
Cumulative Var 0.158 0.304 0.436
Test of the hypothesis that 3 factors are sufficient.
The chi square statistic is 295.59 on 207 degrees of freedom.
The p-value is 5.12e-05
Call:
factanal(factors = factors, covmat = Harman74.cor)
Uniquenesses:
VisualPerception Cubes PaperFormBoard
0.438 0.780 0.644
Flags GeneralInformation PargraphComprehension
0.651 0.352 0.312
SentenceCompletion WordClassification WordMeaning
0.283 0.485 0.257
Addition Code CountingDots
0.240 0.551 0.435
StraightCurvedCapitals WordRecognition NumberRecognition
0.491 0.646 0.696
FigureRecognition ObjectNumber NumberFigure
0.549 0.598 0.593
FigureWord Deduction NumericalPuzzles
0.762 0.592 0.583
ProblemReasoning SeriesCompletion ArithmeticProblems
0.601 0.497 0.500
Loadings:
Factor1 Factor2 Factor3 Factor4
VisualPerception 0.160 0.689 0.187 0.160
Cubes 0.117 0.436
PaperFormBoard 0.137 0.570 0.110
Flags 0.233 0.527
GeneralInformation 0.739 0.185 0.213 0.150
PargraphComprehension 0.767 0.205 0.233
SentenceCompletion 0.806 0.197 0.153
WordClassification 0.569 0.339 0.242 0.132
WordMeaning 0.806 0.201 0.227
Addition 0.167 -0.118 0.831 0.166
Code 0.180 0.120 0.512 0.374
CountingDots 0.210 0.716
StraightCurvedCapitals 0.188 0.438 0.525
WordRecognition 0.197 0.553
NumberRecognition 0.122 0.116 0.520
FigureRecognition 0.408 0.525
ObjectNumber 0.142 0.219 0.574
NumberFigure 0.293 0.336 0.456
FigureWord 0.148 0.239 0.161 0.365
Deduction 0.378 0.402 0.118 0.301
NumericalPuzzles 0.175 0.381 0.438 0.223
ProblemReasoning 0.366 0.399 0.123 0.301
SeriesCompletion 0.369 0.500 0.244 0.239
ArithmeticProblems 0.370 0.158 0.496 0.304
Factor1 Factor2 Factor3 Factor4
SS loadings 3.647 2.872 2.657 2.290
Proportion Var 0.152 0.120 0.111 0.095
Cumulative Var 0.152 0.272 0.382 0.478
Test of the hypothesis that 4 factors are sufficient.
The chi square statistic is 226.68 on 186 degrees of freedom.
The p-value is 0.0224
Call:
factanal(factors = factors, covmat = Harman74.cor)
Uniquenesses:
VisualPerception Cubes PaperFormBoard
0.450 0.781 0.639
Flags GeneralInformation PargraphComprehension
0.649 0.357 0.288
SentenceCompletion WordClassification WordMeaning
0.277 0.485 0.262
Addition Code CountingDots
0.215 0.386 0.444
StraightCurvedCapitals WordRecognition NumberRecognition
0.256 0.639 0.706
FigureRecognition ObjectNumber NumberFigure
0.550 0.614 0.596
FigureWord Deduction NumericalPuzzles
0.764 0.521 0.564
ProblemReasoning SeriesCompletion ArithmeticProblems
0.580 0.442 0.478
Loadings:
Factor1 Factor2 Factor3 Factor4 Factor5
VisualPerception 0.161 0.658 0.136 0.182 0.199
Cubes 0.113 0.435 0.107
PaperFormBoard 0.135 0.562 0.107 0.116
Flags 0.231 0.533
GeneralInformation 0.736 0.188 0.192 0.162
PargraphComprehension 0.775 0.187 0.251 0.113
SentenceCompletion 0.809 0.208 0.136
WordClassification 0.568 0.348 0.223 0.131
WordMeaning 0.800 0.215 0.224
Addition 0.175 -0.100 0.844 0.176
Code 0.185 0.438 0.451 0.426
CountingDots 0.222 0.690 0.101 0.140
StraightCurvedCapitals 0.186 0.425 0.458 0.559
WordRecognition 0.197 0.557
NumberRecognition 0.121 0.130 0.508
FigureRecognition 0.400 0.529
ObjectNumber 0.145 0.208 0.562
NumberFigure 0.306 0.325 0.452
FigureWord 0.147 0.242 0.145 0.364
Deduction 0.370 0.452 0.139 0.287 -0.190
NumericalPuzzles 0.170 0.402 0.439 0.230
ProblemReasoning 0.358 0.423 0.126 0.302
SeriesCompletion 0.360 0.549 0.256 0.223 -0.107
ArithmeticProblems 0.371 0.185 0.502 0.307
Factor1 Factor2 Factor3 Factor4 Factor5
SS loadings 3.632 2.964 2.456 2.345 0.663
Proportion Var 0.151 0.124 0.102 0.098 0.028
Cumulative Var 0.151 0.275 0.377 0.475 0.503
Test of the hypothesis that 5 factors are sufficient.
The chi square statistic is 186.82 on 166 degrees of freedom.
The p-value is 0.128
> Harman74.FA <- factanal(factors = 5, covmat = Harman74.cor,
+ rotation = "promax")
> print(Harman74.FA$loadings, sort = TRUE)
Loadings:
Factor1 Factor2 Factor3 Factor4 Factor5
VisualPerception 0.831 -0.127 0.230
Cubes 0.534
PaperFormBoard 0.736 -0.290 0.136
Flags 0.647 -0.104
SeriesCompletion 0.555 0.126 0.127
GeneralInformation 0.764
PargraphComprehension 0.845 -0.140 0.140
SentenceCompletion 0.872 -0.140
WordClassification 0.277 0.505 0.104
WordMeaning 0.846 -0.108
Addition -0.334 1.012
CountingDots 0.206 -0.200 0.722 0.185
ArithmeticProblems 0.197 0.500 0.139
WordRecognition -0.126 0.127 -0.103 0.657
NumberRecognition 0.568
FigureRecognition 0.399 -0.142 -0.207 0.562
ObjectNumber -0.108 0.107 0.613
StraightCurvedCapitals 0.542 0.247 0.618
Code 0.112 0.288 0.486 0.424
NumberFigure 0.255 -0.230 0.211 0.413
FigureWord 0.187 0.347
Deduction 0.404 0.169 0.117 -0.203
NumericalPuzzles 0.393 0.368
ProblemReasoning 0.381 0.188 0.169
Factor1 Factor2 Factor3 Factor4 Factor5
SS loadings 3.529 3.311 2.367 2.109 0.762
Proportion Var 0.147 0.138 0.099 0.088 0.032
Cumulative Var 0.147 0.285 0.384 0.471 0.503
>
>
>
> cleanEx()
> nameEx("InsectSprays")
> ### * InsectSprays
>
> flush(stderr()); flush(stdout())
>
> ### Name: InsectSprays
> ### Title: Effectiveness of Insect Sprays
> ### Aliases: InsectSprays
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> boxplot(count ~ spray, data = InsectSprays,
+ xlab = "Type of spray", ylab = "Insect count",
+ main = "InsectSprays data", varwidth = TRUE, col = "lightgray")
> fm1 <- aov(count ~ spray, data = InsectSprays)
> summary(fm1)
Df Sum Sq Mean Sq F value Pr(>F)
spray 5 2669 533.8 34.7 <2e-16 ***
Residuals 66 1015 15.4
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0))
> plot(fm1)
> fm2 <- aov(sqrt(count) ~ spray, data = InsectSprays)
> summary(fm2)
Df Sum Sq Mean Sq F value Pr(>F)
spray 5 88.44 17.688 44.8 <2e-16 ***
Residuals 66 26.06 0.395
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> plot(fm2)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("JohnsonJohnson")
> ### * JohnsonJohnson
>
> flush(stderr()); flush(stdout())
>
> ### Name: JohnsonJohnson
> ### Title: Quarterly Earnings per Johnson & Johnson Share
> ### Aliases: JohnsonJohnson
> ### Keywords: datasets
>
> ### ** Examples
>
>
> cleanEx()
> nameEx("LifeCycleSavings")
> ### * LifeCycleSavings
>
> flush(stderr()); flush(stdout())
>
> ### Name: LifeCycleSavings
> ### Title: Intercountry Life-Cycle Savings Data
> ### Aliases: LifeCycleSavings
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> pairs(LifeCycleSavings, panel = panel.smooth,
+ main = "LifeCycleSavings data")
> fm1 <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
> summary(fm1)
Call:
lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
Residuals:
Min 1Q Median 3Q Max
-8.2422 -2.6857 -0.2488 2.4280 9.7509
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 28.5660865 7.3545161 3.884 0.000334 ***
pop15 -0.4611931 0.1446422 -3.189 0.002603 **
pop75 -1.6914977 1.0835989 -1.561 0.125530
dpi -0.0003369 0.0009311 -0.362 0.719173
ddpi 0.4096949 0.1961971 2.088 0.042471 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.803 on 45 degrees of freedom
Multiple R-squared: 0.3385, Adjusted R-squared: 0.2797
F-statistic: 5.756 on 4 and 45 DF, p-value: 0.0007904
>
>
>
> cleanEx()
> nameEx("Loblolly")
> ### * Loblolly
>
> flush(stderr()); flush(stdout())
>
> ### Name: Loblolly
> ### Title: Growth of Loblolly pine trees
> ### Aliases: Loblolly
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> plot(height ~ age, data = Loblolly, subset = Seed == 329,
+ xlab = "Tree age (yr)", las = 1,
+ ylab = "Tree height (ft)",
+ main = "Loblolly data and fitted curve (Seed 329 only)")
> fm1 <- nls(height ~ SSasymp(age, Asym, R0, lrc),
+ data = Loblolly, subset = Seed == 329)
> age <- seq(0, 30, length.out = 101)
> lines(age, predict(fm1, list(age = age)))
>
>
>
> cleanEx()
> nameEx("Nile")
> ### * Nile
>
> flush(stderr()); flush(stdout())
>
> ### Name: Nile
> ### Title: Flow of the River Nile
> ### Aliases: Nile
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> par(mfrow = c(2, 2))
> plot(Nile)
> acf(Nile)
> pacf(Nile)
> ar(Nile) # selects order 2
Call:
ar(x = Nile)
Coefficients:
1 2
0.4081 0.1812
Order selected 2 sigma^2 estimated as 21247
> cpgram(ar(Nile)$resid)
> par(mfrow = c(1, 1))
> arima(Nile, c(2, 0, 0))
Call:
arima(x = Nile, order = c(2, 0, 0))
Coefficients:
ar1 ar2 intercept
0.4096 0.1987 919.8397
s.e. 0.0974 0.0990 35.6410
sigma^2 estimated as 20291: log likelihood = -637.98, aic = 1283.96
>
> ## Now consider missing values, following Durbin & Koopman
> NileNA <- Nile
> NileNA[c(21:40, 61:80)] <- NA
> arima(NileNA, c(2, 0, 0))
Call:
arima(x = NileNA, order = c(2, 0, 0))
Coefficients:
ar1 ar2 intercept
0.3622 0.1678 918.3103
s.e. 0.1273 0.1323 39.5037
sigma^2 estimated as 23676: log likelihood = -387.7, aic = 783.41
> plot(NileNA)
> pred <-
+ predict(arima(window(NileNA, 1871, 1890), c(2, 0, 0)), n.ahead = 20)
> lines(pred$pred, lty = 3, col = "red")
> lines(pred$pred + 2*pred$se, lty = 2, col = "blue")
> lines(pred$pred - 2*pred$se, lty = 2, col = "blue")
> pred <-
+ predict(arima(window(NileNA, 1871, 1930), c(2, 0, 0)), n.ahead = 20)
> lines(pred$pred, lty = 3, col = "red")
> lines(pred$pred + 2*pred$se, lty = 2, col = "blue")
> lines(pred$pred - 2*pred$se, lty = 2, col = "blue")
>
> ## Structural time series models
> par(mfrow = c(3, 1))
> plot(Nile)
> ## local level model
> (fit <- StructTS(Nile, type = "level"))
Call:
StructTS(x = Nile, type = "level")
Variances:
level epsilon
1469 15099
> lines(fitted(fit), lty = 2) # contemporaneous smoothing
> lines(tsSmooth(fit), lty = 2, col = 4) # fixed-interval smoothing
> plot(residuals(fit)); abline(h = 0, lty = 3)
> ## local trend model
> (fit2 <- StructTS(Nile, type = "trend")) ## constant trend fitted
Call:
StructTS(x = Nile, type = "trend")
Variances:
level slope epsilon
1427 0 15047
> pred <- predict(fit, n.ahead = 30)
> ## with 50% confidence interval
> ts.plot(Nile, pred$pred,
+ pred$pred + 0.67*pred$se, pred$pred -0.67*pred$se)
>
> ## Now consider missing values
> plot(NileNA)
> (fit3 <- StructTS(NileNA, type = "level"))
Call:
StructTS(x = NileNA, type = "level")
Variances:
level epsilon
685.8 17899.8
> lines(fitted(fit3), lty = 2)
> lines(tsSmooth(fit3), lty = 3)
> plot(residuals(fit3)); abline(h = 0, lty = 3)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("Orange")
> ### * Orange
>
> flush(stderr()); flush(stdout())
>
> ### Name: Orange
> ### Title: Growth of Orange Trees
> ### Aliases: Orange
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> coplot(circumference ~ age | Tree, data = Orange, show.given = FALSE)
> fm1 <- nls(circumference ~ SSlogis(age, Asym, xmid, scal),
+ data = Orange, subset = Tree == 3)
> plot(circumference ~ age, data = Orange, subset = Tree == 3,
+ xlab = "Tree age (days since 1968/12/31)",
+ ylab = "Tree circumference (mm)", las = 1,
+ main = "Orange tree data and fitted model (Tree 3 only)")
> age <- seq(0, 1600, length.out = 101)
> lines(age, predict(fm1, list(age = age)))
>
>
>
> cleanEx()
> nameEx("OrchardSprays")
> ### * OrchardSprays
>
> flush(stderr()); flush(stdout())
>
> ### Name: OrchardSprays
> ### Title: Potency of Orchard Sprays
> ### Aliases: OrchardSprays
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> pairs(OrchardSprays, main = "OrchardSprays data")
>
>
>
> cleanEx()
> nameEx("PlantGrowth")
> ### * PlantGrowth
>
> flush(stderr()); flush(stdout())
>
> ### Name: PlantGrowth
> ### Title: Results from an Experiment on Plant Growth
> ### Aliases: PlantGrowth
> ### Keywords: datasets
>
> ### ** Examples
>
> ## One factor ANOVA example from Dobson's book, cf. Table 7.4:
> require(stats); require(graphics)
> boxplot(weight ~ group, data = PlantGrowth, main = "PlantGrowth data",
+ ylab = "Dried weight of plants", col = "lightgray",
+ notch = TRUE, varwidth = TRUE)
Warning in bxp(list(stats = c(4.17, 4.53, 5.155, 5.33, 6.11, 3.59, 4.17, :
some notches went outside hinges ('box'): maybe set notch=FALSE
> anova(lm(weight ~ group, data = PlantGrowth))
Analysis of Variance Table
Response: weight
Df Sum Sq Mean Sq F value Pr(>F)
group 2 3.7663 1.8832 4.8461 0.01591 *
Residuals 27 10.4921 0.3886
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
>
>
> cleanEx()
> nameEx("Puromycin")
> ### * Puromycin
>
> flush(stderr()); flush(stdout())
>
> ### Name: Puromycin
> ### Title: Reaction Velocity of an Enzymatic Reaction
> ### Aliases: Puromycin
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> ## Don't show:
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> plot(rate ~ conc, data = Puromycin, las = 1,
+ xlab = "Substrate concentration (ppm)",
+ ylab = "Reaction velocity (counts/min/min)",
+ pch = as.integer(Puromycin$state),
+ col = as.integer(Puromycin$state),
+ main = "Puromycin data and fitted Michaelis-Menten curves")
> ## simplest form of fitting the Michaelis-Menten model to these data
> fm1 <- nls(rate ~ Vm * conc/(K + conc), data = Puromycin,
+ subset = state == "treated",
+ start = c(Vm = 200, K = 0.05))
> fm2 <- nls(rate ~ Vm * conc/(K + conc), data = Puromycin,
+ subset = state == "untreated",
+ start = c(Vm = 160, K = 0.05))
> summary(fm1)
Formula: rate ~ Vm * conc/(K + conc)
Parameters:
Estimate Std. Error t value Pr(>|t|)
Vm 2.127e+02 6.947e+00 30.615 3.24e-11 ***
K 6.412e-02 8.281e-03 7.743 1.57e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 10.93 on 10 degrees of freedom
> summary(fm2)
Formula: rate ~ Vm * conc/(K + conc)
Parameters:
Estimate Std. Error t value Pr(>|t|)
Vm 1.603e+02 6.480e+00 24.734 1.38e-09 ***
K 4.771e-02 7.782e-03 6.131 0.000173 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9.773 on 9 degrees of freedom
> ## add fitted lines to the plot
> conc <- seq(0, 1.2, length.out = 101)
> lines(conc, predict(fm1, list(conc = conc)), lty = 1, col = 1)
> lines(conc, predict(fm2, list(conc = conc)), lty = 2, col = 2)
> legend(0.8, 120, levels(Puromycin$state),
+ col = 1:2, lty = 1:2, pch = 1:2)
>
> ## using partial linearity
> fm3 <- nls(rate ~ conc/(K + conc), data = Puromycin,
+ subset = state == "treated", start = c(K = 0.05),
+ algorithm = "plinear")
>
>
>
> cleanEx()
> nameEx("Theoph")
> ### * Theoph
>
> flush(stderr()); flush(stdout())
>
> ### Name: Theoph
> ### Title: Pharmacokinetics of Theophylline
> ### Aliases: Theoph
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> ## Don't show:
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> coplot(conc ~ Time | Subject, data = Theoph, show.given = FALSE)
> Theoph.4 <- subset(Theoph, Subject == 4)
> fm1 <- nls(conc ~ SSfol(Dose, Time, lKe, lKa, lCl),
+ data = Theoph.4)
> summary(fm1)
Formula: conc ~ SSfol(Dose, Time, lKe, lKa, lCl)
Parameters:
Estimate Std. Error t value Pr(>|t|)
lKe -2.4365 0.2257 -10.797 4.77e-06 ***
lKa 0.1583 0.2297 0.689 0.51
lCl -3.2861 0.1448 -22.695 1.51e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8465 on 8 degrees of freedom
> plot(conc ~ Time, data = Theoph.4,
+ xlab = "Time since drug administration (hr)",
+ ylab = "Theophylline concentration (mg/L)",
+ main = "Observed concentrations and fitted model",
+ sub = "Theophylline data - Subject 4 only",
+ las = 1, col = 4)
> xvals <- seq(0, par("usr")[2], length.out = 55)
> lines(xvals, predict(fm1, newdata = list(Time = xvals)),
+ col = 4)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("Titanic")
> ### * Titanic
>
> flush(stderr()); flush(stdout())
>
> ### Name: Titanic
> ### Title: Survival of passengers on the Titanic
> ### Aliases: Titanic
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> mosaicplot(Titanic, main = "Survival on the Titanic")
> ## Higher survival rates in children?
> apply(Titanic, c(3, 4), sum)
Survived
Age No Yes
Child 52 57
Adult 1438 654
> ## Higher survival rates in females?
> apply(Titanic, c(2, 4), sum)
Survived
Sex No Yes
Male 1364 367
Female 126 344
> ## Use loglm() in package 'MASS' for further analysis ...
>
>
>
> cleanEx()
> nameEx("ToothGrowth")
> ### * ToothGrowth
>
> flush(stderr()); flush(stdout())
>
> ### Name: ToothGrowth
> ### Title: The Effect of Vitamin C on Tooth Growth in Guinea Pigs
> ### Aliases: ToothGrowth
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> coplot(len ~ dose | supp, data = ToothGrowth, panel = panel.smooth,
+ xlab = "ToothGrowth data: length vs dose, given type of supplement")
>
>
>
> cleanEx()
> nameEx("UCBAdmissions")
> ### * UCBAdmissions
>
> flush(stderr()); flush(stdout())
>
> ### Name: UCBAdmissions
> ### Title: Student Admissions at UC Berkeley
> ### Aliases: UCBAdmissions
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> ## Data aggregated over departments
> apply(UCBAdmissions, c(1, 2), sum)
Gender
Admit Male Female
Admitted 1198 557
Rejected 1493 1278
> mosaicplot(apply(UCBAdmissions, c(1, 2), sum),
+ main = "Student admissions at UC Berkeley")
> ## Data for individual departments
> opar <- par(mfrow = c(2, 3), oma = c(0, 0, 2, 0))
> for(i in 1:6)
+ mosaicplot(UCBAdmissions[,,i],
+ xlab = "Admit", ylab = "Sex",
+ main = paste("Department", LETTERS[i]))
> mtext(expression(bold("Student admissions at UC Berkeley")),
+ outer = TRUE, cex = 1.5)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("UKDriverDeaths")
> ### * UKDriverDeaths
>
> flush(stderr()); flush(stdout())
>
> ### Name: UKDriverDeaths
> ### Title: Road Casualties in Great Britain 1969-84
> ### Aliases: UKDriverDeaths Seatbelts
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> ## work with pre-seatbelt period to identify a model, use logs
> work <- window(log10(UKDriverDeaths), end = 1982+11/12)
> par(mfrow = c(3, 1))
> plot(work); acf(work); pacf(work)
> par(mfrow = c(1, 1))
> (fit <- arima(work, c(1, 0, 0), seasonal = list(order = c(1, 0, 0))))
Call:
arima(x = work, order = c(1, 0, 0), seasonal = list(order = c(1, 0, 0)))
Coefficients:
ar1 sar1 intercept
0.4378 0.6281 3.2274
s.e. 0.0764 0.0637 0.0131
sigma^2 estimated as 0.00157: log likelihood = 300.85, aic = -593.7
> z <- predict(fit, n.ahead = 24)
> ts.plot(log10(UKDriverDeaths), z$pred, z$pred+2*z$se, z$pred-2*z$se,
+ lty = c(1, 3, 2, 2), col = c("black", "red", "blue", "blue"))
>
> ## now see the effect of the explanatory variables
> X <- Seatbelts[, c("kms", "PetrolPrice", "law")]
> X[, 1] <- log10(X[, 1]) - 4
> arima(log10(Seatbelts[, "drivers"]), c(1, 0, 0),
+ seasonal = list(order = c(1, 0, 0)), xreg = X)
Call:
arima(x = log10(Seatbelts[, "drivers"]), order = c(1, 0, 0), seasonal = list(order = c(1,
0, 0)), xreg = X)
Coefficients:
ar1 sar1 intercept kms PetrolPrice law
0.3348 0.6672 3.3539 0.0082 -1.2224 -0.0963
s.e. 0.0775 0.0612 0.0441 0.0902 0.3839 0.0166
sigma^2 estimated as 0.001476: log likelihood = 349.73, aic = -685.46
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("UKLungDeaths")
> ### * UKLungDeaths
>
> flush(stderr()); flush(stdout())
>
> ### Name: UKLungDeaths
> ### Title: Monthly Deaths from Lung Diseases in the UK
> ### Aliases: UKLungDeaths ldeaths fdeaths mdeaths
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics) # for time
> plot(ldeaths)
> plot(mdeaths, fdeaths)
> ## Better labels:
> yr <- floor(tt <- time(mdeaths))
> plot(mdeaths, fdeaths,
+ xy.labels = paste(month.abb[12*(tt - yr)], yr-1900, sep = "'"))
>
>
>
> cleanEx()
> nameEx("UKgas")
> ### * UKgas
>
> flush(stderr()); flush(stdout())
>
> ### Name: UKgas
> ### Title: UK Quarterly Gas Consumption
> ### Aliases: UKgas
> ### Keywords: datasets
>
> ### ** Examples
>
> ## maybe str(UKgas) ; plot(UKgas) ...
>
>
>
> cleanEx()
> nameEx("USArrests")
> ### * USArrests
>
> flush(stderr()); flush(stdout())
>
> ### Name: USArrests
> ### Title: Violent Crime Rates by US State
> ### Aliases: USArrests
> ### Keywords: datasets
>
> ### ** Examples
>
> summary(USArrests)
Murder Assault UrbanPop Rape
Min. : 0.800 Min. : 45.0 Min. :32.00 Min. : 7.30
1st Qu.: 4.075 1st Qu.:109.0 1st Qu.:54.50 1st Qu.:15.07
Median : 7.250 Median :159.0 Median :66.00 Median :20.10
Mean : 7.788 Mean :170.8 Mean :65.54 Mean :21.23
3rd Qu.:11.250 3rd Qu.:249.0 3rd Qu.:77.75 3rd Qu.:26.18
Max. :17.400 Max. :337.0 Max. :91.00 Max. :46.00
>
> require(graphics)
> pairs(USArrests, panel = panel.smooth, main = "USArrests data")
>
> ## Difference between 'USArrests' and its correction
> USArrests["Maryland", "UrbanPop"] # 67 -- the transcription error
[1] 67
> UA.C <- USArrests
> UA.C["Maryland", "UrbanPop"] <- 76.6
>
> ## also +/- 0.5 to restore the original <n>.5 percentages
> s5u <- c("Colorado", "Florida", "Mississippi", "Wyoming")
> s5d <- c("Nebraska", "Pennsylvania")
> UA.C[s5u, "UrbanPop"] <- UA.C[s5u, "UrbanPop"] + 0.5
> UA.C[s5d, "UrbanPop"] <- UA.C[s5d, "UrbanPop"] - 0.5
>
> ## ==> UA.C is now a *C*orrected version of USArrests
>
>
>
> cleanEx()
> nameEx("USJudgeRatings")
> ### * USJudgeRatings
>
> flush(stderr()); flush(stdout())
>
> ### Name: USJudgeRatings
> ### Title: Lawyers' Ratings of State Judges in the US Superior Court
> ### Aliases: USJudgeRatings
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> pairs(USJudgeRatings, main = "USJudgeRatings data")
>
>
>
> cleanEx()
> nameEx("USPersonalExpenditure")
> ### * USPersonalExpenditure
>
> flush(stderr()); flush(stdout())
>
> ### Name: USPersonalExpenditure
> ### Title: Personal Expenditure Data
> ### Aliases: USPersonalExpenditure
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats) # for medpolish
> USPersonalExpenditure
1940 1945 1950 1955 1960
Food and Tobacco 22.200 44.500 59.60 73.2 86.80
Household Operation 10.500 15.500 29.00 36.5 46.20
Medical and Health 3.530 5.760 9.71 14.0 21.10
Personal Care 1.040 1.980 2.45 3.4 5.40
Private Education 0.341 0.974 1.80 2.6 3.64
> medpolish(log10(USPersonalExpenditure))
1: 1.126317
2: 1.032421
Final: 1.032421
Median Polish Results (Dataset: "log10(USPersonalExpenditure)")
Overall: 0.9872192
Row Effects:
Food and Tobacco Household Operation Medical and Health Personal Care
0.7880270 0.4327608 0.0000000 -0.5606543
Private Education
-0.7319467
Column Effects:
1940 1945 1950 1955 1960
-0.4288933 -0.2267967 0.0000000 0.1423128 0.3058289
Residuals:
1940 1945 1950 1955 1960
Food and Tobacco 0.000000 0.0999105 0.000000 -0.053048 -0.142555
Household Operation 0.030103 -0.0028516 0.042418 0.000000 -0.061167
Medical and Health -0.010551 0.0000000 0.000000 0.016596 0.031234
Personal Care 0.019362 0.0968971 -0.037399 -0.037399 0.000000
Private Education -0.293625 -0.0399168 0.000000 0.017388 0.000000
>
>
>
> cleanEx()
> nameEx("VADeaths")
> ### * VADeaths
>
> flush(stderr()); flush(stdout())
>
> ### Name: VADeaths
> ### Title: Death Rates in Virginia (1940)
> ### Aliases: VADeaths
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> n <- length(dr <- c(VADeaths))
> nam <- names(VADeaths)
> d.VAD <- data.frame(
+ Drate = dr,
+ age = rep(ordered(rownames(VADeaths)), length.out = n),
+ gender = gl(2, 5, n, labels = c("M", "F")),
+ site = gl(2, 10, labels = c("rural", "urban")))
> coplot(Drate ~ as.numeric(age) | gender * site, data = d.VAD,
+ panel = panel.smooth, xlab = "VADeaths data - Given: gender")
> summary(aov.VAD <- aov(Drate ~ .^2, data = d.VAD))
Df Sum Sq Mean Sq F value Pr(>F)
age 4 6288 1572.1 590.858 8.55e-06 ***
gender 1 648 647.5 243.361 9.86e-05 ***
site 1 77 76.8 28.876 0.00579 **
age:gender 4 86 21.6 8.100 0.03358 *
age:site 4 43 10.6 3.996 0.10414
gender:site 1 73 73.0 27.422 0.00636 **
Residuals 4 11 2.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0))
> plot(aov.VAD)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("WWWusage")
> ### * WWWusage
>
> flush(stderr()); flush(stdout())
>
> ### Name: WWWusage
> ### Title: Internet Usage per Minute
> ### Aliases: WWWusage
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> work <- diff(WWWusage)
> par(mfrow = c(2, 1)); plot(WWWusage); plot(work)
> ## Not run:
> ##D require(stats)
> ##D aics <- matrix(, 6, 6, dimnames = list(p = 0:5, q = 0:5))
> ##D for(q in 1:5) aics[1, 1+q] <- arima(WWWusage, c(0, 1, q),
> ##D optim.control = list(maxit = 500))$aic
> ##D for(p in 1:5)
> ##D for(q in 0:5) aics[1+p, 1+q] <- arima(WWWusage, c(p, 1, q),
> ##D optim.control = list(maxit = 500))$aic
> ##D round(aics - min(aics, na.rm = TRUE), 2)
> ## End(Not run)
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("WorldPhones")
> ### * WorldPhones
>
> flush(stderr()); flush(stdout())
>
> ### Name: WorldPhones
> ### Title: The World's Telephones
> ### Aliases: WorldPhones
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> matplot(rownames(WorldPhones), WorldPhones, type = "b", log = "y",
+ xlab = "Year", ylab = "Number of telephones (1000's)")
> legend(1951.5, 80000, colnames(WorldPhones), col = 1:6, lty = 1:5,
+ pch = rep(21, 7))
> title(main = "World phones data: log scale for response")
>
>
>
> cleanEx()
> nameEx("ability.cov")
> ### * ability.cov
>
> flush(stderr()); flush(stdout())
>
> ### Name: ability.cov
> ### Title: Ability and Intelligence Tests
> ### Aliases: ability.cov
> ### Keywords: datasets
>
> ### ** Examples
>
>
> cleanEx()
> nameEx("airmiles")
> ### * airmiles
>
> flush(stderr()); flush(stdout())
>
> ### Name: airmiles
> ### Title: Passenger Miles on Commercial US Airlines, 1937-1960
> ### Aliases: airmiles
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> plot(airmiles, main = "airmiles data",
+ xlab = "Passenger-miles flown by U.S. commercial airlines", col = 4)
>
>
>
> cleanEx()
> nameEx("airquality")
> ### * airquality
>
> flush(stderr()); flush(stdout())
>
> ### Name: airquality
> ### Title: New York Air Quality Measurements
> ### Aliases: airquality
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> pairs(airquality, panel = panel.smooth, main = "airquality data")
>
>
>
> cleanEx()
> nameEx("anscombe")
> ### * anscombe
>
> flush(stderr()); flush(stdout())
>
> ### Name: anscombe
> ### Title: Anscombe's Quartet of 'Identical' Simple Linear Regressions
> ### Aliases: anscombe
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> summary(anscombe)
x1 x2 x3 x4 y1
Min. : 4.0 Min. : 4.0 Min. : 4.0 Min. : 8 Min. : 4.260
1st Qu.: 6.5 1st Qu.: 6.5 1st Qu.: 6.5 1st Qu.: 8 1st Qu.: 6.315
Median : 9.0 Median : 9.0 Median : 9.0 Median : 8 Median : 7.580
Mean : 9.0 Mean : 9.0 Mean : 9.0 Mean : 9 Mean : 7.501
3rd Qu.:11.5 3rd Qu.:11.5 3rd Qu.:11.5 3rd Qu.: 8 3rd Qu.: 8.570
Max. :14.0 Max. :14.0 Max. :14.0 Max. :19 Max. :10.840
y2 y3 y4
Min. :3.100 Min. : 5.39 Min. : 5.250
1st Qu.:6.695 1st Qu.: 6.25 1st Qu.: 6.170
Median :8.140 Median : 7.11 Median : 7.040
Mean :7.501 Mean : 7.50 Mean : 7.501
3rd Qu.:8.950 3rd Qu.: 7.98 3rd Qu.: 8.190
Max. :9.260 Max. :12.74 Max. :12.500
>
> ##-- now some "magic" to do the 4 regressions in a loop:
> ff <- y ~ x
> mods <- setNames(as.list(1:4), paste0("lm", 1:4))
> for(i in 1:4) {
+ ff[2:3] <- lapply(paste0(c("y","x"), i), as.name)
+ ## or ff[[2]] <- as.name(paste0("y", i))
+ ## ff[[3]] <- as.name(paste0("x", i))
+ mods[[i]] <- lmi <- lm(ff, data = anscombe)
+ print(anova(lmi))
+ }
Analysis of Variance Table
Response: y1
Df Sum Sq Mean Sq F value Pr(>F)
x1 1 27.510 27.5100 17.99 0.00217 **
Residuals 9 13.763 1.5292
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Analysis of Variance Table
Response: y2
Df Sum Sq Mean Sq F value Pr(>F)
x2 1 27.500 27.5000 17.966 0.002179 **
Residuals 9 13.776 1.5307
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Analysis of Variance Table
Response: y3
Df Sum Sq Mean Sq F value Pr(>F)
x3 1 27.470 27.4700 17.972 0.002176 **
Residuals 9 13.756 1.5285
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Analysis of Variance Table
Response: y4
Df Sum Sq Mean Sq F value Pr(>F)
x4 1 27.490 27.4900 18.003 0.002165 **
Residuals 9 13.742 1.5269
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> ## See how close they are (numerically!)
> sapply(mods, coef)
lm1 lm2 lm3 lm4
(Intercept) 3.0000909 3.000909 3.0024545 3.0017273
x1 0.5000909 0.500000 0.4997273 0.4999091
> lapply(mods, function(fm) coef(summary(fm)))
$lm1
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.0000909 1.1247468 2.667348 0.025734051
x1 0.5000909 0.1179055 4.241455 0.002169629
$lm2
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.000909 1.1253024 2.666758 0.025758941
x2 0.500000 0.1179637 4.238590 0.002178816
$lm3
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.0024545 1.1244812 2.670080 0.025619109
x3 0.4997273 0.1178777 4.239372 0.002176305
$lm4
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.0017273 1.1239211 2.670763 0.025590425
x4 0.4999091 0.1178189 4.243028 0.002164602
>
> ## Now, do what you should have done in the first place: PLOTS
> op <- par(mfrow = c(2, 2), mar = 0.1+c(4,4,1,1), oma = c(0, 0, 2, 0))
> for(i in 1:4) {
+ ff[2:3] <- lapply(paste0(c("y","x"), i), as.name)
+ plot(ff, data = anscombe, col = "red", pch = 21, bg = "orange", cex = 1.2,
+ xlim = c(3, 19), ylim = c(3, 13))
+ abline(mods[[i]], col = "blue")
+ }
> mtext("Anscombe's 4 Regression data sets", outer = TRUE, cex = 1.5)
> par(op)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("attenu")
> ### * attenu
>
> flush(stderr()); flush(stdout())
>
> ### Name: attenu
> ### Title: The Joyner-Boore Attenuation Data
> ### Aliases: attenu
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> ## check the data class of the variables
> sapply(attenu, data.class)
event mag station dist accel
"numeric" "numeric" "factor" "numeric" "numeric"
> summary(attenu)
event mag station dist
Min. : 1.00 Min. :5.000 117 : 5 Min. : 0.50
1st Qu.: 9.00 1st Qu.:5.300 1028 : 4 1st Qu.: 11.32
Median :18.00 Median :6.100 113 : 4 Median : 23.40
Mean :14.74 Mean :6.084 112 : 3 Mean : 45.60
3rd Qu.:20.00 3rd Qu.:6.600 135 : 3 3rd Qu.: 47.55
Max. :23.00 Max. :7.700 (Other):147 Max. :370.00
NA's : 16
accel
Min. :0.00300
1st Qu.:0.04425
Median :0.11300
Mean :0.15422
3rd Qu.:0.21925
Max. :0.81000
> pairs(attenu, main = "attenu data")
> coplot(accel ~ dist | as.factor(event), data = attenu, show.given = FALSE)
> coplot(log(accel) ~ log(dist) | as.factor(event),
+ data = attenu, panel = panel.smooth, show.given = FALSE)
>
>
>
> cleanEx()
> nameEx("attitude")
> ### * attitude
>
> flush(stderr()); flush(stdout())
>
> ### Name: attitude
> ### Title: The Chatterjee-Price Attitude Data
> ### Aliases: attitude
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> pairs(attitude, main = "attitude data")
> summary(attitude)
rating complaints privileges learning raises
Min. :40.00 Min. :37.0 Min. :30.00 Min. :34.00 Min. :43.00
1st Qu.:58.75 1st Qu.:58.5 1st Qu.:45.00 1st Qu.:47.00 1st Qu.:58.25
Median :65.50 Median :65.0 Median :51.50 Median :56.50 Median :63.50
Mean :64.63 Mean :66.6 Mean :53.13 Mean :56.37 Mean :64.63
3rd Qu.:71.75 3rd Qu.:77.0 3rd Qu.:62.50 3rd Qu.:66.75 3rd Qu.:71.00
Max. :85.00 Max. :90.0 Max. :83.00 Max. :75.00 Max. :88.00
critical advance
Min. :49.00 Min. :25.00
1st Qu.:69.25 1st Qu.:35.00
Median :77.50 Median :41.00
Mean :74.77 Mean :42.93
3rd Qu.:80.00 3rd Qu.:47.75
Max. :92.00 Max. :72.00
> summary(fm1 <- lm(rating ~ ., data = attitude))
Call:
lm(formula = rating ~ ., data = attitude)
Residuals:
Min 1Q Median 3Q Max
-10.9418 -4.3555 0.3158 5.5425 11.5990
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10.78708 11.58926 0.931 0.361634
complaints 0.61319 0.16098 3.809 0.000903 ***
privileges -0.07305 0.13572 -0.538 0.595594
learning 0.32033 0.16852 1.901 0.069925 .
raises 0.08173 0.22148 0.369 0.715480
critical 0.03838 0.14700 0.261 0.796334
advance -0.21706 0.17821 -1.218 0.235577
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7.068 on 23 degrees of freedom
Multiple R-squared: 0.7326, Adjusted R-squared: 0.6628
F-statistic: 10.5 on 6 and 23 DF, p-value: 1.24e-05
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+ mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> summary(fm2 <- lm(rating ~ complaints, data = attitude))
Call:
lm(formula = rating ~ complaints, data = attitude)
Residuals:
Min 1Q Median 3Q Max
-12.8799 -5.9905 0.1783 6.2978 9.6294
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 14.37632 6.61999 2.172 0.0385 *
complaints 0.75461 0.09753 7.737 1.99e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 6.993 on 28 degrees of freedom
Multiple R-squared: 0.6813, Adjusted R-squared: 0.6699
F-statistic: 59.86 on 1 and 28 DF, p-value: 1.988e-08
> plot(fm2)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("beavers")
> ### * beavers
>
> flush(stderr()); flush(stdout())
>
> ### Name: beavers
> ### Title: Body Temperature Series of Two Beavers
> ### Aliases: beavers beaver1 beaver2
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> (yl <- range(beaver1$temp, beaver2$temp))
[1] 36.33 38.35
>
> beaver.plot <- function(bdat, ...) {
+ nam <- deparse(substitute(bdat))
+ with(bdat, {
+ # Hours since start of day:
+ hours <- time %/% 100 + 24*(day - day[1]) + (time %% 100)/60
+ plot (hours, temp, type = "l", ...,
+ main = paste(nam, "body temperature"))
+ abline(h = 37.5, col = "gray", lty = 2)
+ is.act <- activ == 1
+ points(hours[is.act], temp[is.act], col = 2, cex = .8)
+ })
+ }
> op <- par(mfrow = c(2, 1), mar = c(3, 3, 4, 2), mgp = 0.9 * 2:0)
> beaver.plot(beaver1, ylim = yl)
> beaver.plot(beaver2, ylim = yl)
> par(op)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("cars")
> ### * cars
>
> flush(stderr()); flush(stdout())
>
> ### Name: cars
> ### Title: Speed and Stopping Distances of Cars
> ### Aliases: cars
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> plot(cars, xlab = "Speed (mph)", ylab = "Stopping distance (ft)",
+ las = 1)
> lines(lowess(cars$speed, cars$dist, f = 2/3, iter = 3), col = "red")
> title(main = "cars data")
> plot(cars, xlab = "Speed (mph)", ylab = "Stopping distance (ft)",
+ las = 1, log = "xy")
> title(main = "cars data (logarithmic scales)")
> lines(lowess(cars$speed, cars$dist, f = 2/3, iter = 3), col = "red")
> summary(fm1 <- lm(log(dist) ~ log(speed), data = cars))
Call:
lm(formula = log(dist) ~ log(speed), data = cars)
Residuals:
Min 1Q Median 3Q Max
-1.00215 -0.24578 -0.02898 0.20717 0.88289
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7297 0.3758 -1.941 0.0581 .
log(speed) 1.6024 0.1395 11.484 2.26e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4053 on 48 degrees of freedom
Multiple R-squared: 0.7331, Adjusted R-squared: 0.7276
F-statistic: 131.9 on 1 and 48 DF, p-value: 2.259e-15
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+ mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
>
> ## An example of polynomial regression
> plot(cars, xlab = "Speed (mph)", ylab = "Stopping distance (ft)",
+ las = 1, xlim = c(0, 25))
> d <- seq(0, 25, length.out = 200)
> for(degree in 1:4) {
+ fm <- lm(dist ~ poly(speed, degree), data = cars)
+ assign(paste("cars", degree, sep = "."), fm)
+ lines(d, predict(fm, data.frame(speed = d)), col = degree)
+ }
> anova(cars.1, cars.2, cars.3, cars.4)
Analysis of Variance Table
Model 1: dist ~ poly(speed, degree)
Model 2: dist ~ poly(speed, degree)
Model 3: dist ~ poly(speed, degree)
Model 4: dist ~ poly(speed, degree)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 48 11354
2 47 10825 1 528.81 2.3108 0.1355
3 46 10634 1 190.35 0.8318 0.3666
4 45 10298 1 336.55 1.4707 0.2316
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("chickwts")
> ### * chickwts
>
> flush(stderr()); flush(stdout())
>
> ### Name: chickwts
> ### Title: Chicken Weights by Feed Type
> ### Aliases: chickwts
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> boxplot(weight ~ feed, data = chickwts, col = "lightgray",
+ varwidth = TRUE, notch = TRUE, main = "chickwt data",
+ ylab = "Weight at six weeks (gm)")
Warning in bxp(list(stats = c(216, 271.5, 342, 373.5, 404, 108, 136, 151.5, :
some notches went outside hinges ('box'): maybe set notch=FALSE
> anova(fm1 <- lm(weight ~ feed, data = chickwts))
Analysis of Variance Table
Response: weight
Df Sum Sq Mean Sq F value Pr(>F)
feed 5 231129 46226 15.365 5.936e-10 ***
Residuals 65 195556 3009
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+ mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("co2")
> ### * co2
>
> flush(stderr()); flush(stdout())
>
> ### Name: co2
> ### Title: Mauna Loa Atmospheric CO2 Concentration
> ### Aliases: co2
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> plot(co2, ylab = expression("Atmospheric concentration of CO"[2]),
+ las = 1)
> title(main = "co2 data set")
>
>
>
> cleanEx()
> nameEx("crimtab")
> ### * crimtab
>
> flush(stderr()); flush(stdout())
>
> ### Name: crimtab
> ### Title: Student's 3000 Criminals Data
> ### Aliases: crimtab
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats)
> dim(crimtab)
[1] 42 22
> utils::str(crimtab)
'table' int [1:42, 1:22] 0 0 0 0 0 0 1 0 0 0 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:42] "9.4" "9.5" "9.6" "9.7" ...
..$ : chr [1:22] "142.24" "144.78" "147.32" "149.86" ...
> ## for nicer printing:
> local({cT <- crimtab
+ colnames(cT) <- substring(colnames(cT), 2, 3)
+ print(cT, zero.print = " ")
+ })
42 44 47 49 52 54 57 60 62 65 67 70 72 75 77 80 82 85 87 90 93 95
9.4
9.5 1
9.6
9.7
9.8 1
9.9 1 1 1
10 1 1 2 2 1
10.1 1 3 1 1 1
10.2 2 2 2 1 2 1
10.3 1 1 3 2 2 3 5
10.4 1 1 2 3 3 4 3 3
10.5 1 3 7 6 4 3 1 3 1 1
10.6 1 4 5 9 14 6 3 1 1
10.7 1 2 4 9 14 16 15 7 3 1 2
10.8 2 5 6 14 27 10 7 1 2 1
10.9 2 6 14 24 27 14 10 4 1
11 2 6 12 15 31 37 27 17 10 6
11.1 3 3 12 22 26 24 26 24 7 4 1
11.2 3 2 7 21 30 38 29 27 20 4 1 1
11.3 1 5 10 24 26 39 26 24 7 2
11.4 3 4 9 29 56 58 26 22 10 11
11.5 5 11 17 33 57 38 34 25 11 2
11.6 2 1 4 13 37 39 48 38 27 12 2 2 1
11.7 2 9 17 30 37 48 45 24 9 9 2
11.8 1 2 11 15 35 41 34 29 10 5 1
11.9 1 1 2 12 10 27 32 35 19 10 9 3 1
12 1 4 8 19 42 39 22 16 8 2 2
12.1 2 4 13 22 28 15 27 10 4 1
12.2 1 2 5 6 23 17 16 11 8 1 1
12.3 4 8 10 13 20 23 6 5
12.4 1 1 1 2 7 12 4 7 7 1 1
12.5 1 1 3 12 11 8 6 8 2
12.6 1 3 5 7 8 6 3 1 1
12.7 1 1 7 5 5 8 2 2
12.8 1 2 3 1 8 5 3 1 1
12.9 1 2 2 1 1
13 3 1 1 2 1
13.1 1 1
13.2 1 1 1 3
13.3 1 1
13.4
13.5 1
>
> ## Repeat Student's experiment:
>
> # 1) Reconstitute 3000 raw data for heights in inches and rounded to
> # nearest integer as in Student's paper:
>
> (heIn <- round(as.numeric(colnames(crimtab)) / 2.54))
[1] 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
> d.hei <- data.frame(height = rep(heIn, colSums(crimtab)))
>
> # 2) shuffle the data:
>
> set.seed(1)
> d.hei <- d.hei[sample(1:3000), , drop = FALSE]
>
> # 3) Make 750 samples each of size 4:
>
> d.hei$sample <- as.factor(rep(1:750, each = 4))
>
> # 4) Compute the means and standard deviations (n) for the 750 samples:
>
> h.mean <- with(d.hei, tapply(height, sample, FUN = mean))
> h.sd <- with(d.hei, tapply(height, sample, FUN = sd)) * sqrt(3/4)
>
> # 5) Compute the difference between the mean of each sample and
> # the mean of the population and then divide by the
> # standard deviation of the sample:
>
> zobs <- (h.mean - mean(d.hei[,"height"]))/h.sd
>
> # 6) Replace infinite values by +/- 6 as in Student's paper:
>
> zobs[infZ <- is.infinite(zobs)] # none of them
named numeric(0)
> zobs[infZ] <- 6 * sign(zobs[infZ])
>
> # 7) Plot the distribution:
>
> require(grDevices); require(graphics)
> hist(x = zobs, probability = TRUE, xlab = "Student's z",
+ col = grey(0.8), border = grey(0.5),
+ main = "Distribution of Student's z score for 'crimtab' data")
>
>
>
> cleanEx()
> nameEx("discoveries")
> ### * discoveries
>
> flush(stderr()); flush(stdout())
>
> ### Name: discoveries
> ### Title: Yearly Numbers of Important Discoveries
> ### Aliases: discoveries
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> plot(discoveries, ylab = "Number of important discoveries",
+ las = 1)
> title(main = "discoveries data set")
>
>
>
> cleanEx()
> nameEx("esoph")
> ### * esoph
>
> flush(stderr()); flush(stdout())
>
> ### Name: esoph
> ### Title: Smoking, Alcohol and (O)esophageal Cancer
> ### Aliases: esoph
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats)
> require(graphics) # for mosaicplot
> summary(esoph)
agegp alcgp tobgp ncases ncontrols
25-34:15 0-39g/day:23 0-9g/day:24 Min. : 0.000 Min. : 1.00
35-44:15 40-79 :23 10-19 :24 1st Qu.: 0.000 1st Qu.: 3.00
45-54:16 80-119 :21 20-29 :20 Median : 1.000 Median : 6.00
55-64:16 120+ :21 30+ :20 Mean : 2.273 Mean :11.08
65-74:15 3rd Qu.: 4.000 3rd Qu.:14.00
75+ :11 Max. :17.000 Max. :60.00
> ## effects of alcohol, tobacco and interaction, age-adjusted
> model1 <- glm(cbind(ncases, ncontrols) ~ agegp + tobgp * alcgp,
+ data = esoph, family = binomial())
> anova(model1)
Analysis of Deviance Table
Model: binomial, link: logit
Response: cbind(ncases, ncontrols)
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev
NULL 87 227.241
agegp 5 88.128 82 139.112
tobgp 3 19.085 79 120.028
alcgp 3 66.054 76 53.973
tobgp:alcgp 9 6.489 67 47.484
> ## Try a linear effect of alcohol and tobacco
> model2 <- glm(cbind(ncases, ncontrols) ~ agegp + unclass(tobgp)
+ + unclass(alcgp),
+ data = esoph, family = binomial())
> summary(model2)
Call:
glm(formula = cbind(ncases, ncontrols) ~ agegp + unclass(tobgp) +
unclass(alcgp), family = binomial(), data = esoph)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.7628 -0.6426 -0.2709 0.3043 2.0421
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -4.01097 0.31224 -12.846 < 2e-16 ***
agegp.L 2.96113 0.65092 4.549 5.39e-06 ***
agegp.Q -1.33735 0.58918 -2.270 0.02322 *
agegp.C 0.15292 0.44792 0.341 0.73281
agegp^4 0.06668 0.30776 0.217 0.82848
agegp^5 -0.20288 0.19523 -1.039 0.29872
unclass(tobgp) 0.26162 0.08198 3.191 0.00142 **
unclass(alcgp) 0.65308 0.08452 7.727 1.10e-14 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 227.241 on 87 degrees of freedom
Residual deviance: 59.277 on 80 degrees of freedom
AIC: 222.76
Number of Fisher Scoring iterations: 6
> ## Re-arrange data for a mosaic plot
> ttt <- table(esoph$agegp, esoph$alcgp, esoph$tobgp)
> o <- with(esoph, order(tobgp, alcgp, agegp))
> ttt[ttt == 1] <- esoph$ncases[o]
> tt1 <- table(esoph$agegp, esoph$alcgp, esoph$tobgp)
> tt1[tt1 == 1] <- esoph$ncontrols[o]
> tt <- array(c(ttt, tt1), c(dim(ttt),2),
+ c(dimnames(ttt), list(c("Cancer", "control"))))
> mosaicplot(tt, main = "esoph data set", color = TRUE)
>
>
>
> cleanEx()
> nameEx("euro")
> ### * euro
>
> flush(stderr()); flush(stdout())
>
> ### Name: euro
> ### Title: Conversion Rates of Euro Currencies
> ### Aliases: euro euro.cross
> ### Keywords: datasets
>
> ### ** Examples
>
> cbind(euro)
euro
ATS 13.760300
BEF 40.339900
DEM 1.955830
ESP 166.386000
FIM 5.945730
FRF 6.559570
IEP 0.787564
ITL 1936.270000
LUF 40.339900
NLG 2.203710
PTE 200.482000
>
> ## These relations hold:
> euro == signif(euro, 6) # [6 digit precision in Euro's definition]
ATS BEF DEM ESP FIM FRF IEP ITL LUF NLG PTE
TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
> all(euro.cross == outer(1/euro, euro))
[1] TRUE
>
> ## Convert 20 Euro to Belgian Franc
> 20 * euro["BEF"]
BEF
806.798
> ## Convert 20 Austrian Schilling to Euro
> 20 / euro["ATS"]
ATS
1.453457
> ## Convert 20 Spanish Pesetas to Italian Lira
> 20 * euro.cross["ESP", "ITL"]
[1] 232.7443
>
> require(graphics)
> dotchart(euro,
+ main = "euro data: 1 Euro in currency unit")
> dotchart(1/euro,
+ main = "euro data: 1 currency unit in Euros")
> dotchart(log(euro, 10),
+ main = "euro data: log10(1 Euro in currency unit)")
>
>
>
> cleanEx()
> nameEx("faithful")
> ### * faithful
>
> flush(stderr()); flush(stdout())
>
> ### Name: faithful
> ### Title: Old Faithful Geyser Data
> ### Aliases: faithful
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> f.tit <- "faithful data: Eruptions of Old Faithful"
>
> ne60 <- round(e60 <- 60 * faithful$eruptions)
> all.equal(e60, ne60) # relative diff. ~ 1/10000
[1] "Mean relative difference: 9.515332e-05"
> table(zapsmall(abs(e60 - ne60))) # 0, 0.02 or 0.04
0 0.02 0.04
106 163 3
> faithful$better.eruptions <- ne60 / 60
> te <- table(ne60)
> te[te >= 4] # (too) many multiples of 5 !
ne60
105 108 110 112 113 120 216 230 240 245 249 250 255 260 261 262 265 270 272 275
6 4 7 8 4 4 4 5 6 5 4 4 4 5 4 4 4 8 5 4
276 282 288
4 6 6
> plot(names(te), te, type = "h", main = f.tit, xlab = "Eruption time (sec)")
>
> plot(faithful[, -3], main = f.tit,
+ xlab = "Eruption time (min)",
+ ylab = "Waiting time to next eruption (min)")
> lines(lowess(faithful$eruptions, faithful$waiting, f = 2/3, iter = 3),
+ col = "red")
>
>
>
> cleanEx()
> nameEx("freeny")
> ### * freeny
>
> flush(stderr()); flush(stdout())
>
> ### Name: freeny
> ### Title: Freeny's Revenue Data
> ### Aliases: freeny freeny.x freeny.y
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> summary(freeny)
y lag.quarterly.revenue price.index income.level
Min. :8.791 Min. :8.791 Min. :4.278 Min. :5.821
1st Qu.:9.045 1st Qu.:9.020 1st Qu.:4.392 1st Qu.:5.948
Median :9.314 Median :9.284 Median :4.510 Median :6.061
Mean :9.306 Mean :9.281 Mean :4.496 Mean :6.039
3rd Qu.:9.591 3rd Qu.:9.561 3rd Qu.:4.605 3rd Qu.:6.139
Max. :9.794 Max. :9.775 Max. :4.710 Max. :6.200
market.potential
Min. :12.97
1st Qu.:13.01
Median :13.07
Mean :13.07
3rd Qu.:13.12
Max. :13.17
> pairs(freeny, main = "freeny data")
> # gives warning: freeny$y has class "ts"
>
> summary(fm1 <- lm(y ~ ., data = freeny))
Call:
lm(formula = y ~ ., data = freeny)
Residuals:
Min 1Q Median 3Q Max
-0.0259426 -0.0101033 0.0003824 0.0103236 0.0267124
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -10.4726 6.0217 -1.739 0.0911 .
lag.quarterly.revenue 0.1239 0.1424 0.870 0.3904
price.index -0.7542 0.1607 -4.693 4.28e-05 ***
income.level 0.7675 0.1339 5.730 1.93e-06 ***
market.potential 1.3306 0.5093 2.613 0.0133 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01473 on 34 degrees of freedom
Multiple R-squared: 0.9981, Adjusted R-squared: 0.9978
F-statistic: 4354 on 4 and 34 DF, p-value: < 2.2e-16
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+ mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("infert")
> ### * infert
>
> flush(stderr()); flush(stdout())
>
> ### Name: infert
> ### Title: Infertility after Spontaneous and Induced Abortion
> ### Aliases: infert
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats)
> model1 <- glm(case ~ spontaneous+induced, data = infert, family = binomial())
> summary(model1)
Call:
glm(formula = case ~ spontaneous + induced, family = binomial(),
data = infert)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6678 -0.8360 -0.5772 0.9030 1.9362
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.7079 0.2677 -6.380 1.78e-10 ***
spontaneous 1.1972 0.2116 5.657 1.54e-08 ***
induced 0.4181 0.2056 2.033 0.042 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 316.17 on 247 degrees of freedom
Residual deviance: 279.61 on 245 degrees of freedom
AIC: 285.61
Number of Fisher Scoring iterations: 4
> ## adjusted for other potential confounders:
> summary(model2 <- glm(case ~ age+parity+education+spontaneous+induced,
+ data = infert, family = binomial()))
Call:
glm(formula = case ~ age + parity + education + spontaneous +
induced, family = binomial(), data = infert)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.7603 -0.8162 -0.4956 0.8349 2.6536
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.14924 1.41220 -0.814 0.4158
age 0.03958 0.03120 1.269 0.2046
parity -0.82828 0.19649 -4.215 2.49e-05 ***
education6-11yrs -1.04424 0.79255 -1.318 0.1876
education12+ yrs -1.40321 0.83416 -1.682 0.0925 .
spontaneous 2.04591 0.31016 6.596 4.21e-11 ***
induced 1.28876 0.30146 4.275 1.91e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 316.17 on 247 degrees of freedom
Residual deviance: 257.80 on 241 degrees of freedom
AIC: 271.8
Number of Fisher Scoring iterations: 4
> ## Really should be analysed by conditional logistic regression
> ## which is in the survival package
>
>
>
> cleanEx()
> nameEx("iris")
> ### * iris
>
> flush(stderr()); flush(stdout())
>
> ### Name: iris
> ### Title: Edgar Anderson's Iris Data
> ### Aliases: iris iris3
> ### Keywords: datasets
>
> ### ** Examples
>
> dni3 <- dimnames(iris3)
> ii <- data.frame(matrix(aperm(iris3, c(1,3,2)), ncol = 4,
+ dimnames = list(NULL, sub(" L.",".Length",
+ sub(" W.",".Width", dni3[[2]])))),
+ Species = gl(3, 50, labels = sub("S", "s", sub("V", "v", dni3[[3]]))))
> all.equal(ii, iris) # TRUE
[1] TRUE
>
>
>
> cleanEx()
> nameEx("islands")
> ### * islands
>
> flush(stderr()); flush(stdout())
>
> ### Name: islands
> ### Title: Areas of the World's Major Landmasses
> ### Aliases: islands
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> dotchart(log(islands, 10),
+ main = "islands data: log10(area) (log10(sq. miles))")
> dotchart(log(islands[order(islands)], 10),
+ main = "islands data: log10(area) (log10(sq. miles))")
>
>
>
> cleanEx()
> nameEx("longley")
> ### * longley
>
> flush(stderr()); flush(stdout())
>
> ### Name: longley
> ### Title: Longley's Economic Regression Data
> ### Aliases: longley
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> ## give the data set in the form it is used in S-PLUS:
> longley.x <- data.matrix(longley[, 1:6])
> longley.y <- longley[, "Employed"]
> pairs(longley, main = "longley data")
> summary(fm1 <- lm(Employed ~ ., data = longley))
Call:
lm(formula = Employed ~ ., data = longley)
Residuals:
Min 1Q Median 3Q Max
-0.41011 -0.15767 -0.02816 0.10155 0.45539
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.482e+03 8.904e+02 -3.911 0.003560 **
GNP.deflator 1.506e-02 8.492e-02 0.177 0.863141
GNP -3.582e-02 3.349e-02 -1.070 0.312681
Unemployed -2.020e-02 4.884e-03 -4.136 0.002535 **
Armed.Forces -1.033e-02 2.143e-03 -4.822 0.000944 ***
Population -5.110e-02 2.261e-01 -0.226 0.826212
Year 1.829e+00 4.555e-01 4.016 0.003037 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.3049 on 9 degrees of freedom
Multiple R-squared: 0.9955, Adjusted R-squared: 0.9925
F-statistic: 330.3 on 6 and 9 DF, p-value: 4.984e-10
> opar <- par(mfrow = c(2, 2), oma = c(0, 0, 1.1, 0),
+ mar = c(4.1, 4.1, 2.1, 1.1))
> plot(fm1)
> par(opar)
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("morley")
> ### * morley
>
> flush(stderr()); flush(stdout())
>
> ### Name: morley
> ### Title: Michelson Speed of Light Data
> ### Aliases: morley
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> michelson <- transform(morley,
+ Expt = factor(Expt), Run = factor(Run))
> xtabs(~ Expt + Run, data = michelson) # 5 x 20 balanced (two-way)
Run
Expt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
> plot(Speed ~ Expt, data = michelson,
+ main = "Speed of Light Data", xlab = "Experiment No.")
> fm <- aov(Speed ~ Run + Expt, data = michelson)
> summary(fm)
Df Sum Sq Mean Sq F value Pr(>F)
Run 19 113344 5965 1.105 0.36321
Expt 4 94514 23629 4.378 0.00307 **
Residuals 76 410166 5397
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> fm0 <- update(fm, . ~ . - Run)
> anova(fm0, fm)
Analysis of Variance Table
Model 1: Speed ~ Expt
Model 2: Speed ~ Run + Expt
Res.Df RSS Df Sum of Sq F Pr(>F)
1 95 523510
2 76 410166 19 113344 1.1053 0.3632
>
>
>
> cleanEx()
> nameEx("mtcars")
> ### * mtcars
>
> flush(stderr()); flush(stdout())
>
> ### Name: mtcars
> ### Title: Motor Trend Car Road Tests
> ### Aliases: mtcars
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> pairs(mtcars, main = "mtcars data", gap = 1/4)
> coplot(mpg ~ disp | as.factor(cyl), data = mtcars,
+ panel = panel.smooth, rows = 1)
> ## possibly more meaningful, e.g., for summary() or bivariate plots:
> mtcars2 <- within(mtcars, {
+ vs <- factor(vs, labels = c("V", "S"))
+ am <- factor(am, labels = c("automatic", "manual"))
+ cyl <- ordered(cyl)
+ gear <- ordered(gear)
+ carb <- ordered(carb)
+ })
> summary(mtcars2)
mpg cyl disp hp drat
Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760
1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080
Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695
Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597
3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920
Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930
wt qsec vs am gear carb
Min. :1.513 Min. :14.50 V:18 automatic:19 3:15 1: 7
1st Qu.:2.581 1st Qu.:16.89 S:14 manual :13 4:12 2:10
Median :3.325 Median :17.71 5: 5 3: 3
Mean :3.217 Mean :17.85 4:10
3rd Qu.:3.610 3rd Qu.:18.90 6: 1
Max. :5.424 Max. :22.90 8: 1
>
>
>
> cleanEx()
> nameEx("nhtemp")
> ### * nhtemp
>
> flush(stderr()); flush(stdout())
>
> ### Name: nhtemp
> ### Title: Average Yearly Temperatures in New Haven
> ### Aliases: nhtemp
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> plot(nhtemp, main = "nhtemp data",
+ ylab = "Mean annual temperature in New Haven, CT (deg. F)")
>
>
>
> cleanEx()
> nameEx("nottem")
> ### * nottem
>
> flush(stderr()); flush(stdout())
>
> ### Name: nottem
> ### Title: Average Monthly Temperatures at Nottingham, 1920-1939
> ### Aliases: nottem
> ### Keywords: datasets
>
> ### ** Examples
>
>
>
> cleanEx()
> nameEx("npk")
> ### * npk
>
> flush(stderr()); flush(stdout())
>
> ### Name: npk
> ### Title: Classical N, P, K Factorial Experiment
> ### Aliases: npk
> ### Keywords: datasets
>
> ### ** Examples
>
>
> cleanEx()
> nameEx("occupationalStatus")
> ### * occupationalStatus
>
> flush(stderr()); flush(stdout())
>
> ### Name: occupationalStatus
> ### Title: Occupational Status of Fathers and their Sons
> ### Aliases: occupationalStatus
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
>
> plot(occupationalStatus)
>
> ## Fit a uniform association model separating diagonal effects
> Diag <- as.factor(diag(1:8))
> Rscore <- scale(as.numeric(row(occupationalStatus)), scale = FALSE)
> Cscore <- scale(as.numeric(col(occupationalStatus)), scale = FALSE)
> modUnif <- glm(Freq ~ origin + destination + Diag + Rscore:Cscore,
+ family = poisson, data = occupationalStatus)
>
> summary(modUnif)
Call:
glm(formula = Freq ~ origin + destination + Diag + Rscore:Cscore,
family = poisson, data = occupationalStatus)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.6521 -0.6267 0.0000 0.5913 2.0964
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.568592 0.183358 3.101 0.001929 **
origin2 0.431314 0.149415 2.887 0.003893 **
origin3 1.461862 0.131141 11.147 < 2e-16 ***
origin4 1.788731 0.126588 14.130 < 2e-16 ***
origin5 0.441011 0.144844 3.045 0.002329 **
origin6 2.491735 0.121219 20.556 < 2e-16 ***
origin7 1.127536 0.129032 8.738 < 2e-16 ***
origin8 0.796445 0.131863 6.040 1.54e-09 ***
destination2 0.873202 0.166902 5.232 1.68e-07 ***
destination3 1.813992 0.153861 11.790 < 2e-16 ***
destination4 2.082515 0.150887 13.802 < 2e-16 ***
destination5 1.366383 0.155590 8.782 < 2e-16 ***
destination6 2.816369 0.146054 19.283 < 2e-16 ***
destination7 1.903918 0.147810 12.881 < 2e-16 ***
destination8 1.398585 0.151658 9.222 < 2e-16 ***
Diag1 1.665495 0.237383 7.016 2.28e-12 ***
Diag2 0.959681 0.212122 4.524 6.06e-06 ***
Diag3 0.021750 0.156530 0.139 0.889490
Diag4 0.226399 0.124364 1.820 0.068689 .
Diag5 0.808646 0.229754 3.520 0.000432 ***
Diag6 0.132277 0.077191 1.714 0.086597 .
Diag7 0.506709 0.115936 4.371 1.24e-05 ***
Diag8 0.221880 0.134803 1.646 0.099771 .
Rscore:Cscore 0.136974 0.007489 18.289 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 4679.004 on 63 degrees of freedom
Residual deviance: 58.436 on 40 degrees of freedom
AIC: 428.78
Number of Fisher Scoring iterations: 4
> plot(modUnif) # 4 plots, with warning about h_ii ~= 1
Warning: not plotting observations with leverage one:
1, 10, 19, 28, 37, 46, 55, 64
Warning: not plotting observations with leverage one:
1, 10, 19, 28, 37, 46, 55, 64
>
>
>
> cleanEx()
> nameEx("precip")
> ### * precip
>
> flush(stderr()); flush(stdout())
>
> ### Name: precip
> ### Title: Annual Precipitation in US Cities
> ### Aliases: precip
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> dotchart(precip[order(precip)], main = "precip data")
> title(sub = "Average annual precipitation (in.)")
>
> ## Old ("wrong") version of dataset (just name change):
> precip.O <- local({
+ p <- precip; names(p)[names(p) == "Cincinnati"] <- "Cincinati" ; p })
> stopifnot(all(precip == precip.O),
+ match("Cincinnati", names(precip)) == 46,
+ identical(names(precip)[-46], names(precip.O)[-46]))
>
>
>
> cleanEx()
> nameEx("presidents")
> ### * presidents
>
> flush(stderr()); flush(stdout())
>
> ### Name: presidents
> ### Title: Quarterly Approval Ratings of US Presidents
> ### Aliases: presidents
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> plot(presidents, las = 1, ylab = "Approval rating (%)",
+ main = "presidents data")
>
>
>
> cleanEx()
> nameEx("pressure")
> ### * pressure
>
> flush(stderr()); flush(stdout())
>
> ### Name: pressure
> ### Title: Vapor Pressure of Mercury as a Function of Temperature
> ### Aliases: pressure
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> plot(pressure, xlab = "Temperature (deg C)",
+ ylab = "Pressure (mm of Hg)",
+ main = "pressure data: Vapor Pressure of Mercury")
> plot(pressure, xlab = "Temperature (deg C)", log = "y",
+ ylab = "Pressure (mm of Hg)",
+ main = "pressure data: Vapor Pressure of Mercury")
>
>
>
> cleanEx()
> nameEx("quakes")
> ### * quakes
>
> flush(stderr()); flush(stdout())
>
> ### Name: quakes
> ### Title: Locations of Earthquakes off Fiji
> ### Aliases: quakes
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> pairs(quakes, main = "Fiji Earthquakes, N = 1000", cex.main = 1.2, pch = ".")
>
>
>
> cleanEx()
> nameEx("randu")
> ### * randu
>
> flush(stderr()); flush(stdout())
>
> ### Name: randu
> ### Title: Random Numbers from Congruential Generator RANDU
> ### Aliases: randu
> ### Keywords: datasets
>
> ### ** Examples
>
>
>
>
> cleanEx()
> nameEx("sleep")
> ### * sleep
>
> flush(stderr()); flush(stdout())
>
> ### Name: sleep
> ### Title: Student's Sleep Data
> ### Aliases: sleep
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats)
> ## Student's paired t-test
> with(sleep,
+ t.test(extra[group == 1],
+ extra[group == 2], paired = TRUE))
Paired t-test
data: extra[group == 1] and extra[group == 2]
t = -4.0621, df = 9, p-value = 0.002833
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-2.4598858 -0.7001142
sample estimates:
mean of the differences
-1.58
>
> ## The sleep *prolongations*
> sleep1 <- with(sleep, extra[group == 2] - extra[group == 1])
> summary(sleep1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.00 1.05 1.30 1.58 1.70 4.60
> stripchart(sleep1, method = "stack", xlab = "hours",
+ main = "Sleep prolongation (n = 10)")
> boxplot(sleep1, horizontal = TRUE, add = TRUE,
+ at = .6, pars = list(boxwex = 0.5, staplewex = 0.25))
>
>
>
> cleanEx()
> nameEx("stackloss")
> ### * stackloss
>
> flush(stderr()); flush(stdout())
>
> ### Name: stackloss
> ### Title: Brownlee's Stack Loss Plant Data
> ### Aliases: stackloss stack.loss stack.x
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats)
> summary(lm.stack <- lm(stack.loss ~ stack.x))
Call:
lm(formula = stack.loss ~ stack.x)
Residuals:
Min 1Q Median 3Q Max
-7.2377 -1.7117 -0.4551 2.3614 5.6978
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -39.9197 11.8960 -3.356 0.00375 **
stack.xAir.Flow 0.7156 0.1349 5.307 5.8e-05 ***
stack.xWater.Temp 1.2953 0.3680 3.520 0.00263 **
stack.xAcid.Conc. -0.1521 0.1563 -0.973 0.34405
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.243 on 17 degrees of freedom
Multiple R-squared: 0.9136, Adjusted R-squared: 0.8983
F-statistic: 59.9 on 3 and 17 DF, p-value: 3.016e-09
>
>
>
> cleanEx()
> nameEx("sunspot.month")
> ### * sunspot.month
>
> flush(stderr()); flush(stdout())
>
> ### Name: sunspot.month
> ### Title: Monthly Sunspot Data, from 1749 to "Present"
> ### Aliases: sunspot.month
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> ## Compare the monthly series
> plot (sunspot.month,
+ main="sunspot.month & sunspots [package'datasets']", col=2)
> lines(sunspots) # -> faint differences where they overlap
>
> ## Now look at the difference :
> all(tsp(sunspots) [c(1,3)] ==
+ tsp(sunspot.month)[c(1,3)]) ## Start & Periodicity are the same
[1] TRUE
> n1 <- length(sunspots)
> table(eq <- sunspots == sunspot.month[1:n1]) #> 132 are different !
FALSE TRUE
143 2677
> i <- which(!eq)
> rug(time(eq)[i])
> s1 <- sunspots[i] ; s2 <- sunspot.month[i]
> cbind(i = i, time = time(sunspots)[i], sunspots = s1, ss.month = s2,
+ perc.diff = round(100*2*abs(s1-s2)/(s1+s2), 1))
i time sunspots ss.month perc.diff
[1,] 55 1753.500 22.2 22.0 0.9
[2,] 838 1818.750 31.7 31.6 0.3
[3,] 841 1819.000 32.5 32.8 0.9
[4,] 862 1820.750 9.0 8.9 1.1
[5,] 864 1820.917 9.7 9.1 6.4
[6,] 866 1821.083 4.3 4.2 2.4
[7,] 876 1821.917 0.0 0.2 200.0
[8,] 901 1824.000 21.6 21.7 0.5
[9,] 917 1825.333 15.4 15.5 0.6
[10,] 920 1825.583 25.4 25.7 1.2
[11,] 943 1827.500 42.9 42.3 1.4
[12,] 946 1827.750 57.2 56.1 1.9
[13,] 955 1828.500 54.3 54.2 0.2
[14,] 960 1828.917 46.6 46.9 0.6
[15,] 965 1829.333 67.5 67.4 0.1
[16,] 968 1829.583 78.3 77.6 0.9
[17,] 976 1830.250 107.1 106.3 0.7
[18,] 988 1831.250 54.6 54.5 0.2
[19,] 992 1831.583 54.9 55.0 0.2
[20,] 994 1831.750 46.2 46.3 0.2
[21,] 998 1832.083 55.5 55.6 0.2
[22,] 1003 1832.500 13.9 14.0 0.7
[23,] 1047 1836.167 98.1 98.2 0.1
[24,] 1061 1837.333 111.3 111.7 0.4
[25,] 1081 1839.000 107.6 105.6 1.9
[26,] 1087 1839.500 84.7 84.8 0.1
[27,] 1090 1839.750 90.8 90.9 0.1
[28,] 1092 1839.917 63.6 63.7 0.2
[29,] 1095 1840.167 55.5 67.8 20.0
[30,] 1102 1840.750 49.8 55.0 9.9
[31,] 1105 1841.000 24.0 24.1 0.4
[32,] 1108 1841.250 42.6 40.2 5.8
[33,] 1109 1841.333 67.4 67.5 0.1
[34,] 1113 1841.667 35.1 36.5 3.9
[35,] 1124 1842.583 26.5 26.6 0.4
[36,] 1125 1842.667 18.5 18.4 0.5
[37,] 1132 1843.250 8.8 9.5 7.7
[38,] 1145 1844.333 12.0 11.6 3.4
[39,] 1149 1844.667 6.9 7.0 1.4
[40,] 1156 1845.250 56.9 57.0 0.2
[41,] 1168 1846.250 69.2 69.3 0.1
[42,] 1185 1847.667 161.2 160.9 0.2
[43,] 1191 1848.167 108.9 108.6 0.3
[44,] 1194 1848.417 123.8 129.0 4.1
[45,] 1196 1848.583 132.5 132.6 0.1
[46,] 1200 1848.917 159.9 159.5 0.3
[47,] 1201 1849.000 156.7 157.0 0.2
[48,] 1202 1849.083 131.7 131.8 0.1
[49,] 1203 1849.167 96.5 96.2 0.3
[50,] 1206 1849.417 81.2 81.1 0.1
[51,] 1208 1849.583 61.3 67.7 9.9
[52,] 1211 1849.833 99.7 99.0 0.7
[53,] 1224 1850.917 60.0 61.0 1.7
[54,] 1235 1851.833 50.9 51.0 0.2
[55,] 1238 1852.083 67.5 66.4 1.6
[56,] 1243 1852.500 42.0 42.1 0.2
[57,] 1256 1853.583 50.4 50.5 0.2
[58,] 1258 1853.750 42.3 42.4 0.2
[59,] 1264 1854.250 26.4 26.5 0.4
[60,] 1270 1854.750 12.7 12.6 0.8
[61,] 1272 1854.917 21.4 21.6 0.9
[62,] 1282 1855.750 9.7 9.6 1.0
[63,] 1283 1855.833 4.3 4.2 2.4
[64,] 1290 1856.417 5.0 5.2 3.9
[65,] 1301 1857.333 29.2 28.5 2.4
[66,] 1333 1860.000 81.5 82.4 1.1
[67,] 1334 1860.083 88.0 88.3 0.3
[68,] 1346 1861.083 77.8 77.7 0.1
[69,] 1350 1861.417 87.8 88.1 0.3
[70,] 1366 1862.750 42.0 41.9 0.2
[71,] 1407 1866.167 24.6 24.5 0.4
[72,] 1424 1867.583 4.9 4.8 2.1
[73,] 1427 1867.833 9.3 9.6 3.2
[74,] 1429 1868.000 15.6 15.5 0.6
[75,] 1430 1868.083 15.8 15.7 0.6
[76,] 1435 1868.500 28.6 29.0 1.4
[77,] 1437 1868.667 43.8 47.2 7.5
[78,] 1438 1868.750 61.7 61.6 0.2
[79,] 1442 1869.083 59.3 59.9 1.0
[80,] 1445 1869.333 104.0 103.9 0.1
[81,] 1450 1869.750 59.4 59.3 0.2
[82,] 1451 1869.833 77.4 78.1 0.9
[83,] 1452 1869.917 104.3 104.4 0.1
[84,] 1455 1870.167 159.4 157.5 1.2
[85,] 1472 1871.583 110.0 110.1 0.1
[86,] 1476 1871.917 90.3 90.4 0.1
[87,] 1486 1872.750 103.5 102.6 0.9
[88,] 1497 1873.667 47.5 47.1 0.8
[89,] 1498 1873.750 47.4 47.1 0.6
[90,] 1514 1875.083 22.2 21.5 3.2
[91,] 1527 1876.167 31.2 30.6 1.9
[92,] 1539 1877.167 11.7 11.9 1.7
[93,] 1541 1877.333 21.2 21.6 1.9
[94,] 1542 1877.417 13.4 14.2 5.8
[95,] 1543 1877.500 5.9 6.0 1.7
[96,] 1545 1877.667 16.4 16.9 3.0
[97,] 1547 1877.833 14.5 14.2 2.1
[98,] 1548 1877.917 2.3 2.2 4.4
[99,] 1550 1878.083 6.0 6.6 9.5
[100,] 1553 1878.333 5.8 5.9 1.7
[101,] 1561 1879.000 0.8 1.0 22.2
[102,] 1571 1879.833 12.9 13.1 1.5
[103,] 1572 1879.917 7.2 7.3 1.4
[104,] 1574 1880.083 27.5 27.2 1.1
[105,] 1575 1880.167 19.5 19.3 1.0
[106,] 1576 1880.250 19.3 19.5 1.0
[107,] 1588 1881.250 51.7 51.6 0.2
[108,] 1592 1881.583 58.0 58.4 0.7
[109,] 1594 1881.750 64.0 64.4 0.6
[110,] 1598 1882.083 69.3 69.5 0.3
[111,] 1599 1882.167 67.5 66.8 1.0
[112,] 1613 1883.333 32.1 31.5 1.9
[113,] 1614 1883.417 76.5 76.3 0.3
[114,] 1623 1884.167 86.8 87.5 0.8
[115,] 1643 1885.833 33.3 30.9 7.5
[116,] 1656 1886.917 12.4 13.0 4.7
[117,] 1663 1887.500 23.3 23.4 0.4
[118,] 1683 1889.167 7.0 6.7 4.4
[119,] 1687 1889.500 9.7 9.4 3.1
[120,] 1712 1891.583 33.2 33.0 0.6
[121,] 1716 1891.917 32.3 32.5 0.6
[122,] 1723 1892.500 76.8 76.5 0.4
[123,] 1734 1893.417 88.2 89.9 1.9
[124,] 1735 1893.500 88.8 88.6 0.2
[125,] 1738 1893.750 79.7 80.0 0.4
[126,] 1774 1896.750 28.4 28.7 1.1
[127,] 1837 1902.000 5.2 5.5 5.6
[128,] 2126 1926.083 70.0 69.9 0.1
[129,] 2151 1928.167 85.4 85.5 0.1
[130,] 2153 1928.333 76.9 77.0 0.1
[131,] 2162 1929.083 64.1 62.8 2.0
[132,] 2174 1930.083 49.2 49.9 1.4
[133,] 2233 1935.000 18.9 18.6 1.6
[134,] 2315 1941.833 38.3 38.4 0.3
[135,] 2329 1943.000 12.4 12.5 0.8
[136,] 2378 1947.083 113.4 133.4 16.2
[137,] 2427 1951.167 59.9 55.9 6.9
[138,] 2498 1957.083 130.2 130.3 0.1
[139,] 2552 1961.583 55.9 55.8 0.2
[140,] 2556 1961.917 40.0 39.9 0.3
[141,] 2594 1965.083 14.2 14.3 0.7
[142,] 2790 1981.417 90.0 90.9 1.0
[143,] 2819 1983.833 33.3 33.4 0.3
>
> ## How to recreate the "old" sunspot.month (R <= 3.0.3):
> .sunspot.diff <- cbind(
+ i = c(1202L, 1256L, 1258L, 1301L, 1407L, 1429L, 1452L, 1455L,
+ 1663L, 2151L, 2329L, 2498L, 2594L, 2694L, 2819L),
+ res10 = c(1L, 1L, 1L, -1L, -1L, -1L, 1L, -1L,
+ 1L, 1L, 1L, 1L, 1L, 20L, 1L))
> ssm0 <- sunspot.month[1:2988]
> with(as.data.frame(.sunspot.diff), ssm0[i] <<- ssm0[i] - res10/10)
> sunspot.month.0 <- ts(ssm0, start = 1749, frequency = 12)
>
>
>
> cleanEx()
> nameEx("sunspot.year")
> ### * sunspot.year
>
> flush(stderr()); flush(stdout())
>
> ### Name: sunspot.year
> ### Title: Yearly Sunspot Data, 1700-1988
> ### Aliases: sunspot.year
> ### Keywords: datasets
>
> ### ** Examples
>
> utils::str(sm <- sunspots)# the monthly version we keep unchanged
Time-Series [1:2820] from 1749 to 1984: 58 62.6 70 55.7 85 83.5 94.8 66.3 75.9 75.5 ...
> utils::str(sy <- sunspot.year)
Time-Series [1:289] from 1700 to 1988: 5 11 16 23 36 58 29 20 10 8 ...
> ## The common time interval
> (t1 <- c(max(start(sm), start(sy)), 1)) # Jan 1749
[1] 1749 1
> (t2 <- c(min( end(sm)[1],end(sy)[1]), 12)) # Dec 1983
[1] 1983 12
> s.m <- window(sm, start=t1, end=t2)
> s.y <- window(sy, start=t1, end=t2[1]) # {irrelevant warning}
> stopifnot(length(s.y) * 12 == length(s.m),
+ ## The yearly series *is* close to the averages of the monthly one:
+ all.equal(s.y, aggregate(s.m, FUN = mean), tol = 0.0020))
> ## NOTE: Strangely, correctly weighting the number of days per month
> ## (using 28.25 for February) is *not* closer than the simple mean:
> ndays <- c(31, 28.25, rep(c(31,30, 31,30, 31), 2))
> all.equal(s.y, aggregate(s.m, FUN = mean)) # 0.0013
[1] "Mean relative difference: 0.001312539"
> all.equal(s.y, aggregate(s.m, FUN = weighted.mean, w = ndays)) # 0.0017
[1] "Mean relative difference: 0.001692215"
>
>
>
> cleanEx()
> nameEx("sunspots")
> ### * sunspots
>
> flush(stderr()); flush(stdout())
>
> ### Name: sunspots
> ### Title: Monthly Sunspot Numbers, 1749-1983
> ### Aliases: sunspots
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> plot(sunspots, main = "sunspots data", xlab = "Year",
+ ylab = "Monthly sunspot numbers")
>
>
>
> cleanEx()
> nameEx("swiss")
> ### * swiss
>
> flush(stderr()); flush(stdout())
>
> ### Name: swiss
> ### Title: Swiss Fertility and Socioeconomic Indicators (1888) Data
> ### Aliases: swiss
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> pairs(swiss, panel = panel.smooth, main = "swiss data",
+ col = 3 + (swiss$Catholic > 50))
> summary(lm(Fertility ~ . , data = swiss))
Call:
lm(formula = Fertility ~ ., data = swiss)
Residuals:
Min 1Q Median 3Q Max
-15.2743 -5.2617 0.5032 4.1198 15.3213
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 66.91518 10.70604 6.250 1.91e-07 ***
Agriculture -0.17211 0.07030 -2.448 0.01873 *
Examination -0.25801 0.25388 -1.016 0.31546
Education -0.87094 0.18303 -4.758 2.43e-05 ***
Catholic 0.10412 0.03526 2.953 0.00519 **
Infant.Mortality 1.07705 0.38172 2.822 0.00734 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7.165 on 41 degrees of freedom
Multiple R-squared: 0.7067, Adjusted R-squared: 0.671
F-statistic: 19.76 on 5 and 41 DF, p-value: 5.594e-10
>
>
>
> cleanEx()
> nameEx("trees")
> ### * trees
>
> flush(stderr()); flush(stdout())
>
> ### Name: trees
> ### Title: Diameter, Height and Volume for Black Cherry Trees
> ### Aliases: trees
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> pairs(trees, panel = panel.smooth, main = "trees data")
> plot(Volume ~ Girth, data = trees, log = "xy")
> coplot(log(Volume) ~ log(Girth) | Height, data = trees,
+ panel = panel.smooth)
> summary(fm1 <- lm(log(Volume) ~ log(Girth), data = trees))
Call:
lm(formula = log(Volume) ~ log(Girth), data = trees)
Residuals:
Min 1Q Median 3Q Max
-0.205999 -0.068702 0.001011 0.072585 0.247963
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.35332 0.23066 -10.20 4.18e-11 ***
log(Girth) 2.19997 0.08983 24.49 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.115 on 29 degrees of freedom
Multiple R-squared: 0.9539, Adjusted R-squared: 0.9523
F-statistic: 599.7 on 1 and 29 DF, p-value: < 2.2e-16
> summary(fm2 <- update(fm1, ~ . + log(Height), data = trees))
Call:
lm(formula = log(Volume) ~ log(Girth) + log(Height), data = trees)
Residuals:
Min 1Q Median 3Q Max
-0.168561 -0.048488 0.002431 0.063637 0.129223
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -6.63162 0.79979 -8.292 5.06e-09 ***
log(Girth) 1.98265 0.07501 26.432 < 2e-16 ***
log(Height) 1.11712 0.20444 5.464 7.81e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.08139 on 28 degrees of freedom
Multiple R-squared: 0.9777, Adjusted R-squared: 0.9761
F-statistic: 613.2 on 2 and 28 DF, p-value: < 2.2e-16
> step(fm2)
Start: AIC=-152.69
log(Volume) ~ log(Girth) + log(Height)
Df Sum of Sq RSS AIC
<none> 0.1855 -152.685
- log(Height) 1 0.1978 0.3832 -132.185
- log(Girth) 1 4.6275 4.8130 -53.743
Call:
lm(formula = log(Volume) ~ log(Girth) + log(Height), data = trees)
Coefficients:
(Intercept) log(Girth) log(Height)
-6.632 1.983 1.117
> ## i.e., Volume ~= c * Height * Girth^2 seems reasonable
>
>
>
> cleanEx()
> nameEx("uspop")
> ### * uspop
>
> flush(stderr()); flush(stdout())
>
> ### Name: uspop
> ### Title: Populations Recorded by the US Census
> ### Aliases: uspop
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> plot(uspop, log = "y", main = "uspop data", xlab = "Year",
+ ylab = "U.S. Population (millions)")
>
>
>
> cleanEx()
> nameEx("volcano")
> ### * volcano
>
> flush(stderr()); flush(stdout())
>
> ### Name: volcano
> ### Title: Topographic Information on Auckland's Maunga Whau Volcano
> ### Aliases: volcano
> ### Keywords: datasets
>
> ### ** Examples
>
> require(grDevices); require(graphics)
> filled.contour(volcano, color.palette = terrain.colors, asp = 1)
> title(main = "volcano data: filled contour map")
>
>
>
> cleanEx()
> nameEx("warpbreaks")
> ### * warpbreaks
>
> flush(stderr()); flush(stdout())
>
> ### Name: warpbreaks
> ### Title: The Number of Breaks in Yarn during Weaving
> ### Aliases: warpbreaks
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> summary(warpbreaks)
breaks wool tension
Min. :10.00 A:27 L:18
1st Qu.:18.25 B:27 M:18
Median :26.00 H:18
Mean :28.15
3rd Qu.:34.00
Max. :70.00
> opar <- par(mfrow = c(1, 2), oma = c(0, 0, 1.1, 0))
> plot(breaks ~ tension, data = warpbreaks, col = "lightgray",
+ varwidth = TRUE, subset = wool == "A", main = "Wool A")
> plot(breaks ~ tension, data = warpbreaks, col = "lightgray",
+ varwidth = TRUE, subset = wool == "B", main = "Wool B")
> mtext("warpbreaks data", side = 3, outer = TRUE)
> par(opar)
> summary(fm1 <- lm(breaks ~ wool*tension, data = warpbreaks))
Call:
lm(formula = breaks ~ wool * tension, data = warpbreaks)
Residuals:
Min 1Q Median 3Q Max
-19.5556 -6.8889 -0.6667 7.1944 25.4444
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 44.556 3.647 12.218 2.43e-16 ***
woolB -16.333 5.157 -3.167 0.002677 **
tensionM -20.556 5.157 -3.986 0.000228 ***
tensionH -20.000 5.157 -3.878 0.000320 ***
woolB:tensionM 21.111 7.294 2.895 0.005698 **
woolB:tensionH 10.556 7.294 1.447 0.154327
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 10.94 on 48 degrees of freedom
Multiple R-squared: 0.3778, Adjusted R-squared: 0.3129
F-statistic: 5.828 on 5 and 48 DF, p-value: 0.0002772
> anova(fm1)
Analysis of Variance Table
Response: breaks
Df Sum Sq Mean Sq F value Pr(>F)
wool 1 450.7 450.67 3.7653 0.0582130 .
tension 2 2034.3 1017.13 8.4980 0.0006926 ***
wool:tension 2 1002.8 501.39 4.1891 0.0210442 *
Residuals 48 5745.1 119.69
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
>
>
> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
> cleanEx()
> nameEx("women")
> ### * women
>
> flush(stderr()); flush(stdout())
>
> ### Name: women
> ### Title: Average Heights and Weights for American Women
> ### Aliases: women
> ### Keywords: datasets
>
> ### ** Examples
>
> require(graphics)
> plot(women, xlab = "Height (in)", ylab = "Weight (lb)",
+ main = "women data: American women aged 30-39")
>
>
>
> cleanEx()
> nameEx("zCO2")
> ### * zCO2
>
> flush(stderr()); flush(stdout())
>
> ### Name: CO2
> ### Title: Carbon Dioxide Uptake in Grass Plants
> ### Aliases: CO2
> ### Keywords: datasets
>
> ### ** Examples
>
> require(stats); require(graphics)
> ## Don't show:
> options(show.nls.convergence=FALSE)
> ## End(Don't show)
> coplot(uptake ~ conc | Plant, data = CO2, show.given = FALSE, type = "b")
> ## fit the data for the first plant
> fm1 <- nls(uptake ~ SSasymp(conc, Asym, lrc, c0),
+ data = CO2, subset = Plant == "Qn1")
> summary(fm1)
Formula: uptake ~ SSasymp(conc, Asym, lrc, c0)
Parameters:
Estimate Std. Error t value Pr(>|t|)
Asym 38.1398 0.9164 41.620 1.99e-06 ***
lrc -34.2766 18.9661 -1.807 0.145
c0 -4.3806 0.2042 -21.457 2.79e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.663 on 4 degrees of freedom
> ## fit each plant separately
> fmlist <- list()
> for (pp in levels(CO2$Plant)) {
+ fmlist[[pp]] <- nls(uptake ~ SSasymp(conc, Asym, lrc, c0),
+ data = CO2, subset = Plant == pp)
+ }
> ## check the coefficients by plant
> print(sapply(fmlist, coef), digits = 3)
Qn1 Qn2 Qn3 Qc1 Qc3 Qc2 Mn3 Mn2 Mn1 Mc2 Mc3
Asym 38.14 42.87 44.23 36.43 40.68 39.82 28.48 32.13 34.08 13.56 18.54
lrc -34.28 -29.66 -37.63 -9.90 -11.54 -51.53 -17.37 -29.04 -8.81 -1.98 -136.11
c0 -4.38 -4.67 -4.49 -4.86 -4.95 -4.46 -4.59 -4.47 -5.06 -4.56 -3.47
Mc1
Asym 21.79
lrc 2.45
c0 -5.14
>
>
>
> ### * <FOOTER>
> ###
> cleanEx()
> options(digits = 7L)
> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
Time elapsed: 1.974 0.053 2.037 0 0
> grDevices::dev.off()
null device
1
> ###
> ### Local variables: ***
> ### mode: outline-minor ***
> ### outline-regexp: "\\(> \\)?### [*]+" ***
> ### End: ***
> quit('no')