[fbf06f]: / partyMod / vignettes / MOB.Rout.save

Download this file

266 lines (205 with data), 8.4 kB

> require("party")
Loading required package: party
Loading required package: grid
Loading required package: zoo

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

    as.Date, as.Date.numeric

Loading required package: sandwich
Loading required package: strucchange
Loading required package: modeltools
Loading required package: stats4

> options(useFancyQuotes = FALSE)

> library("party")

> data("BostonHousing", package = "mlbench")

> BostonHousing$lstat <- log(BostonHousing$lstat)

> BostonHousing$rm <- BostonHousing$rm^2

> BostonHousing$chas <- factor(BostonHousing$chas, levels = 0:1, 
+     labels = c("no", "yes"))

> BostonHousing$rad <- factor(BostonHousing$rad, ordered = TRUE)

> ctrl <- mob_control(alpha = 0.05, bonferroni = TRUE, 
+     minsplit = 40, objfun = deviance, verbose = TRUE)

> fmBH <- mob(medv ~ lstat + rm | zn + indus + chas + 
+     nox + age + dis + rad + tax + crim + b + ptratio, data = BostonHousing, 
+     control =  .... [TRUNCATED] 

-------------------------------------------
Fluctuation tests of splitting variables:
                    zn        indus         chas          nox          age
statistic 3.363356e+01 6.532322e+01 2.275635e+01 8.136281e+01 3.675850e+01
p.value   1.023987e-04 1.363602e-11 4.993053e-04 3.489797e-15 2.263798e-05
                   dis          rad          tax         crim            b
statistic 6.848533e+01 1.153641e+02 9.068440e+01 8.655065e+01 3.627629e+01
p.value   2.693904e-12 7.087680e-13 2.735524e-17 2.356348e-16 2.860686e-05
               ptratio
statistic 7.221524e+01
p.value   3.953623e-13

Best splitting variable: tax
Perform split? yes
-------------------------------------------

Node properties:
tax <= 432; criterion = 1, statistic = 115.364

-------------------------------------------
Fluctuation tests of splitting variables:
                    zn      indus      chas          nox        age
statistic 27.785009791 21.3329346 8.0272421 23.774323202 11.9204284
p.value    0.001494064  0.0285193 0.4005192  0.009518732  0.7666366
                   dis          rad          tax         crim         b
statistic 24.268011081 50.481593270 3.523250e+01 3.276813e+01 9.0363245
p.value    0.007601532  0.003437763 4.275527e-05 1.404487e-04 0.9871502
               ptratio
statistic 4.510680e+01
p.value   3.309747e-07

Best splitting variable: ptratio
Perform split? yes
-------------------------------------------

Node properties:
ptratio <= 15.2; criterion = 1, statistic = 50.482

-------------------------------------------
Fluctuation tests of splitting variables:
                    zn       indus        chas         nox         age
statistic 3.233350e+01 22.26864036 12.93407112 22.10510234 20.41295354
p.value   1.229678e-04  0.01504788  0.05259509  0.01622098  0.03499731
                 dis          rad          tax        crim         b
statistic 17.7204735 5.526565e+01 2.879128e+01 20.28503194 6.5549665
p.value    0.1091769 7.112214e-04 6.916307e-04  0.03706934 0.9999522
               ptratio
statistic 4.789850e+01
p.value   4.738855e-08

Best splitting variable: ptratio
Perform split? yes
-------------------------------------------

Node properties:
ptratio <= 19.6; criterion = 1, statistic = 55.266

-------------------------------------------
Fluctuation tests of splitting variables:
                 zn      indus      chas        nox       age        dis
statistic 14.971474 14.6477733 7.1172962 14.3455158 8.2176363 16.1112185
p.value    0.280361  0.3134649 0.5405005  0.3467974 0.9906672  0.1847818
                  rad          tax     crim         b    ptratio
statistic 43.17824350 3.447271e+01 9.340075 8.7773142 10.8469969
p.value    0.03281124 4.281939e-05 0.952996 0.9772696  0.8202694

Best splitting variable: tax
Perform split? yes
-------------------------------------------

Node properties:
tax <= 265; criterion = 1, statistic = 43.178

-------------------------------------------
Fluctuation tests of splitting variables:
                 zn     indus     chas       nox        age       dis
statistic 11.998039 7.3971233 7.227770 9.2936189 14.3023962 8.9239826
p.value    0.574642 0.9931875 0.522447 0.9119621  0.2886603 0.9389895
                 rad        tax       crim         b    ptratio
statistic 33.1746444 16.6666129 11.7143758 9.9050903 11.5927528
p.value    0.3926249  0.1206412  0.6153455 0.8539893  0.6328381

Best splitting variable: tax
Perform split? no
-------------------------------------------

-------------------------------------------
Fluctuation tests of splitting variables:
                  zn     indus         chas         nox       age        dis
statistic 10.9187926 9.0917078 2.754081e+01 17.39203006 4.6282349 11.9581600
p.value    0.7091039 0.9172303 4.987667e-05  0.08922543 0.9999992  0.5607267
                rad        tax     crim        b   ptratio
statistic 0.2557803 10.9076165 3.711175 3.158329 9.8865054
p.value   1.0000000  0.7106612 1.000000 1.000000 0.8410064

Best splitting variable: chas
Perform split? yes
-------------------------------------------

Splitting factor variable, objective function: 
 no 
Inf 

No admissable split found in 'chas'

> fmBH
1) tax <= 432; criterion = 1, statistic = 115.364
  2) ptratio <= 15.2; criterion = 1, statistic = 50.482
    3)*  weights = 72 
