6.4 一般化線形モデルの構築

ore.glm関数は、ore.frameオブジェクト内のデータに対して一般化線形モデルを適合します。

この関数は、Fisherスコアリングの繰返し加重最小二乗(IRLS)アルゴリズムを使用します。適切ではない係数推定の選択を防ぐ必要がある従来のステップのかわりに、ore.glmは行検索を使用して、繰返しごとに新しい係数推定を選択し、式(1 - alpha) * old + alpha * suggestedを使用して現在の係数推定から開始し、Fisherスコアリングで提案される推定に移動します(ここでalphaは[0, 2]です)。interp制御引数がTRUEの場合、逸脱度は3次スプライン補間によって概算されます。FALSEの場合、逸脱度はフォローアップ・データ・スキャンを使用して計算されます。

各繰返しは、2つまたは3つの埋込みRマップ/リデュース操作で構成されますが、それは、IRLS操作、初期行検索操作およびinterp = FALSEの場合は、オプションのフォローアップ行検索操作です。ore.lmを使用すると、IRLSマップ操作によって、QR分解(update = "qr"の場合)、クロス積(model.matrixupdate = "crossprod"の場合)またはsparse.model.matrix (引数sparse = TRUEの場合)が作成され、IRLSリデュース操作ブロックは、それらのQR分解またはクロス積行列を更新します。アルゴリズムが収束するか、最大繰返し数に到達したら、最後の埋込みRマップ/リデュース操作が使用され、完全なモデル水準統計が生成されます。

ore.glm関数は、ore.glmオブジェクトを返します。

ore.glm関数の引数の詳細は、help(ore.glm)をコールしてください。

例6-4 ore.glm関数の使用方法

この例では、rpartパッケージをロードした後、プロキシore.frameオブジェクトのKYPHOSISが含まれている一時データベース表にkyphosisデータセットをプッシュします。この例では、ore.glm関数およびglm関数を使用して一般化線形モデルをそれぞれ構築し、このモデルでsummary関数をコールします。

# Load the rpart library to get the kyphosis and solder data sets.
library(rpart)
# Logistic regression
KYPHOSIS <- ore.push(kyphosis)
kyphFit1 <- ore.glm(Kyphosis ~ ., data = KYPHOSIS, family = binomial())
kyphFit2 <- glm(Kyphosis ~ ., data = kyphosis, family = binomial())
summary(kyphFit1)
summary(kyphFit2)
例6-4のリスト
R> # Load the rpart library to get the kyphosis and solder data sets.
R> library(rpart)

R> # Logistic regression
R> KYPHOSIS <- ore.push(kyphosis)
R> kyphFit1 <- ore.glm(Kyphosis ~ ., data = KYPHOSIS, family = binomial())
R> kyphFit2 <- glm(Kyphosis ~ ., data = kyphosis, family = binomial())
R> summary(kyphFit1)
 
Call:
ore.glm(formula = Kyphosis ~ ., data = KYPHOSIS, family = binomial())
 
Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.3124  -0.5484  -0.3632  -0.1659   2.1613  
 
Coefficients:
             Estimate Std. Error z value Pr(>|z|)   
(Intercept) -2.036934   1.449622  -1.405  0.15998   
Age          0.010930   0.006447   1.696  0.08997 . 
Number       0.410601   0.224870   1.826  0.06786 . 
Start       -0.206510   0.067700  -3.050  0.00229 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
 
(Dispersion parameter for binomial family taken to be 1)
 
    Null deviance: 83.234  on 80  degrees of freedom
Residual deviance: 61.380  on 77  degrees of freedom
AIC: 69.38
 
Number of Fisher Scoring iterations: 4

R> summary(kyphFit2)
 
Call:
glm(formula = Kyphosis ~ ., family = binomial(), data = kyphosis)
 
Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.3124  -0.5484  -0.3632  -0.1659   2.1613  
 
Coefficients:
             Estimate Std. Error z value Pr(>|z|)   
(Intercept) -2.036934   1.449575  -1.405  0.15996   
Age          0.010930   0.006446   1.696  0.08996 . 
Number       0.410601   0.224861   1.826  0.06785 . 
Start       -0.206510   0.067699  -3.050  0.00229 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
 
(Dispersion parameter for binomial family taken to be 1)
 
    Null deviance: 83.234  on 80  degrees of freedom
Residual deviance: 61.380  on 77  degrees of freedom
AIC: 69.38
 
Number of Fisher Scoring iterations: 5

# Poisson regression
R> SOLDER <- ore.push(solder)
R> solFit1 <- ore.glm(skips ~ ., data = SOLDER, family = poisson())
R> solFit2 <- glm(skips ~ ., data = solder, family = poisson())
R> summary(solFit1)
 
Call:
ore.glm(formula = skips ~ ., data = SOLDER, family = poisson())
 
Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.4105  -1.0897  -0.4408   0.6406   3.7927  
 
Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -1.25506    0.10069 -12.465  < 2e-16 ***
OpeningM     0.25851    0.06656   3.884 0.000103 ***
OpeningS     1.89349    0.05363  35.305  < 2e-16 ***
SolderThin   1.09973    0.03864  28.465  < 2e-16 ***
MaskA3       0.42819    0.07547   5.674 1.40e-08 ***
MaskB3       1.20225    0.06697  17.953  < 2e-16 ***
MaskB6       1.86648    0.06310  29.580  < 2e-16 ***
PadTypeD6   -0.36865    0.07138  -5.164 2.41e-07 ***
PadTypeD7   -0.09844    0.06620  -1.487 0.137001    
PadTypeL4    0.26236    0.06071   4.321 1.55e-05 ***
PadTypeL6   -0.66845    0.07841  -8.525  < 2e-16 ***
PadTypeL7   -0.49021    0.07406  -6.619 3.61e-11 ***
PadTypeL8   -0.27115    0.06939  -3.907 9.33e-05 ***
PadTypeL9   -0.63645    0.07759  -8.203 2.35e-16 ***
PadTypeW4   -0.11000    0.06640  -1.657 0.097591 .  
PadTypeW9   -1.43759    0.10419 -13.798  < 2e-16 ***
Panel        0.11818    0.02056   5.749 8.97e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
 
(Dispersion parameter for poisson family taken to be 1)
 
    Null deviance: 6855.7  on 719  degrees of freedom
Residual deviance: 1165.4  on 703  degrees of freedom
AIC: 2781.6
 
Number of Fisher Scoring iterations: 4