R version 2.5.0 Under development (unstable) (2006-12-23 r40295)
Copyright (C) 2006 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

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.

> ###-- Linear Models, basic functionality -- weights included.
> 
> ## From John Maindonald :
> roller <- data.frame(
+  weight     = c(1.9,  3.1,  3.3,  4.8,  5.3,  6.1,  6.4,  7.6,  9.8, 12.4),
+  depression = c(  2,  1,    5,    5,   20,   20,   23,   10,   30,   25))
> 
> roller.lmu  <-  lm(weight~depression, data=roller)
> roller.lsfu <- lsfit(roller$depression, roller$weight)
> 
> roller.lsf  <- lsfit(roller$depression, roller$weight, wt = 1:10)
> roller.lsf0 <- lsfit(roller$depression, roller$weight, wt = 0:9)
> roller.lm  <-  lm(weight~depression, data=roller, weights= 1:10)
> roller.lm0 <-  lm(weight~depression, data=roller, weights= 0:9)
> roller.lm9 <-  lm(weight~depression, data=roller[-1,],weights= 1:9)
> roller.glm <- glm(weight~depression, data=roller, weights= 1:10)
> roller.glm0<- glm(weight~depression, data=roller, weights= 0:9)
> 
> predict(roller.glm0, type="terms")# failed till 2003-03-31
   depression
1  -2.6692211
2  -2.8898179
3  -2.0074308
4  -2.0074308
5   1.3015211
6   1.3015211
7   1.9633114
8  -0.9044468
9   3.5074889
10  2.4045050
attr(,"constant")
[1] 6.743646
> 
> ## FIXME : glm()$residual [1] is NA,  lm()'s is ok.
> ## all.equal(residuals(roller.glm0, type = "partial"),
> ##          residuals(roller.lm0,  type = "partial") )
> 
> 
> all.equal(deviance(roller.lm),
+           deviance(roller.glm))
[1] TRUE
> all.equal(weighted.residuals(roller.lm),
+           residuals         (roller.glm))
[1] TRUE
> 
> all.equal(deviance(roller.lm0),
+           deviance(roller.glm0))
[1] TRUE
> all.equal(weighted.residuals(roller.lm0, drop=FALSE),
+           residuals         (roller.glm0))
[1] TRUE
> 
> (im.lm0 <- influence.measures(roller.lm0))
Influence measures of
	 lm(formula = weight ~ depression, data = roller, weights = 0:9) :

    dfb.1_ dfb.dprs   dffit cov.r   cook.d    hat inf
2  -0.0530   0.0482 -0.0530 1.551 0.001635 0.1277    
3  -0.1769   0.1538 -0.1782 1.569 0.018065 0.1742    
4   0.0130  -0.0113  0.0131 1.842 0.000100 0.2613    
5  -0.1174  -0.0185 -0.3370 1.049 0.055523 0.0892    
6  -0.1031  -0.0162 -0.2960 1.229 0.045771 0.1114    
7  -0.0118  -0.1891 -0.5010 1.070 0.119319 0.1555    
8   0.7572  -0.5948  0.7972 1.467 0.309976 0.3510    
9   0.1225  -0.2067 -0.2664 2.391 0.040794 0.4470   *
10 -0.3348   1.1321  2.0937 0.233 0.895835 0.2826   *
> 
> all.equal(unname(im.lm0 $ infmat),
+           unname(cbind(  dfbetas      (roller.lm0)
+                        , dffits       (roller.lm0)
+                        , covratio     (roller.lm0)
+                        ,cooks.distance(roller.lm0)
+                        ,lm.influence  (roller.lm0)$hat)
+                  ))
[1] TRUE
> 
> all.equal(rstandard(roller.lm9),
+           rstandard(roller.lm0),tol=1e-14)
[1] TRUE
> all.equal(rstudent(roller.lm9),
+           rstudent(roller.lm0),tol=1e-14)
[1] TRUE
> all.equal(rstudent(roller.lm),
+           rstudent(roller.glm))
[1] TRUE
> all.equal(cooks.distance(roller.lm),
+           cooks.distance(roller.glm))
[1] TRUE
> 
> 
> all.equal(summary(roller.lm0)$coef,
+           summary(roller.lm9)$coef, tol=1e-14)
[1] TRUE
> all.equal(print(anova(roller.lm0), signif.st=FALSE),
+                 anova(roller.lm9), tol=1e-14)
Analysis of Variance Table

