
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.

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.

> ## tests of the simulate.lm method, added Feb 2009
> 
> options(digits = 5)
> 
> ## cases should be named
> hills <- readRDS("hills.rds") # copied from package MASS
> fit1 <- lm(time ~ dist, data = hills)
> set.seed(1)
> simulate(fit1, nsim = 3)
                    sim_1    sim_2    sim_3
Greenmantle        3.4841   7.7039  25.4746
Carnethy          48.8068  37.2737  30.9745
Craig Dunain      28.4665  43.9584  57.3295
Ben Rha           89.4727  79.5895  38.9971
Ben Lomond        68.3785  77.0326  36.7858
Goatfell          45.4299  58.5197  67.6189
Bens of Jura     138.1736 123.3906 119.6004
Cairnpapple       59.8758  59.0504  45.1641
Scolty            48.3017  47.9202  38.2951
Traprain          39.0478  31.3974  33.3777
Lairig Ghru      258.5807 214.2935 217.0639
Dollar            44.5912  44.0871  34.1140
Lomonds           61.9013  89.6352  97.8082
Cairn Table        0.9461  42.9001  14.7382
Eildon Two        55.0951  50.2295  44.4990
Cairngorm         77.5672  86.4083  85.1081
Seven Hills      111.4626  99.5722 133.0006
Knock Hill        38.9856  26.9579  14.0804
Black Hill        49.0344  10.1091  40.0303
Creag Beag        52.8285  69.5738  46.3069
Kildcon Hill      38.4895  59.6709   9.3243
Meall Ant-Suidhe  39.9240  16.9877  48.4197
Half Ben Nevis    46.6300  24.3056  68.2987
Cow Hill         -27.8787  23.1894  25.7935
N Berwick Law     32.5197  17.4555  51.8170
Creag Dubh        27.3610  76.4071  39.6261
Burnswark         42.0330  44.3590  19.6667
Largo Law          7.4616  50.5758  25.3716
Criffel           39.7654  49.8660  24.8692
Acmony            45.1519  21.9790  27.3645
Ben Nevis        105.5773  82.2313  66.0840
Knockfarrel       43.0908   9.1228  45.9825
Two Breweries    152.8438 174.3537 126.9294
Cockleroi         31.5726  35.7046  35.7999
Moffat Chase     134.2882 205.1244 148.7057
> 
> ## and weights should be taken into account
> fit2 <- lm(time ~ -1 + dist + climb, hills[-18, ], weight = 1/dist^2)
> coef(summary(fit2))
       Estimate Std. Error t value   Pr(>|t|)
dist  4.8999847  0.4737032 10.3440 9.8468e-12
climb 0.0084718  0.0016869  5.0221 1.8636e-05
> set.seed(1); ( ys <- simulate(fit2, nsim = 3) )
                   sim_1   sim_2   sim_3
Greenmantle       15.754  13.355  18.247
Carnethy          51.988  47.396  67.247
Craig Dunain      30.614  34.000  40.672
Ben Rha           58.825  42.959  36.719
Ben Lomond        68.579  76.460  71.455
Goatfell          55.088  71.287  53.926
Bens of Jura     151.910 138.573 116.292
Cairnpapple       41.841  34.234  38.413
Scolty            34.958  35.733  28.443
Traprain          32.564  39.177  34.915
Lairig Ghru      209.113 130.333 157.652
Dollar            43.936  36.921  37.675
Lomonds           57.642  69.616  58.280
Cairn Table       16.646  39.532  32.599
Eildon Two        41.230  34.111  41.536
Cairngorm         73.841  85.681  54.935
Seven Hills       86.948  94.364  97.870
Black Hill        35.952  27.000  32.437
Creag Beag        37.808  34.432  39.509
Kildcon Hill      19.520  12.910  16.075
Meall Ant-Suidhe  33.970  36.271  31.514
Half Ben Nevis    54.038  63.231  50.087
Cow Hill          17.615  16.486  16.037
N Berwick Law     12.152  15.778  24.416
Creag Dubh        39.714  39.457  42.478
Burnswark         35.747  35.141  41.549
Largo Law         31.552  47.902  42.693
Criffel           34.452  46.350  51.317
Acmony            25.679  33.145  20.575
Ben Nevis         91.620  86.634  78.946
Knockfarrel       44.906  28.781  25.088
Two Breweries    129.888 136.598 121.358
Cockleroi         31.482  18.866  25.682
Moffat Chase     138.983 177.836 141.436
> for(i in seq_len(3))
+     print(coef(summary(update(fit2, ys[, i] ~ .))))
       Estimate Std. Error t value   Pr(>|t|)
