haplo.glm(formula=formula(data), family=gaussian, data=sys.parent(),
weights, na.action="na.geno.keep", start=NULL,
locus.label=NA, control=haplo.glm.control(),
method="glm.fit", model=TRUE, x=FALSE, y=TRUE,
contrasts=NULL, ...)
For binomial family, the initialization of values gives warnings if non-integer number of successes, which is a concern in these models because of the weights of posterior probability of each haplotype pair per subject. We supress the warnings by defining a haplo.binomial family, which we use if family=binomial is used.
haplo.glm.control
,
haplo.em
,
haplo.model.frame
cat("FOR REGULAR USAGE, DO NOT DISCARD GENOTYPES WITH MISSING VALUES
")
cat("WE ONLY SUBSET BY keep HERE SO THE EXAMPLES RUN FASTER
")
data(hla.demo)
geno <- as.matrix(hla.demo[,c(17,18,21:24)])
keep <- !apply(is.na(geno) | geno==0, 1, any) # SKIP THESE THREE LINES
hla.demo <- hla.demo[keep,] # IN AN ANALYSIS
geno <- geno[keep,] #
attach(hla.demo)
label <-c("DQB","DRB","B")
y <- hla.demo$resp
y.bin <- 1*(hla.demo$resp.cat=="low")
# set up a genotype array as a model.matrix for inserting into data frame
# Note that hla.demo is a data.frame, and we need to subset to columns
# of interest. Also also need to convert to a matrix object, so that
# setupGeno can code alleles and convert geno to 'model.matrix' class.
geno <- setupGeno(geno, miss.val=c(0,NA))
# geno now has an attribute 'unique.alleles' which must be passed to
# haplo.glm as allele.lev=attributes(geno)$unique.alleles, see below
my.data <- data.frame(geno=geno, age=hla.demo$age, male=hla.demo$male,
y=y, y.bin=y.bin)
fit.gaus <- haplo.glm(y ~ male + geno, family = gaussian, na.action=
"na.geno.keep",allele.lev=attributes(geno)$unique.alleles,
data=my.data, locus.label=label,
control = haplo.glm.control(haplo.freq.min=0.02))
fit.gaus
Run the code above in your browser using DataLab