Response: weight
           Df  Sum Sq Mean Sq F value  Pr(>F)
depression  1 158.408 158.408  5.4302 0.05259
Residuals   7 204.202  29.172                
[1] TRUE
> 
> 
> ###  more regression tests for lm(), glm(), etc :
> 
> ## moved from ?influence.measures:
> lm.SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
> (IM <- influence.measures(lm.SR))
Influence measures of
	 lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings) :

                 dfb.1_  dfb.pp15 dfb.pp75  dfb.dpi  dfb.ddpi   dffit cov.r
Australia       0.01232 -0.010436 -0.02653  0.04534 -0.000159  0.0627 1.193
Austria        -0.01005  0.005944  0.04084 -0.03672 -0.008182  0.0632 1.268
Belgium        -0.06416  0.051496  0.12070 -0.03472 -0.007265  0.1878 1.176
Bolivia         0.00578 -0.012703 -0.02253  0.03185  0.040642 -0.0597 1.224
Brazil          0.08973 -0.061626 -0.17907  0.11997  0.068457  0.2646 1.082
Canada          0.00541 -0.006750  0.01021 -0.03531 -0.002649 -0.0390 1.328
Chile          -0.19941  0.132652  0.21979 -0.01998  0.120007 -0.4554 0.655
China           0.02112 -0.005726 -0.08311  0.05180  0.110627  0.2008 1.150
Colombia        0.03910 -0.052261 -0.02464  0.00168  0.009084 -0.0960 1.167
Costa Rica     -0.23367  0.284279  0.14243  0.05638 -0.032824  0.4049 0.968
Denmark        -0.04051  0.020927  0.04653  0.15220  0.048854  0.3845 0.934
Ecuador         0.07176 -0.095239 -0.06067  0.01950  0.047786 -0.1695 1.139
Finland        -0.11350  0.111328  0.11695 -0.04364 -0.017132 -0.1464 1.203
France         -0.16600  0.147054  0.21900 -0.02942  0.023952  0.2765 1.226
Germany        -0.00802  0.008224  0.00835 -0.00697 -0.000293 -0.0152 1.226
Greece         -0.14820  0.163938  0.02861  0.15713 -0.059599 -0.2811 1.140
Guatamala       0.01552 -0.054853  0.00614  0.00585  0.097217 -0.2305 1.085
Honduras       -0.00226  0.009845 -0.01020  0.00812 -0.001887  0.0482 1.186
Iceland         0.24789 -0.273549 -0.23265 -0.12555  0.184698 -0.4768 0.866
India           0.02105 -0.015769 -0.01439 -0.01374 -0.018958  0.0381 1.202
Ireland        -0.31001  0.296238  0.48156 -0.25733 -0.093317  0.5216 1.268
Italy           0.06619 -0.070974  0.00307 -0.06999 -0.028648  0.1388 1.162
Japan           0.63987 -0.656139 -0.67390  0.14610  0.388603  0.8597 1.085
Korea          -0.16897  0.135087  0.21895  0.00511 -0.169492 -0.4303 0.870
Luxembourg     -0.06827  0.068883  0.04380 -0.02797  0.049134 -0.1401 1.196
Malta           0.03652 -0.048756  0.00791 -0.08659  0.153014  0.2386 1.128
Norway          0.00222 -0.000350 -0.00611 -0.01594 -0.001462 -0.0522 1.168
Netherlands     0.01395 -0.016738 -0.01186  0.00433  0.022591  0.0366 1.229
New Zealand    -0.06002  0.065105  0.09412 -0.02638 -0.064740  0.1469 1.134
Nicaragua      -0.01209  0.017904  0.00972 -0.00474 -0.010467  0.0397 1.174
Panama          0.02828 -0.053342  0.01446 -0.03467 -0.007889 -0.1775 1.067
Paraguay       -0.23227  0.164160  0.15826  0.14361  0.270478 -0.4655 0.873
Peru           -0.07182  0.146695  0.09148 -0.08585 -0.287184  0.4811 0.831
Philippines    -0.15707  0.226807  0.15743 -0.11140 -0.170674  0.4884 0.818
Portugal       -0.02140  0.025514 -0.00380  0.03991 -0.028011 -0.0690 1.233
South Africa    0.02218 -0.020296 -0.00672 -0.02049 -0.016326  0.0343 1.195
South Rhodesia  0.14390 -0.134719 -0.09245 -0.06956 -0.057920  0.1607 1.313
Spain          -0.03035  0.031311  0.00394  0.03512  0.005340 -0.0526 1.208
Sweden          0.10098 -0.081623 -0.06166 -0.25528 -0.013316 -0.4526 1.086
Switzerland     0.04323 -0.046492 -0.04364  0.09093 -0.018828  0.1903 1.147
Turkey         -0.01092 -0.011985  0.02645  0.00161  0.025138 -0.1445 1.100
Tunisia         0.07377 -0.104998 -0.07727  0.04439  0.103058 -0.2177 1.131
United Kingdom  0.04671 -0.035840 -0.17129  0.12554  0.100314 -0.2722 1.189
United States   0.06910 -0.072886  0.03745 -0.23312 -0.032729 -0.2510 1.655
Venezuela      -0.05083  0.100805 -0.03366  0.11366 -0.124486  0.3071 1.095
Zambia          0.16361 -0.079172 -0.33899  0.09406  0.228232  0.7482 0.512
Jamaica         0.10958 -0.100223 -0.05722 -0.00703 -0.295461 -0.3456 1.200
Uruguay        -0.13403  0.128805  0.02953  0.13132  0.099591 -0.2051 1.187
Libya           0.55074 -0.483244 -0.37974 -0.01937 -1.024477 -1.1601 2.091
Malaysia        0.03684 -0.061126  0.03235 -0.04956 -0.072294 -0.2126 1.113
                 cook.d    hat inf