dist  4.8759333  0.4295826 11.3504 9.3646e-13
climb 0.0091824  0.0015298  6.0023 1.0781e-06
       Estimate Std. Error t value   Pr(>|t|)
dist  4.6969341  0.4406227   10.66 4.6417e-12
climb 0.0099795  0.0015691    6.36 3.8442e-07
       Estimate Std. Error t value   Pr(>|t|)
dist  4.8215499   0.420077 11.4778 7.0162e-13
climb 0.0090388   0.001496  6.0422 9.6065e-07
> ## should be identical to glm(*, gaussian):
> fit2. <- glm(time ~ -1 + dist + climb, family=gaussian, data=hills[-18, ],
+              weight = 1/dist^2)
> set.seed(1); ys. <- simulate(fit2., nsim = 3)
> stopifnot(all.equal(ys, ys.))
> 
> ## Poisson fit
> load("anorexia.rda") # copied from package MASS
> fit3 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
+             family = gaussian, data = anorexia)
> coef(summary(fit3))
            Estimate Std. Error t value   Pr(>|t|)
(Intercept) 49.77111   13.39096  3.7168 0.00041011
Prewt       -0.56554    0.16118 -3.5087 0.00080343
TreatCont   -4.09707    1.89349 -2.1638 0.03399931
TreatFT      4.56306    2.13334  2.1389 0.03603508
> set.seed(1)
> simulate(fit3, nsim = 8)
     sim_1   sim_2   sim_3   sim_4   sim_5   sim_6   sim_7  sim_8
