fit.models/0000755000176200001440000000000013071532110012307 5ustar liggesusersfit.models/tests/0000755000176200001440000000000013067024627013467 5ustar liggesusersfit.models/tests/lmfm.R0000644000176200001440000000615313057633157014555 0ustar liggesusersoptions(warn = 2) data(stackloss) library(fit.models) library(MASS) # add rlm to the lmfm fit.models class fmclass.add.class("lmfm", "rlm") ################################################################################ # Test original syntax ################################################################################ fm1 <- fit.models(list(Robust = "rlm", LS = "lm"), stack.loss ~ ., data = stackloss) print(fm1) print(fm1.sum <- summary(fm1, correlation = TRUE)) pdf("fm1.pdf") plot(fm1, 2) plot(fm1, 3) plot(fm1, 4) plot(fm1, 5) plot(fm1, 6) plot(fm1, 7) plot(fm1, 8) plot(fm1, 9) plot(fm1, 10) dev.off() rm(fm1, fm1.sum) file.remove("fm1.pdf") ################################################################################ # Test models with different subsets ################################################################################ complete <- lm(stack.loss ~ ., data = stackloss) clean <- lm(stack.loss ~ ., data = stackloss, subset = -c(1, 2, 4, 21)) fm2 <- fit.models(Clean = clean, Complete = complete) print(fm2) print(fm2.sum <- summary(fm2, correlation = TRUE)) pdf("fm2.pdf") plot(fm2, 2) plot(fm2, 3) plot(fm2, 4) plot(fm2, 5) plot(fm2, 6) plot(fm2, 7) plot(fm2, 8) plot(fm2, 9) plot(fm2, 10) dev.off() rm(fm2, fm2.sum) file.remove("fm2.pdf") ################################################################################ # Test models with different formulas ################################################################################ m1 <- lm(stack.loss ~ Air.Flow + Water.Temp, data = stackloss) m2 <- lm(stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) fm3 <- fit.models(m1, m2) print(fm3) print(fm3.sum <- summary(fm3, correlation = TRUE)) pdf("fm3.pdf") plot(fm3, 2) plot(fm3, 3) plot(fm3, 4) plot(fm3, 5) plot(fm3, 6) plot(fm3, 7) plot(fm3, 8) plot(fm3, 9) plot(fm3, 10) dev.off() rm(fm3, fm3.sum) file.remove("fm3.pdf") ################################################################################ # Test models with different formulas and different subsets ################################################################################ m1 <- lm(stack.loss ~ Air.Flow + Water.Temp, data = stackloss, subset = -c(1, 2, 4, 21)) m2 <- lm(stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) fm4 <- fit.models(m1, m2) print(fm4) print(fm4.sum <- summary(fm4, correlation = TRUE)) pdf("fm4.pdf") plot(fm4, 2) plot(fm4, 3) plot(fm4, 4) plot(fm4, 5) plot(fm4, 6) plot(fm4, 7) plot(fm4, 8) plot(fm4, 9) plot(fm4, 10) dev.off() rm(fm4, fm4.sum) file.remove("fm4.pdf") ################################################################################ # Test simple linear regression ################################################################################ fm5 <- fit.models(list(Robust = "rlm", LS = "lm"), stack.loss ~ Acid.Conc., data = stackloss) print(fm5) print(fm5.sum <- summary(fm5, correlation = TRUE)) pdf("fm5.pdf") plot(fm5, 2) plot(fm5, 3) plot(fm5, 4) plot(fm5, 5) plot(fm5, 6) plot(fm5, 7) plot(fm5, 8) plot(fm5, 9) plot(fm5, 10) plot(fm5, 11) dev.off() rm(fm5, fm5.sum) file.remove("fm5.pdf") ################################################################################ fit.models/tests/glmfm.R0000644000176200001440000000420113057633211014703 0ustar liggesusersoptions(warn = 2) library(fit.models) library(MASS) ################################################################################ # Test models with differenct formulas ################################################################################ counts <- c(18, 17, 15, 20, 10, 20, 25, 13, 12) outcome <- gl(3, 1, 9) treatment <- c(gl(3,2), gl(3,1)) d.AD <- data.frame(treatment, outcome, counts) trt <- glm(counts ~ treatment, family = poisson()) out <- glm(counts ~ outcome, family = poisson()) fm1 <- fit.models(trt, out) print(fm1) print(fm1.sum <- summary(fm1, correlation = TRUE)) pdf("fm1.pdf") plot(fm1, 2) plot(fm1, 3) plot(fm1, 4) plot(fm1, 5) plot(fm1, 6) plot(fm1, 7) dev.off() rm(fm1, fm1.sum) file.remove("fm1.pdf") ################################################################################ # Test models with different formulas ################################################################################ ## an example with offsets from Venables & Ripley (2002, p.189) utils::data(anorexia, package = "MASS") offset <- glm(Postwt ~ Prewt + Treat + offset(Prewt), family = gaussian, data = anorexia) no.offset <- glm(Postwt - Prewt ~ Treat, family = gaussian, data = anorexia) fm2 <- fit.models(offset, no.offset) print(fm2) print(fm2.sum <- summary(fm2, correlation = TRUE)) pdf("fm2.pdf") plot(fm2, 2) plot(fm2, 3) plot(fm2, 4) plot(fm2, 5) plot(fm2, 6) plot(fm2, 7) dev.off() rm(fm2, fm2.sum) file.remove("fm2.pdf") ################################################################################ # Test models with different formulas and subsets ################################################################################ m1 <- glm(Postwt ~ Prewt + Treat, family = gaussian, data = subset(anorexia, Prewt > 75)) m2 <- glm(Postwt ~ Treat, family = gaussian, data = anorexia) fm3 <- fit.models(m1, m2) print(fm3) print(fm3.sum <- summary(fm3, correlation = TRUE)) pdf("fm3.pdf") plot(fm3, 2) plot(fm3, 3) plot(fm3, 4) plot(fm3, 5) plot(fm3, 6) plot(fm3, 7) dev.off() rm(fm3, fm3.sum) file.remove("fm3.pdf") ################################################################################ fit.models/tests/glmfm.Rout.save0000644000176200001440000002112413067024364016377 0ustar liggesusers R version 3.3.3 (2017-03-06) -- "Another Canoe" Copyright (C) 2017 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin16.4.0 (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. > options(warn = 2) > > library(fit.models) > library(MASS) > > ################################################################################ > # Test models with differenct formulas > ################################################################################ > > counts <- c(18, 17, 15, 20, 10, 20, 25, 13, 12) > outcome <- gl(3, 1, 9) > treatment <- c(gl(3,2), gl(3,1)) > d.AD <- data.frame(treatment, outcome, counts) > > trt <- glm(counts ~ treatment, family = poisson()) > out <- glm(counts ~ outcome, family = poisson()) > > fm1 <- fit.models(trt, out) > print(fm1) Calls: trt: glm(formula = counts ~ treatment, family = poisson()) out: glm(formula = counts ~ outcome, family = poisson()) Coefficients: (Intercept) treatment outcome2 outcome3 trt 3.1645 -0.1810 out 3.0445 -0.4543 -0.293 > print(fm1.sum <- summary(fm1, correlation = TRUE)) Calls: trt: glm(formula = counts ~ treatment, family = poisson()) out: glm(formula = counts ~ outcome, family = poisson()) Deviance Residuals: Min 1Q Median 3Q Max trt: -1.0652 -0.6356 -0.4014 0.8371 1.575 out: -0.9666 -0.6712 -0.1696 0.8472 1.049 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept): trt: 3.1645 0.2064 15.333 <2e-16 *** out: 3.0445 0.1260 24.165 <2e-16 *** treatment: trt: -0.1810 0.1008 -1.795 0.0726 . out: outcome2: trt: out: -0.4543 0.2022 -2.247 0.0246 * outcome3: trt: out: -0.2930 0.1927 -1.520 0.1285 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Null deviance: trt: 10.58 on 8 degrees of freedom out: 10.58 on 8 degrees of freedom Residual deviance: trt: 7.333 on 7 degrees of freedom out: 5.129 on 6 degrees of freedom Correlations: trt: (Intercept) treatment -0.92 out: (Intercept) outcome2 outcome2 -0.62 outcome3 -0.65 0.41 > > pdf("fm1.pdf") > plot(fm1, 2) > plot(fm1, 3) > plot(fm1, 4) > plot(fm1, 5) > plot(fm1, 6) > plot(fm1, 7) > dev.off() null device 1 > > rm(fm1, fm1.sum) > file.remove("fm1.pdf") [1] TRUE > > > ################################################################################ > # Test models with different formulas > ################################################################################ > > > ## an example with offsets from Venables & Ripley (2002, p.189) > utils::data(anorexia, package = "MASS") > > offset <- glm(Postwt ~ Prewt + Treat + offset(Prewt), family = gaussian, + data = anorexia) > > no.offset <- glm(Postwt - Prewt ~ Treat, family = gaussian, data = anorexia) > > fm2 <- fit.models(offset, no.offset) > print(fm2) Calls: offset: glm(formula = Postwt ~ Prewt + Treat + offset(Prewt), family = gaussian, data = anorexia) no.offset: glm(formula = Postwt - Prewt ~ Treat, family = gaussian, data = anorexia) Coefficients: (Intercept) Prewt TreatCont TreatFT offset 49.7711 -0.5655 -4.0971 4.563 no.offset 3.0069 -3.4569 4.258 > print(fm2.sum <- summary(fm2, correlation = TRUE)) Calls: offset: glm(formula = Postwt ~ Prewt + Treat + offset(Prewt), family = gaussian, data = anorexia) no.offset: glm(formula = Postwt - Prewt ~ Treat, family = gaussian, data = anorexia) Deviance Residuals: Min 1Q Median 3Q Max offset: -14.11 -4.277 -0.5484 5.484 15.29 no.offset: -12.56 -4.543 -1.0069 3.846 17.89 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept): offset: 49.7711 13.3910 3.717 0.000410 *** no.offset: 3.0069 1.3980 2.151 0.034992 * Prewt: offset: -0.5655 0.1612 -3.509 0.000803 *** no.offset: TreatCont: offset: -4.0971 1.8935 -2.164 0.033999 * no.offset: -3.4569 2.0333 -1.700 0.093608 . TreatFT: offset: 4.5631 2.1333 2.139 0.036035 * no.offset: 4.2578 2.2996 1.852 0.068376 . --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Null deviance: offset: 4525 on 71 degrees of freedom no.offset: 4525 on 71 degrees of freedom Residual deviance: offset: 3311 on 68 degrees of freedom no.offset: 3911 on 69 degrees of freedom Correlations: offset: (Intercept) Prewt TreatCont Prewt -1.00 TreatCont -0.16 0.10 TreatFT -0.02 -0.04 0.41 no.offset: (Intercept) TreatCont TreatCont -0.69 TreatFT -0.61 0.42 > > pdf("fm2.pdf") > plot(fm2, 2) > plot(fm2, 3) > plot(fm2, 4) > plot(fm2, 5) > plot(fm2, 6) > plot(fm2, 7) > dev.off() null device 1 > > rm(fm2, fm2.sum) > file.remove("fm2.pdf") [1] TRUE > > > ################################################################################ > # Test models with different formulas and subsets > ################################################################################ > > m1 <- glm(Postwt ~ Prewt + Treat, family = gaussian, + data = subset(anorexia, Prewt > 75)) > > m2 <- glm(Postwt ~ Treat, family = gaussian, data = anorexia) > > fm3 <- fit.models(m1, m2) > print(fm3) Calls: m1: glm(formula = Postwt ~ Prewt + Treat, family = gaussian, data = subset(anorexia, Prewt > 75)) m2: glm(formula = Postwt ~ Treat, family = gaussian, data = anorexia) Coefficients: (Intercept) Prewt TreatCont TreatFT m1 18.2207 0.8093 -4.6651 4.141 m2 85.6966 -4.5889 4.798 > print(fm3.sum <- summary(fm3, correlation = TRUE)) Calls: m1: glm(formula = Postwt ~ Prewt + Treat, family = gaussian, data = subset(anorexia, Prewt > 75)) m2: glm(formula = Postwt ~ Treat, family = gaussian, data = anorexia) Deviance Residuals: Min 1Q Median 3Q Max m1: -12.31 -4.747 -0.463868 4.579 13.59 m2: -15.29 -3.730 -0.002122 4.781 17.90 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept): m1: 18.2207 15.0442 1.211 0.2304 m2: 85.6966 1.3534 63.321 < 2e-16 *** Prewt: m1: 0.8093 0.1803 4.488 3.12e-05 *** m2: TreatCont: m1: -4.6651 1.8353 -2.542 0.0135 * m2: -4.5889 1.9684 -2.331 0.0227 * TreatFT: m1: 4.1408 2.0463 2.024 0.0473 * m2: 4.7976 2.2262 2.155 0.0347 * --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Null deviance: m1: 4431 on 66 degrees of freedom m2: 4584 on 71 degrees of freedom Residual deviance: m1: 2676 on 63 degrees of freedom m2: 3665 on 69 degrees of freedom Correlations: m1: (Intercept) Prewt TreatCont Prewt -1.00 TreatCont -0.09 0.04 TreatFT 0.01 -0.06 0.40 m2: (Intercept) TreatCont TreatCont -0.69 TreatFT -0.61 0.42 > > pdf("fm3.pdf") > plot(fm3, 2) > plot(fm3, 3) > plot(fm3, 4) > plot(fm3, 5) > plot(fm3, 6) > plot(fm3, 7) > dev.off() null device 1 > > rm(fm3, fm3.sum) > file.remove("fm3.pdf") [1] TRUE > > > ################################################################################ > > > > proc.time() user system elapsed 1.254 0.050 1.294 fit.models/tests/lmfm.Rout.save0000644000176200001440000003136713067024627016244 0ustar liggesusers R version 3.3.3 (2017-03-06) -- "Another Canoe" Copyright (C) 2017 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin16.4.0 (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. > options(warn = 2) > > data(stackloss) > > library(fit.models) > library(MASS) > > # add rlm to the lmfm fit.models class > fmclass.add.class("lmfm", "rlm") > > ################################################################################ > # Test original syntax > ################################################################################ > > fm1 <- fit.models(list(Robust = "rlm", LS = "lm"), stack.loss ~ ., data = stackloss) > print(fm1) Calls: Robust: rlm(formula = stack.loss ~ ., data = stackloss) LS: lm(formula = stack.loss ~ ., data = stackloss) Coefficients: (Intercept) Air.Flow Water.Temp Acid.Conc. Robust -41.0265 0.8294 0.9261 -0.128 LS -39.9197 0.7156 1.2953 -0.152 > print(fm1.sum <- summary(fm1, correlation = TRUE)) Calls: Robust: rlm(formula = stack.loss ~ ., data = stackloss) LS: lm(formula = stack.loss ~ ., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max Robust: -8.918 -1.731 0.06187 1.543 6.502 LS: -7.238 -1.712 -0.45509 2.361 5.698 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): Robust: -41.0265 9.8073 -4.183 LS: -39.9197 11.8960 -3.356 0.00375 ** Air.Flow: Robust: 0.8294 0.1112 7.460 LS: 0.7156 0.1349 5.307 5.8e-05 *** Water.Temp: Robust: 0.9261 0.3034 3.052 LS: 1.2953 0.3680 3.520 0.00263 ** Acid.Conc.: Robust: -0.1278 0.1289 -0.992 LS: -0.1521 0.1563 -0.973 0.34405 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual Scale Estimates: Robust: 2.441 on 17 degrees of freedom LS: 3.243 on 17 degrees of freedom Multiple R-squared: LS: 0.9136 Correlations: Robust: (Intercept) Air.Flow Water.Temp Air.Flow 0.18 Water.Temp -0.15 -0.74 Acid.Conc. -0.90 -0.34 0.00 LS: (Intercept) Air.Flow Water.Temp Air.Flow 0.18 Water.Temp -0.15 -0.74 Acid.Conc. -0.90 -0.34 0.00 > > pdf("fm1.pdf") > plot(fm1, 2) > plot(fm1, 3) > plot(fm1, 4) > plot(fm1, 5) > plot(fm1, 6) > plot(fm1, 7) > plot(fm1, 8) > plot(fm1, 9) > plot(fm1, 10) > dev.off() null device 1 > > rm(fm1, fm1.sum) > file.remove("fm1.pdf") [1] TRUE > > > ################################################################################ > # Test models with different subsets > ################################################################################ > > complete <- lm(stack.loss ~ ., data = stackloss) > clean <- lm(stack.loss ~ ., data = stackloss, subset = -c(1, 2, 4, 21)) > fm2 <- fit.models(Clean = clean, Complete = complete) > print(fm2) Calls: Clean: lm(formula = stack.loss ~ ., data = stackloss, subset = -c(1, 2, 4, 21)) Complete: lm(formula = stack.loss ~ ., data = stackloss) Coefficients: (Intercept) Air.Flow Water.Temp Acid.Conc. Clean -42.0003 0.9555 0.5556 -0.113 Complete -39.9197 0.7156 1.2953 -0.152 > print(fm2.sum <- summary(fm2, correlation = TRUE)) Calls: Clean: lm(formula = stack.loss ~ ., data = stackloss, subset = -c(1, 2, 4, 21)) Complete: lm(formula = stack.loss ~ ., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max Clean: -3.122 -1.333 -0.03041 0.9755 3.652 Complete: -7.238 -1.712 -0.45509 2.3614 5.698 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): Clean: -42.00028 7.08242 -5.930 4.98e-05 *** Complete: -39.91967 11.89600 -3.356 0.00375 ** Air.Flow: Clean: 0.95550 0.11018 8.672 9.15e-07 *** Complete: 0.71564 0.13486 5.307 5.80e-05 *** Water.Temp: Clean: 0.55561 0.25128 2.211 0.04556 * Complete: 1.29529 0.36802 3.520 0.00263 ** Acid.Conc.: Clean: -0.11339 0.09821 -1.155 0.26904 Complete: -0.15212 0.15629 -0.973 0.34405 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual Scale Estimates: Clean: 1.896 on 13 degrees of freedom Complete: 3.243 on 17 degrees of freedom Multiple R-squared: Clean: 0.9428 Complete: 0.9136 Correlations: Clean: (Intercept) Air.Flow Water.Temp Air.Flow 0.01 Water.Temp -0.10 -0.61 Acid.Conc. -0.79 -0.40 -0.07 Complete: (Intercept) Air.Flow Water.Temp Air.Flow 0.18 Water.Temp -0.15 -0.74 Acid.Conc. -0.90 -0.34 0.00 > > pdf("fm2.pdf") > plot(fm2, 2) > plot(fm2, 3) > plot(fm2, 4) > plot(fm2, 5) > plot(fm2, 6) > plot(fm2, 7) > plot(fm2, 8) > plot(fm2, 9) > plot(fm2, 10) > dev.off() null device 1 > > rm(fm2, fm2.sum) > file.remove("fm2.pdf") [1] TRUE > > > ################################################################################ > # Test models with different formulas > ################################################################################ > > m1 <- lm(stack.loss ~ Air.Flow + Water.Temp, data = stackloss) > m2 <- lm(stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) > fm3 <- fit.models(m1, m2) > print(fm3) Calls: m1: lm(formula = stack.loss ~ Air.Flow + Water.Temp, data = stackloss) m2: lm(formula = stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) Coefficients: (Intercept) Air.Flow Water.Temp Acid.Conc. m1 -50.3588 0.6712 1.2954 m2 -51.2361 2.7320 0.129 > print(fm3.sum <- summary(fm3, correlation = TRUE)) Calls: m1: lm(formula = stack.loss ~ Air.Flow + Water.Temp, data = stackloss) m2: lm(formula = stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max m1: -7.529 -1.75 0.1894 2.116 5.659 m2: -7.820 -2.86 -0.6656 3.123 8.329 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): m1: -50.3588 5.1383 -9.801 1.22e-08 *** m2: -51.2361 18.5374 -2.764 0.01279 * Air.Flow: m1: 0.6712 0.1267 5.298 4.90e-05 *** m2: Water.Temp: m1: 1.2954 0.3675 3.525 0.00242 ** m2: 2.7320 0.3949 6.919 1.82e-06 *** Acid.Conc.: m1: m2: 0.1290 0.2329 0.554 0.58657 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual Scale Estimates: m1: 3.239 on 18 degrees of freedom m2: 5.137 on 18 degrees of freedom Multiple R-squared: m1: 0.9088 m2: 0.7704 Correlations: m1: (Intercept) Air.Flow Air.Flow -0.31 Water.Temp -0.34 -0.78 m2: (Intercept) Water.Temp Water.Temp -0.03 Acid.Conc. -0.91 -0.39 > > pdf("fm3.pdf") > plot(fm3, 2) > plot(fm3, 3) > plot(fm3, 4) > plot(fm3, 5) > plot(fm3, 6) > plot(fm3, 7) > plot(fm3, 8) > plot(fm3, 9) > plot(fm3, 10) > dev.off() null device 1 > > rm(fm3, fm3.sum) > file.remove("fm3.pdf") [1] TRUE > > > ################################################################################ > # Test models with different formulas and different subsets > ################################################################################ > > m1 <- lm(stack.loss ~ Air.Flow + Water.Temp, data = stackloss, subset = -c(1, 2, 4, 21)) > m2 <- lm(stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) > fm4 <- fit.models(m1, m2) > print(fm4) Calls: m1: lm(formula = stack.loss ~ Air.Flow + Water.Temp, data = stackloss, subset = -c(1, 2, 4, 21)) m2: lm(formula = stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) Coefficients: (Intercept) Air.Flow Water.Temp Acid.Conc. m1 -48.4451 0.9052 0.5367 m2 -51.2361 2.7320 0.129 > print(fm4.sum <- summary(fm4, correlation = TRUE)) Calls: m1: lm(formula = stack.loss ~ Air.Flow + Water.Temp, data = stackloss, subset = -c(1, 2, 4, 21)) m2: lm(formula = stack.loss ~ Water.Temp + Acid.Conc., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max m1: -2.719 -1.486 0.2814 0.9865 4.136 m2: -7.820 -2.860 -0.6656 3.1235 8.329 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): m1: -48.4451 4.4107 -10.983 2.89e-08 *** m2: -51.2361 18.5374 -2.764 0.0128 * Air.Flow: m1: 0.9052 0.1024 8.839 4.21e-07 *** m2: Water.Temp: m1: 0.5367 0.2537 2.115 0.0528 . m2: 2.7320 0.3949 6.919 1.82e-06 *** Acid.Conc.: m1: m2: 0.1290 0.2329 0.554 0.5866 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual Scale Estimates: m1: 1.918 on 14 degrees of freedom m2: 5.137 on 18 degrees of freedom Multiple R-squared: m1: 0.9369 m2: 0.7704 Correlations: m1: (Intercept) Air.Flow Air.Flow -0.53 Water.Temp -0.24 -0.69 m2: (Intercept) Water.Temp Water.Temp -0.03 Acid.Conc. -0.91 -0.39 > > pdf("fm4.pdf") > plot(fm4, 2) > plot(fm4, 3) > plot(fm4, 4) > plot(fm4, 5) > plot(fm4, 6) > plot(fm4, 7) > plot(fm4, 8) > plot(fm4, 9) > plot(fm4, 10) > dev.off() null device 1 > > rm(fm4, fm4.sum) > file.remove("fm4.pdf") [1] TRUE > > > ################################################################################ > # Test simple linear regression > ################################################################################ > > fm5 <- fit.models(list(Robust = "rlm", LS = "lm"), stack.loss ~ Acid.Conc., data = stackloss) > print(fm5) Calls: Robust: rlm(formula = stack.loss ~ Acid.Conc., data = stackloss) LS: lm(formula = stack.loss ~ Acid.Conc., data = stackloss) Coefficients: (Intercept) Acid.Conc. Robust -32.07 0.547 LS -47.96 0.759 > print(fm5.sum <- summary(fm5, correlation = TRUE)) Calls: Robust: rlm(formula = stack.loss ~ Acid.Conc., data = stackloss) LS: lm(formula = stack.loss ~ Acid.Conc., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max Robust: -8.649 -2.744 0.1617 2.446 25.35 LS: -11.584 -5.584 -3.0659 1.247 22.42 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): Robust: -32.0654 21.6292 -1.483 LS: -47.9632 34.5044 -1.390 0.1806 Acid.Conc.: Robust: 0.5474 0.2502 2.188 LS: 0.7590 0.3992 1.901 0.0725 . --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual Scale Estimates: Robust: 4.037 on 19 degrees of freedom LS: 9.565 on 19 degrees of freedom Multiple R-squared: LS: 0.1599 Correlations: Robust: (Intercept) Acid.Conc. -1.00 LS: (Intercept) Acid.Conc. -1.00 > > pdf("fm5.pdf") > plot(fm5, 2) > plot(fm5, 3) > plot(fm5, 4) > plot(fm5, 5) > plot(fm5, 6) > plot(fm5, 7) > plot(fm5, 8) > plot(fm5, 9) > plot(fm5, 10) > plot(fm5, 11) > dev.off() null device 1 > > rm(fm5, fm5.sum) > file.remove("fm5.pdf") [1] TRUE > > > ################################################################################ > > > > proc.time() user system elapsed 2.774 0.077 2.845 fit.models/tests/Examples/0000755000176200001440000000000013067024310015232 5ustar liggesusersfit.models/tests/Examples/fit.models-Ex.Rout.save0000644000176200001440000002432113067024310021462 0ustar liggesusers R version 3.3.3 (2017-03-06) -- "Another Canoe" Copyright (C) 2017 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin16.4.0 (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 <- "fit.models" > source(file.path(R.home("share"), "R", "examples-header.R")) > options(warn = 1) > library('fit.models') > > base::assign(".oldSearch", base::search(), pos = 'CheckExEnv') > cleanEx() > nameEx("designMD") > ### * designMD > > flush(stderr()); flush(stdout()) > > ### Name: designMD > ### Title: Design Matrix Mahalanobis Distance > ### Aliases: designMD designMD.default > ### Keywords: methods regression > > ### ** Examples > > stack.lm <- lm(stack.loss ~ ., data = stackloss) > > # Mahalanobis distance (not squared) > sqrt(designMD(stack.lm)) 1 2 3 4 5 6 7 8 2.2536034 2.3247448 1.5937124 1.2718978 0.3033573 0.7728947 1.8526614 1.8526614 9 10 11 12 13 14 15 16 1.3606218 1.7459966 1.4657021 1.8415044 1.4826491 1.7787851 1.6902415 1.2919339 17 18 19 20 21 2.7000165 1.5031545 1.5932205 0.8070539 2.1767610 > > > > cleanEx() > nameEx("fit.models") > ### * fit.models > > flush(stderr()); flush(stdout()) > > ### Name: fit.models > ### Title: Fit dot Models > ### Aliases: fit.models > ### Keywords: models > > ### ** Examples > > # First, use fit.models to fit robust and least squares linear > # regression models to Brownlee's Stack Loss Plant Data. > > # Step 1: rlm (robust linear model) is in the MASS package. > library(MASS) > > # Step 2: tell fit.models rlm can be compared to lm > fmclass.add.class("lmfm", "rlm") > > fm1 <- fit.models(c("rlm", "lm"), stack.loss ~ ., data = stackloss) > > summary(fm1) #rlm does not provide p-values or Multiple R-squared Calls: rlm: rlm(formula = stack.loss ~ ., data = stackloss) lm: lm(formula = stack.loss ~ ., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max rlm: -8.918 -1.731 0.06187 1.543 6.502 lm: -7.238 -1.712 -0.45509 2.361 5.698 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): rlm: -41.0265 9.8073 -4.183 lm: -39.9197 11.8960 -3.356 0.00375 ** Air.Flow: rlm: 0.8294 0.1112 7.460 lm: 0.7156 0.1349 5.307 5.8e-05 *** Water.Temp: rlm: 0.9261 0.3034 3.052 lm: 1.2953 0.3680 3.520 0.00263 ** Acid.Conc.: rlm: -0.1278 0.1289 -0.992 lm: -0.1521 0.1563 -0.973 0.34405 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual Scale Estimates: rlm: 2.441 on 17 degrees of freedom lm: 3.243 on 17 degrees of freedom Multiple R-squared: lm: 0.9136 > > > # Second, use fit.models to combine fitted models into a > # fit.models object. > > lm.complete <- lm(stack.loss ~ ., data = stackloss) > lm.clean <- lm(stack.loss ~ ., data = stackloss, subset = 5:20) > > fm2 <- fit.models(lm.clean, lm.complete) > > summary(fm2) Calls: lm.clean: lm(formula = stack.loss ~ ., data = stackloss, subset = 5:20) lm.complete: lm(formula = stack.loss ~ ., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max lm.clean: -2.102 -0.5576 -0.04437 0.6418 2.135 lm.complete: -7.238 -1.7117 -0.45509 2.3614 5.698 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): lm.clean: -35.48420 4.52650 -7.839 4.63e-06 *** lm.complete: -39.91967 11.89600 -3.356 0.00375 ** Air.Flow: lm.clean: 0.68609 0.08758 7.834 4.66e-06 *** lm.complete: 0.71564 0.13486 5.307 5.80e-05 *** Water.Temp: lm.clean: 0.56710 0.15321 3.702 0.00303 ** lm.complete: 1.29529 0.36802 3.520 0.00263 ** Acid.Conc.: lm.clean: -0.01725 0.06314 -0.273 0.78933 lm.complete: -0.15212 0.15629 -0.973 0.34405 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual Scale Estimates: lm.clean: 1.156 on 12 degrees of freedom lm.complete: 3.243 on 17 degrees of freedom Multiple R-squared: lm.clean: 0.9421 lm.complete: 0.9136 > plot(fm2) > > > # Name the models in the fit.models object. > > fm3 <- fit.models(c(Robust = "rlm", "Least Squares" = "lm"), + stack.loss ~ ., data = stackloss) > > fm4 <- fit.models(Clean = lm.clean, Complete = lm.complete) > > > > cleanEx() detaching ‘package:MASS’ > nameEx("plot.glmfm") > ### * plot.glmfm > > flush(stderr()); flush(stdout()) > > ### Name: plot.glmfm > ### Title: Comparison Diagnostic Plots for Generalized Linear Models > ### Aliases: plot.glmfm > ### Keywords: hplot methods > > ### ** Examples > > # From ?glm: > # A Gamma example, from McCullagh & Nelder (1989, pp. 300-2) > > 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), + lot2 = c(69,35,26,21,18,16,13,12,12)) > > lot1 <- glm(lot1 ~ log(u), data = clotting, family = Gamma) > lot2 <- glm(lot2 ~ log(u), data = clotting, family = Gamma) > > fm <- fit.models(lot1, lot2) > plot(fm) > > > > > cleanEx() > nameEx("plot.lmfm") > ### * plot.lmfm > > flush(stderr()); flush(stdout()) > > ### Name: plot.lmfm > ### Title: Comparison Diagnostic Plots for Linear Regression Models > ### Aliases: plot.lmfm > ### Keywords: hplot methods > > ### ** Examples > > data(stackloss) > stack.lm <- lm(stack.loss ~ ., data = stackloss) > stack.clean <- lm(stack.loss ~ ., data = stackloss, subset = 5:20) > fm <- fit.models(stack.clean, stack.lm) > plot(fm) > > > > cleanEx() > nameEx("summary.glmfm") > ### * summary.glmfm > > flush(stderr()); flush(stdout()) > > ### Name: summary.glmfm > ### Title: Comparison Summaries for Generalized Linear Models > ### Aliases: summary.glmfm > ### Keywords: methods regression > > ### ** Examples > > > # From ?glm: > # A Gamma example, from McCullagh & Nelder (1989, pp. 300-2) > > 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), + lot2 = c(69,35,26,21,18,16,13,12,12)) > > lot1 <- glm(lot1 ~ log(u), data = clotting, family = Gamma) > lot2 <- glm(lot2 ~ log(u), data = clotting, family = Gamma) > > fm <- fit.models(lot1, lot2) > summary(fm) Calls: lot1: glm(formula = lot1 ~ log(u), family = Gamma, data = clotting) lot2: glm(formula = lot2 ~ log(u), family = Gamma, data = clotting) Deviance Residuals: Min 1Q Median 3Q Max lot1: -0.04008 -0.03756 -0.02637 0.02905 0.08641 lot2: -0.05574 -0.02925 0.01030 0.01714 0.06372 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept): lot1: -0.0165544 0.0009275 -17.85 4.28e-07 *** lot2: -0.0239085 0.0013265 -18.02 4.00e-07 *** log(u): lot1: 0.0153431 0.0004150 36.98 2.75e-09 *** lot2: 0.0235992 0.0005768 40.91 1.36e-09 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Null deviance: lot1: 3.513 on 8 degrees of freedom lot2: 3.119 on 8 degrees of freedom Residual deviance: lot1: 0.01673 on 7 degrees of freedom lot2: 0.01267 on 7 degrees of freedom > > > > cleanEx() > nameEx("summary.lmfm") > ### * summary.lmfm > > flush(stderr()); flush(stdout()) > > ### Name: summary.lmfm > ### Title: Comparison Summaries for Linear Regression Models > ### Aliases: summary.lmfm > ### Keywords: methods regression > > ### ** Examples > > > data(stackloss) > m1 <- lm(stack.loss ~ ., data = stackloss) > m2 <- lm(stack.loss ~ . - Acid.Conc., data = stackloss) > > fm <- fit.models(m1, m2) > print(fm.sum <- summary(fm)) Calls: m1: lm(formula = stack.loss ~ ., data = stackloss) m2: lm(formula = stack.loss ~ . - Acid.Conc., data = stackloss) Residual Statistics: Min 1Q Median 3Q Max m1: -7.238 -1.712 -0.4551 2.361 5.698 m2: -7.529 -1.750 0.1894 2.116 5.659 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept): m1: -39.9197 11.8960 -3.356 0.00375 ** m2: -50.3588 5.1383 -9.801 1.22e-08 *** Air.Flow: m1: 0.7156 0.1349 5.307 5.80e-05 *** m2: 0.6712 0.1267 5.298 4.90e-05 *** Water.Temp: m1: 1.2953 0.3680 3.520 0.00263 ** m2: 1.2954 0.3675 3.525 0.00242 ** Acid.Conc.: m1: -0.1521 0.1563 -0.973 0.34405 m2: --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual Scale Estimates: m1: 3.243 on 17 degrees of freedom m2: 3.239 on 18 degrees of freedom Multiple R-squared: m1: 0.9136 m2: 0.9088 > > > > ### *