Australia      8.04e-04 0.0677    
Austria        8.18e-04 0.1204    
Belgium        7.15e-03 0.0875    
Bolivia        7.28e-04 0.0895    
Brazil         1.40e-02 0.0696    
Canada         3.11e-04 0.1584    
Chile          3.78e-02 0.0373   *
China          8.16e-03 0.0780    
Colombia       1.88e-03 0.0573    
Costa Rica     3.21e-02 0.0755    
Denmark        2.88e-02 0.0627    
Ecuador        5.82e-03 0.0637    
Finland        4.36e-03 0.0920    
France         1.55e-02 0.1362    
Germany        4.74e-05 0.0874    
Greece         1.59e-02 0.0966    
Guatamala      1.07e-02 0.0605    
Honduras       4.74e-04 0.0601    
Iceland        4.35e-02 0.0705    
India          2.97e-04 0.0715    
Ireland        5.44e-02 0.2122    
Italy          3.92e-03 0.0665    
Japan          1.43e-01 0.2233    
Korea          3.56e-02 0.0608    
Luxembourg     3.99e-03 0.0863    
Malta          1.15e-02 0.0794    
Norway         5.56e-04 0.0479    
Netherlands    2.74e-04 0.0906    
New Zealand    4.38e-03 0.0542    
Nicaragua      3.23e-04 0.0504    
Panama         6.33e-03 0.0390    
Paraguay       4.16e-02 0.0694    
Peru           4.40e-02 0.0650    
Philippines    4.52e-02 0.0643    
Portugal       9.73e-04 0.0971    
South Africa   2.41e-04 0.0651    
South Rhodesia 5.27e-03 0.1608    
Spain          5.66e-04 0.0773    
Sweden         4.06e-02 0.1240    
Switzerland    7.33e-03 0.0736    
Turkey         4.22e-03 0.0396    
Tunisia        9.56e-03 0.0746    
United Kingdom 1.50e-02 0.1165    
United States  1.28e-02 0.3337   *
Venezuela      1.89e-02 0.0863    
Zambia         9.66e-02 0.0643   *
Jamaica        2.40e-02 0.1408    
Uruguay        8.53e-03 0.0979    
Libya          2.68e-01 0.5315   *
Malaysia       9.11e-03 0.0652    
> summary(IM)
Potentially influential observations of
	 lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings) :

              dfb.1_ dfb.pp15 dfb.pp75 dfb.dpi dfb.ddpi dffit   cov.r   cook.d