Terminal node model
Linear model with coefficients:
(Intercept)        lstat           rm  
     9.2349      -4.9391       0.6859  

  2) ptratio > 15.2
    4) ptratio <= 19.6; criterion = 1, statistic = 55.266
      5) tax <= 265; criterion = 1, statistic = 43.178
        6)*  weights = 63 
Terminal node model
Linear model with coefficients:
(Intercept)        lstat           rm  
     3.9637      -2.7663       0.6881  

      5) tax > 265
        7)*  weights = 162 
Terminal node model
Linear model with coefficients:
(Intercept)        lstat           rm  
    -1.7984      -0.2677       0.6539  

    4) ptratio > 19.6
      8)*  weights = 56 
Terminal node model
Linear model with coefficients:
(Intercept)        lstat           rm  
    17.5865      -4.6190       0.3387  

1) tax > 432
  9)*  weights = 153 
Terminal node model
Linear model with coefficients:
(Intercept)        lstat           rm  
    68.2971     -16.3540      -0.1478  


> plot(fmBH)

> coef(fmBH)
  (Intercept)      lstat         rm
3    9.234880  -4.939096  0.6859136
6    3.963720  -2.766287  0.6881287
7   -1.798387  -0.267707  0.6538864
8   17.586490  -4.618975  0.3386744
9   68.297087 -16.354006 -0.1477939

> summary(fmBH, node = 7)

Call:
NULL

Weighted Residuals:
   Min     1Q Median     3Q    Max 
-9.092  0.000  0.000  0.000 10.236 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.79839    2.84702  -0.632    0.529    
lstat       -0.26771    0.69581  -0.385    0.701    
rm           0.65389    0.03757  17.404   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.652 on 159 degrees of freedom
Multiple R-squared:  0.8173,	Adjusted R-squared:  0.815 
F-statistic: 355.6 on 2 and 159 DF,  p-value: < 2.2e-16


> sctest(fmBH, node = 7)
                 zn     indus     chas       nox        age       dis
statistic 11.998039 7.3971233 7.227770 9.2936189 14.3023962 8.9239826
p.value    0.574642 0.9931875 0.522447 0.9119621  0.2886603 0.9389895
                 rad        tax       crim         b    ptratio
statistic 33.1746444 16.6666129 11.7143758 9.9050903 11.5927528
p.value    0.3926249  0.1206412  0.6153455 0.8539893  0.6328381

> mean(residuals(fmBH)^2)
[1] 12.03518

> logLik(fmBH)
'log Lik.' -1310.506 (df=24)

> AIC(fmBH)
[1] 2669.013

> nt <- NROW(coef(fmBH))

> nk <- NCOL(coef(fmBH))

> data("PimaIndiansDiabetes2", package = "mlbench")

> PimaIndiansDiabetes <- na.omit(PimaIndiansDiabetes2[, 
+     -c(4, 5)])

> fmPID <- mob(diabetes ~ glucose | pregnant + pressure + 
+     mass + pedigree + age, data = PimaIndiansDiabetes, model = glinearModel, 
+     famil .... [TRUNCATED] 

> plot(fmPID)
Loading required package: vcd

> coef(fmPID)
  (Intercept)    glucose
2  -10.999447 0.06456780
4   -6.573067 0.04504490
5   -3.318569 0.02748038

> exp(coef(fmPID)[, 2])
       2        4        5 
1.066698 1.046075 1.027861 

> risk <- round(100 * (exp(coef(fmPID)[, 2]) - 1), digits = 1)

 *** Run successfully completed ***
> proc.time()
   user  system elapsed 
  3.548   0.080   3.636