R Code yang digunakan diambil dari buku (Millar, 2011, hal 178-180)

library(writexl)
library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(gnm)

Input data

Data yang digunakan adalah data proporsi dauh yang terserang bercak (Millar, 2011 hal 177). Data diukur pada 10 varitas Barley di setiap 9 lokasi.

BarleyTable=matrix(barley$y,ncol=10,
                  dimnames=list(paste("site",1:9,sep=""),paste("vrty",1:10,sep="")));BarleyTable
##        vrty1  vrty2  vrty3  vrty4 vrty5 vrty6 vrty7 vrty8 vrty9 vrty10
## site1 0.0005 0.0150 0.0100 0.2000 0.250 0.080 0.050  0.05 0.050  0.250
## site2 0.0000 0.0000 0.1270 0.3750 0.550 0.165 0.050  0.50 0.050  0.425
## site3 0.0000 0.0005 0.0125 0.2625 0.050 0.295 0.100  0.10 0.250  0.500
## site4 0.0010 0.0005 0.0125 0.0250 0.400 0.200 0.050  0.50 0.750  0.375
## site5 0.0025 0.0030 0.0250 0.0050 0.055 0.435 0.500  0.25 0.500  0.950
## site6 0.0005 0.0075 0.1660 0.0001 0.010 0.010 0.750  0.50 0.750  0.625
## site7 0.0050 0.0030 0.0250 0.0300 0.060 0.050 0.050  0.75 0.750  0.950
## site8 0.0130 0.0300 0.0250 0.0250 0.011 0.050 0.001  0.05 0.750  0.950
## site9 0.0150 0.0750 0.0000 0.0001 0.025 0.050 0.050  0.10 0.175  0.950

Quasi-Binomial

Pendugaan dilakukan dengan menggunakan model Quasi-likelihood

quasibin.fit=glm(y~variety+site,family=quasibinomial,data=barley)

Hasil pendugaan

summary(quasibin.fit)
## 
## Call:
## glm(formula = y ~ variety + site, family = quasibinomial, data = barley)
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -8.0546     1.4219  -5.665 2.84e-07 ***
## variety2      0.1501     0.7237   0.207 0.836289    
## variety3      0.6895     0.6724   1.025 0.308587    
## variety4      1.0482     0.6494   1.614 0.110910    
## variety5      1.6147     0.6257   2.581 0.011895 *  
## variety6      2.3712     0.6090   3.893 0.000219 ***
## variety7      2.5705     0.6065   4.238 6.58e-05 ***
## variety8      3.3420     0.6015   5.556 4.39e-07 ***
## variety9      3.5000     0.6013   5.820 1.51e-07 ***
## varietyX      4.2530     0.6042   7.039 9.38e-10 ***
## siteB         1.6391     1.4433   1.136 0.259870    
## siteC         3.3265     1.3492   2.466 0.016066 *  
## siteD         3.5822     1.3444   2.664 0.009510 ** 
## siteE         3.5831     1.3444   2.665 0.009493 ** 
## siteF         3.8933     1.3402   2.905 0.004875 ** 
## siteG         4.7300     1.3348   3.544 0.000697 ***
## siteH         5.5227     1.3346   4.138 9.38e-05 ***
## siteI         6.7946     1.3407   5.068 3.00e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for quasibinomial family taken to be 0.08877777)
## 
##     Null deviance: 40.803  on 89  degrees of freedom
## Residual deviance:  6.126  on 72  degrees of freedom
## AIC: NA
## 
## Number of Fisher Scoring iterations: 8

Koefisien dugaan dari model quasi-binomial tersebut identik dengan koefisien yang diperoleh dari regresi logistik binomial biasa. namun, penduga parameter dispersi yang diperoleh adalah 0.0888. Artinya bahwa model quasi-binomial mengasumsikan var (Yij) = 0.0888 pij(1-pij) dan galat baku telah diskalakan dengan faktor (0.0888)^(1/2) dibandingkan dengan yang diperoleh dari regresi logistik binomial.

membuat plot deviance residuals vs linear predictors

#Use which=1 for a plot of deviance resids vs linear predictors
plot(quasibin.fit,which=1)

plot residual dari model quasi-binomial menunjukkan peningkatan yang jelas pada besarnya sisaan dengan peningkatan nilai prediktor liniernya, diikuti dengan kemungkinan penurunan untuk nilai prediktor linier yang lebih dari 0. ini menunjukkan bahwa mungkin ada lebih banyak keragaman dalam data untuk nilai prediktor linier mendekati 0 (yang sesuai dengan p mendekati 0.5) daripada untuk nilai ekstrim prediktor linier (yang sesuai dengan p mendekati 0 atau 1).

Menggunakan Wedderburn (1974):

BarleyVar = list(
  varfun = function(mu) (mu*(1-mu))^2,
  validmu = function(mu) all(mu>0) && all(mu < 1),
  dev.resids = function(y,mu,wt) wt * ((y-mu)^2)/(mu*(1-mu))^2,
  initialize = expression({
    n <- rep.int(1,nobs)
    mustart <- pmax(0.001, pmin(0.999, y)) }),
  name="(mu(1-mu))^2" )

model pendugaan

wedderburn.fit=glm(y~site+variety,
                   family=quasi(link="logit",variance=BarleyVar),
                   data=barley)
plot(wedderburn.fit,which=1)  # deviance residuals vs linear predictors

Hasil pendugaan

summary(wedderburn.fit)
## 
## Call:
## glm(formula = y ~ site + variety, family = quasi(link = "logit", 
##     variance = BarleyVar), data = barley)
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -7.92238    0.44465 -17.817  < 2e-16 ***
## siteB        1.38312    0.44465   3.111  0.00268 ** 
## siteC        3.86006    0.44465   8.681 8.20e-13 ***
## siteD        3.55700    0.44465   8.000 1.54e-11 ***
## siteE        4.10786    0.44465   9.239 7.53e-14 ***
## siteF        4.30536    0.44465   9.683 1.13e-14 ***
## siteG        4.91810    0.44465  11.061  < 2e-16 ***
## siteH        5.69489    0.44465  12.808  < 2e-16 ***
## siteI        7.06763    0.44465  15.895  < 2e-16 ***
## variety2    -0.46735    0.46870  -0.997  0.32204    
## variety3     0.07881    0.46870   0.168  0.86695    
## variety4     0.95408    0.46870   2.036  0.04547 *  
## variety5     1.35263    0.46870   2.886  0.00515 ** 
## variety6     1.32854    0.46870   2.835  0.00595 ** 
## variety7     2.34007    0.46870   4.993 4.01e-06 ***
## variety8     3.26258    0.46870   6.961 1.30e-09 ***
## variety9     3.13549    0.46870   6.690 4.10e-09 ***
## varietyX     3.88727    0.46870   8.294 4.34e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for quasi family taken to be 0.9885464)
## 
##     Null deviance: 252.155  on 89  degrees of freedom
## Residual deviance:  71.175  on 72  degrees of freedom
## AIC: NA
## 
## Number of Fisher Scoring iterations: 20

plot sisaan dari model quasi-likelihood Wedderburn menunjukkan peningkatan yang besar. deviasi sisaan sebesar 71.175 adalah statistik chi-square Person yang telah didefinisikan dalam BarleyVar, yang secara implisit mengasumsikan prediktor linier=1. deviasi sisaan ini secara kebetulan memberikan nilai yang sangat dekat dengan derajat bebas 72.

galat baku yang dihasilkan mengasumsikan parameter dispersi sebesar 71.175/72 ~ 0.989.