1   76.364  84.997  72.948  78.581  83.762  62.645  70.046 87.655
2   85.796  77.997  79.276  75.769  91.529  93.684  84.340 95.638
3   79.726  76.809 100.122  90.039  82.835  81.123  89.696 75.979
4   88.956  79.858  77.946  77.512  80.451  74.824  76.441 76.082
5   81.905  76.512  70.629  67.511  81.309  78.424  85.830 87.696
6   78.312  84.045  72.589  84.052  74.084  88.309  83.858 76.262
7   87.004  84.121  86.744  79.204  96.013  88.336  79.083 65.958
8   83.454  74.188  78.173  75.923  79.240  82.265  82.812 71.771
9   84.710  76.723  78.472  72.621  86.034  76.696  77.664 73.942
10  77.605  78.792  73.251  92.318  86.401  70.223  92.105 80.067
11  89.938  87.609  69.008  77.078  79.035  76.676  79.261 76.571
12  86.931  73.579  76.708  73.007  82.077  86.150  90.162 85.826
13  76.661  85.140  87.974  82.372  87.232  75.252  82.427 78.048
14  64.151  81.929  75.270  81.442  72.297  79.125  58.615 82.216
15  84.154  83.722  66.643  69.424  90.060  68.155  66.771 73.749
16  78.944  77.135  92.302  59.098  76.581  79.200  76.298 87.563
17  82.577  85.272  85.657  78.221  94.233  83.589  84.343 77.545
18  89.624  84.902  81.372  87.019  93.590  82.020  66.690 85.066
19  87.943  78.426  89.599  81.795  82.791  81.068  88.923 76.038
20  84.445  88.729  86.486  79.615  84.259  92.607  76.083 81.752
21  89.233  90.918  78.499  86.734  75.671  88.142  77.567 82.487
22  87.800  87.229  97.737  74.063  84.597  90.098  71.487 70.588
23  80.777  91.330  78.478  87.911  87.540  73.815  70.112 79.251
24  65.463  83.242  69.404  79.307  80.036  80.492  79.738 87.581
25  81.411  68.177  76.078  82.021  73.917  85.144  80.640 81.841
26  83.949  80.341  85.789  91.557  79.765  83.947  69.702 85.341
27  83.658  76.200 100.851  86.305  84.495  69.886  77.737 76.425
28  76.394  83.353  87.395  80.525  94.118  89.063  90.396 94.816
29  81.843  80.851  88.369  93.295  81.802  71.887  82.018 85.732
30  88.574  85.951  85.119  71.700  84.813  79.997 100.768 82.505
31  93.966  78.128  82.154  80.683  75.454  93.724  93.178 95.943
32  87.591  89.411  88.065  86.524  91.757  92.604  92.463 82.937
33  93.707  86.434  96.498  89.842 100.128  98.619  91.036 93.118
34  82.545  95.253  97.402  90.041  93.367  85.060  84.870 91.865
35  75.353  89.964  92.132  85.913  90.648  84.194  80.037 89.165
36  81.849  91.097  93.174  87.587  71.698  78.295  89.128 82.603
37  83.949  89.381  78.108  86.214  90.064  97.816  97.030 83.781
38  88.111 100.264  95.391  86.797  91.708  88.839  96.085 91.003
39  92.769  80.657  86.627  89.946  82.627  80.103  79.418 88.676
40  88.333  79.786  72.769  91.006  84.197  89.045  71.711 83.137
41  79.035  90.178  83.819  63.414  74.154  87.681  79.418 89.384
42  82.934  80.161  83.594  88.698  89.442  97.930  87.778 84.242
43  90.825  84.515  96.182  88.577  83.679  81.754  95.389 81.075
44  89.716  83.090  80.486  82.864  74.882  83.104  76.630 89.581
45  83.067  85.640  84.871  94.510  85.309  84.969  90.416 72.509
46  81.416  84.405  79.890  83.637  95.874  83.731  87.982 89.088
47  89.853  90.757  86.073  85.324  84.976  84.750  95.640 90.776
48  88.370  81.770  85.813  88.991  88.121  80.944  82.813 81.438
49  83.831  81.084  79.509  96.615  91.220  94.676  82.122 76.819
50  94.065  97.289  93.711  89.801  87.947  83.049  79.914 85.160
51  88.740  84.464  77.532  83.016  83.503  83.253  82.351 96.777
52  80.127  83.145  77.085  76.100  80.701  88.951  81.871 79.209
53  88.863  85.784  96.540  84.173  91.644  94.332 102.886 70.212
54  76.995  89.849  77.787  78.317  77.455  79.488 101.948 90.544
55  97.743  87.230  90.618  85.936  89.461  84.197  86.580 84.245
56 104.562  90.479  88.083  93.494  88.722  94.396  83.459 87.177
57  87.962  85.768  93.382  84.580  74.720  97.627  76.757 82.044
58  84.412  89.435 103.483 110.184  81.867  89.945  95.289 91.540
59  94.153  90.597 101.249  91.266  96.569  80.198  82.567 95.071
60  91.060  87.893  89.693  99.889  90.667 103.929 107.945 87.902
61 105.676  92.626  72.970  72.943  94.523  98.931  82.737 84.683
62  87.470  77.149 105.173  92.915 100.915  82.787  88.520 95.397
63 100.074  97.400  99.915  86.075 105.545  94.806 121.849 93.533
64  86.419  75.502  90.001  92.642  90.950  73.946  78.485 85.108
65  84.122  87.208  89.215  92.087  91.960  93.284  91.455 84.941
66  91.104  86.100  93.346  86.942  88.441 101.037  82.062 96.070
67  77.408  85.453  88.856  99.244 101.014  78.578  92.429 83.066
68  98.275  87.651  90.984  83.155  92.209  82.608  81.955 93.975
69  91.681  77.253  87.819  86.560  82.422  86.137  91.151 96.234
70 108.553 101.603  83.831  86.407  92.306  88.639  91.321 90.129
71  95.016  80.079  98.591  87.035  78.307  77.509  83.441 97.618
72  87.308  89.028 102.868  98.858  90.900  95.758  92.341 99.148
> 
> ## two-column binomial fit
> ldose <- rep(0:5, 2)
> numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16)
> sex <- factor(rep(c("M", "F"), c(6, 6)))
> SF <- cbind(numdead, numalive = 20 - numdead)
> fit4 <- glm(SF ~ sex + ldose - 1, family = binomial)
> coef(summary(fit4))
      Estimate Std. Error z value   Pr(>|z|)
sexF   -3.4732    0.46852 -7.4130 1.2344e-13
sexM   -2.3724    0.38551 -6.1539 7.5579e-10
ldose   1.0642    0.13108  8.1190 4.7015e-16
> set.seed(1)
> ( ys <- simulate(fit4, nsim = 3) )
   sim_1.numdead sim_1.numalive sim_2.numdead sim_2.numalive sim_3.numdead
1              1             19             2             18             1
2              4             16             4             16             4
3              9             11            10             10             4
4             11              9            14              6            15
5             19              1            17              3            16
6             18              2            16              4            20
7              2             18             0             20             0
8              2             18             3             17             2
9              5             15             7             13             4
10             5             15             7             13             7
11            15              5            13              7            12
12            19              1            19              1            17
   sim_3.numalive