Chile         -0.20   0.13     0.22    -0.02    0.12    -0.46    0.65_*  0.04 
United States  0.07  -0.07     0.04    -0.23   -0.03    -0.25    1.66_*  0.01 
Zambia         0.16  -0.08    -0.34     0.09    0.23     0.75    0.51_*  0.10 
Libya          0.55  -0.48    -0.38    -0.02   -1.02_*  -1.16_*  2.09_*  0.27 
              hat    
Chile          0.04  
United States  0.33_*
Zambia         0.06  
Libya          0.53_*
> ## colnames will differ in the next line
> all.equal(dfbetas(lm.SR), IM$infmat[, 1:5], check.attributes = FALSE,
+           tol = 1e-12)
[1] TRUE
> 
> signif(dfbeta(lm.SR), 3)
               (Intercept)     pop15    pop75       dpi      ddpi
Australia           0.0916 -1.53e-03 -0.02910  4.27e-05 -3.16e-05
Austria            -0.0747  8.69e-04  0.04470 -3.46e-05 -1.62e-03
Belgium            -0.4750  7.50e-03  0.13200 -3.26e-05 -1.44e-03
Bolivia             0.0429 -1.86e-03 -0.02470  3.00e-05  8.06e-03
Brazil              0.6600 -8.92e-03 -0.19400  1.12e-04  1.34e-02
Canada              0.0402 -9.87e-04  0.01120 -3.32e-05 -5.25e-04
Chile              -1.4000  1.83e-02  0.22700 -1.78e-05  2.25e-02
China               0.1560 -8.33e-04 -0.09060  4.85e-05  2.18e-02
Colombia            0.2900 -7.63e-03 -0.02700  1.58e-06  1.80e-03
Costa Rica         -1.7000  4.07e-02  0.15300  5.19e-05 -6.37e-03
Denmark            -0.2940  2.99e-03  0.04980  1.40e-04  9.46e-03
Ecuador             0.5310 -1.39e-02 -0.06620  1.83e-05  9.44e-03
Finland            -0.8420  1.62e-02  0.12800 -4.10e-05 -3.39e-03
France             -1.2300  2.14e-02  0.23900 -2.76e-05  4.73e-03
Germany            -0.0597  1.20e-03  0.00915 -6.56e-06 -5.82e-05
Greece             -1.0900  2.38e-02  0.03110  1.47e-04 -1.17e-02
Guatamala           0.1140 -7.95e-03  0.00667  5.46e-06  1.91e-02
Honduras           -0.0168  1.44e-03 -0.01120  7.64e-06 -3.74e-04
Iceland             1.7800 -3.87e-02 -0.24700 -1.14e-04  3.55e-02
India               0.1560 -2.31e-03 -0.01580 -1.29e-05 -3.76e-03
Ireland            -2.2800  4.28e-02  0.52200 -2.40e-04 -1.83e-02
Italy               0.4910 -1.04e-02  0.00335 -6.57e-05 -5.67e-03
Japan               4.6300 -9.33e-02 -0.71800  1.34e-04  7.49e-02
Korea              -1.2200  1.91e-02  0.23300  4.66e-06 -3.26e-02
Luxembourg         -0.5070  1.01e-02  0.04790 -2.63e-05  9.73e-03
Malta               0.2700 -7.08e-03  0.00861 -8.09e-05  3.01e-02
Norway              0.0165 -5.12e-05 -0.00670 -1.50e-05 -2.90e-04
Netherlands         0.1040 -2.45e-03 -0.01300  4.07e-06  4.48e-03
New Zealand        -0.4440  9.48e-03  0.10300 -2.47e-05 -1.28e-02
Nicaragua          -0.0899  2.62e-03  0.01060 -4.46e-06 -2.08e-03
Panama              0.2080 -7.73e-03  0.01570 -3.24e-05 -1.55e-03
Paraguay           -1.6700  2.33e-02  0.16800  1.31e-04  5.20e-02
Peru               -0.5150  2.07e-02  0.09670 -7.79e-05 -5.49e-02
Philippines        -1.1200  3.19e-02  0.16600 -1.01e-04 -3.26e-02
Portugal           -0.1590  3.73e-03 -0.00416  3.76e-05 -5.55e-03
South Africa        0.1650 -2.97e-03 -0.00737 -1.93e-05 -3.24e-03
South Rhodesia      1.0700 -1.97e-02 -0.10100 -6.54e-05 -1.15e-02
Spain              -0.2260  4.58e-03  0.00432  3.31e-05  1.06e-03
Sweden              0.7390 -1.17e-02 -0.06650 -2.37e-04 -2.60e-03
Switzerland         0.3200 -6.77e-03 -0.04760  8.52e-05 -3.72e-03
Turkey             -0.0807 -1.74e-03  0.02880  1.51e-06  4.96e-03
Tunisia             0.5450 -1.53e-02 -0.08410  4.15e-05  2.03e-02
United Kingdom      0.3450 -5.21e-03 -0.18700  1.17e-04  1.98e-02
United States       0.5130 -1.06e-02  0.04100 -2.19e-04 -6.48e-03
Venezuela          -0.3740  1.46e-02 -0.03650  1.06e-04 -2.44e-02
Zambia              1.1200 -1.06e-02 -0.34100  8.14e-05  4.16e-02
Jamaica             0.8080 -1.45e-02 -0.06220 -6.57e-06 -5.81e-02
Uruguay            -0.9920  1.88e-02  0.03220  1.23e-04  1.97e-02
Libya               4.0400 -6.98e-02 -0.41100 -1.80e-05 -2.01e-01
Malaysia            0.2720 -8.88e-03  0.03520 -4.63e-05 -1.42e-02
> covratio (lm.SR)
     Australia        Austria        Belgium        Bolivia         Brazil 
     1.1928303      1.2678392      1.1761879      1.2238199      1.0823332 
        Canada          Chile          China       Colombia     Costa Rica 
     1.3283009      0.6547098      1.1498637      1.1666845      0.9681384 
       Denmark        Ecuador        Finland         France        Germany 
     0.9344047      1.1393880      1.2031561      1.2262654      1.2256855 
        Greece      Guatamala       Honduras        Iceland          India 
     1.1396174      1.0852720      1.1855450      0.8658808      1.2024438 
       Ireland          Italy          Japan          Korea     Luxembourg 
     1.2680432      1.1624611      1.0845999      0.8695843      1.1961844 
         Malta         Norway    Netherlands    New Zealand      Nicaragua 
     1.1282611      1.1680616      1.2285315      1.1336998      1.1742677 
        Panama       Paraguay           Peru    Philippines       Portugal 
     1.0667255      0.8732040      0.8312741      0.8177726      1.2331038 
  South Africa South Rhodesia          Spain         Sweden    Switzerland 
     1.1945449      1.3130954      1.2081541      1.0864869      1.1471125 
        Turkey        Tunisia United Kingdom  United States      Venezuela 
     1.1003557      1.1314365      1.1886236      1.6554816      1.0945955 
        Zambia        Jamaica        Uruguay          Libya       Malaysia 
     0.5116454      1.1995171      1.1872025      2.0905736      1.1126445 
> 
> ## predict.lm(.)
> 
> all.equal(predict(roller.lm,                 se=TRUE)$se,
+           predict(roller.lm, newdata=roller, se=TRUE)$se, tol= 1e-14)
[1] TRUE
>