1              19
2              16
3              16
4               5
5               4
6               0
7              20
8              18
9              16
10             13
11              8
12              3
> for(i in seq_len(3))
+     print(coef(summary(update(fit4, ys[, i] ~ .))))
      Estimate Std. Error z value   Pr(>|z|)
sexF   -3.3079    0.45218 -7.3154 2.5656e-13
sexM   -2.5067    0.39240 -6.3880 1.6812e-10
ldose   1.0482    0.12869  8.1454 3.7800e-16
      Estimate Std. Error z value   Pr(>|z|)
sexF  -2.84478    0.40661 -6.9963 2.6289e-12
sexM  -2.11845    0.35818 -5.9145 3.3286e-09
ldose  0.90935    0.11578  7.8541 4.0273e-15
      Estimate Std. Error z value   Pr(>|z|)
sexF   -3.9838    0.52156 -7.6384 2.1996e-14
sexM   -2.8717    0.43047 -6.6712 2.5376e-11
ldose   1.1487    0.14102  8.1459 3.7655e-16
> 
> ## same via proportions
> fit5 <- glm(numdead/20 ~ sex + ldose - 1, family = binomial,
+             weights = rep(20, 12))
> set.seed(1)
> ( ys <- simulate(fit5, nsim = 3) )
   sim_1 sim_2 sim_3
1   0.05  0.10  0.05
2   0.20  0.20  0.20
3   0.45  0.50  0.20
4   0.55  0.70  0.75
5   0.95  0.85  0.80
6   0.90  0.80  1.00
7   0.10  0.00  0.00
8   0.10  0.15  0.10
9   0.25  0.35  0.20
10  0.25  0.35  0.35
11  0.75  0.65  0.60
12  0.95  0.95  0.85
> for(i in seq_len(3))
+     print(coef(summary(update(fit5, ys[, i] ~ .))))
      Estimate Std. Error z value   Pr(>|z|)
sexF   -3.3079    0.45218 -7.3154 2.5656e-13
sexM   -2.5067    0.39240 -6.3880 1.6812e-10
ldose   1.0482    0.12869  8.1454 3.7800e-16
      Estimate Std. Error z value   Pr(>|z|)
sexF  -2.84478    0.40661 -6.9963 2.6289e-12
sexM  -2.11845    0.35818 -5.9145 3.3286e-09
ldose  0.90935    0.11578  7.8541 4.0273e-15
      Estimate Std. Error z value   Pr(>|z|)
sexF   -3.9838    0.52156 -7.6384 2.1996e-14
sexM   -2.8717    0.43047 -6.6712 2.5376e-11
ldose   1.1487    0.14102  8.1459 3.7655e-16
> 
> 
> ## factor binomial fit
> load("birthwt.rda") # copied from package MASS
> bwt <- with(birthwt, {
+     race <- factor(race, labels = c("white", "black", "other"))
+     table(ptl)
+     ptd <- factor(ptl > 0)
+     table(ftv)
+     ftv <- factor(ftv)
+     levels(ftv)[-(1:2)] <- "2+"
+     data.frame(low = factor(low), age, lwt, race,
+                smoke = (smoke > 0), ptd, ht = (ht > 0), ui = (ui > 0), ftv)
+ })
> fit6 <- glm(low ~ ., family = binomial, data = bwt)
> coef(summary(fit6))
             Estimate Std. Error  z value  Pr(>|z|)
(Intercept)  0.823019  1.2447143  0.66121 0.5084769
age         -0.037234  0.0387024 -0.96207 0.3360159
lwt         -0.015653  0.0070804 -2.21075 0.0270532
raceblack    1.192413  0.5359646  2.22480 0.0260948
raceother    0.740685  0.4617443  1.60410 0.1086916
smokeTRUE    0.755528  0.4250166  1.77764 0.0754623
ptdTRUE      1.343763  0.4806207  2.79589 0.0051757
htTRUE       1.913166  0.7207369  2.65446 0.0079436
uiTRUE       0.680195  0.4643403  1.46486 0.1429580
ftv1        -0.436380  0.4793936 -0.91027 0.3626779
ftv2+        0.179009  0.4563778  0.39224 0.6948827
> set.seed(1)
> ys <- simulate(fit6, nsim = 3)
> ys[1:10, ]
   sim_1 sim_2 sim_3
1      0     0     0
2      0     0     0
3      0     0     0
4      1     0     1
5      0     1     1
6      1     0     1
7      1     0     0
8      0     0     0
9      0     0     0
10     0     0     1
> for(i in seq_len(3))
+     print(coef(summary(update(fit6, ys[, i] ~ .))))
             Estimate Std. Error  z value Pr(>|z|)
(Intercept) -0.284354  1.2297301 -0.23123 0.817134
age         -0.011485  0.0389166 -0.29513 0.767897
lwt         -0.012314  0.0069041 -1.78353 0.074500
raceblack    0.844051  0.5514350  1.53064 0.125857
raceother    0.565993  0.4665978  1.21302 0.225122
smokeTRUE    1.024337  0.4253416  2.40827 0.016028
ptdTRUE      1.578045  0.4887012  3.22906 0.001242
htTRUE       1.171556  0.7060321  1.65935 0.097045
uiTRUE       0.384214  0.4835840  0.79451 0.426897
ftv1        -0.790699  0.5271049 -1.50008 0.133594
ftv2+        0.522245  0.4498448  1.16094 0.245665
             Estimate Std. Error  z value   Pr(>|z|)
(Intercept)  0.916922   1.433819  0.63950 5.2250e-01
age          0.034662   0.041752  0.83019 4.0643e-01
lwt         -0.036299   0.009577 -3.79021 1.5052e-04
raceblack    2.588992   0.631372  4.10058 4.1211e-05
raceother    1.073046   0.522576  2.05338 4.0036e-02
smokeTRUE    0.710930   0.478870  1.48460 1.3765e-01
ptdTRUE      0.679588   0.503299  1.35027 1.7693e-01
htTRUE       1.988224   0.801811  2.47967 1.3151e-02
uiTRUE       1.080176   0.489033  2.20880 2.7189e-02
ftv1        -0.418153   0.549009 -0.76165 4.4627e-01
ftv2+        0.657962   0.500605  1.31433 1.8873e-01
              Estimate Std. Error   z value   Pr(>|z|)
(Intercept)  1.4927579  1.2779154  1.168119 0.24275859
age         -0.0986485  0.0415094 -2.376532 0.01747625
lwt         -0.0088426  0.0070635 -1.251885 0.21061194
raceblack    0.2106382  0.5622160  0.374657 0.70791549
raceother    0.8608985  0.4814556  1.788116 0.07375727
smokeTRUE    0.7884781  0.4449757  1.771958 0.07640158
ptdTRUE      1.9686209  0.5435116  3.622040 0.00029229
htTRUE       1.7835637  0.7279712  2.450047 0.01428375
uiTRUE       1.4816743  0.5139743  2.882779 0.00394184
ftv1        -0.7388479  0.5090637 -1.451386 0.14667244
ftv2+       -0.0097438  0.4670024 -0.020865 0.98335371
> 
> ## This requires MASS::gamma.shape
> if(!require("MASS")) q()
Loading required package: MASS
> 
> ## gamma fit, from example(glm)
> clotting <- data.frame(u = c(5,10,15,20,30,40,60,80,100),
+                        lot1 = c(118,58,42,35,27,25,21,19,18))
> fit7 <- glm(lot1 ~ log(u), data = clotting, family = Gamma)
> coef(summary(fit7))
             Estimate Std. Error t value   Pr(>|t|)
(Intercept) -0.016554 0.00092755 -17.847 4.2791e-07
log(u)       0.015343 0.00041496  36.975 2.7512e-09
> set.seed(1)
> ( ys <- simulate(fit7, nsim = 3) )
    sim_1   sim_2   sim_3
1 119.451 118.552 123.140
2  56.310  51.798  48.747
3  42.193  39.456  40.843
4  34.581  33.905  35.580
5  26.208  26.971  27.210
6  25.476  25.840  24.437
7  22.287  22.151  21.375
8  20.206  20.503  19.626
9  18.224  19.094  17.952
> for(i in seq_len(3))
+     print(coef(summary(update(fit7, ys[, i] ~ .))))
             Estimate Std. Error t value   Pr(>|t|)
(Intercept) -0.016008 0.00077887 -20.553 1.6197e-07
log(u)       0.015044 0.00034611  43.465 8.9084e-10
             Estimate Std. Error t value   Pr(>|t|)
(Intercept) -0.015483 0.00050102 -30.903 9.5910e-09
log(u)       0.014935 0.00021999  67.889 3.9547e-11
             Estimate Std. Error t value   Pr(>|t|)
(Intercept) -0.016850 0.00075120 -22.431 8.8554e-08
log(u)       0.015569 0.00033659  46.256 5.7704e-10
> 
> 
> proc.time()
   user  system elapsed 
  0.277   0.062   0.318 
