On Jul 4, 2009, at 6:15 PM, sjkimble wrote:
R Help:
Another question:
My data are:
x.crd y.crd A p
1 361762 1034052 3.414 0
2 361763 1034071 94.169 0
3 370325 1027277 127.642 1
4 370416 1027166 127.961 0
5 370471 1027148 1804.846 1
6 369050 1031312 1790.493 0
7 370799 1026557 103.994 0
8 370908 1026354 199.103 0
9 361562 1034311 2047.637 0
10 365437 1022188 1622678.961 0
11 347047 1025334 21.169 0
12 349186 1024441 408556.801 0
and the code, complete with error message, is:
amphimedon_compressa<-read.table(file.choose(),header=T)
attach(amphimedon_compressa)
d<-dist(cbind(x.crd,y.crd))
alpha<-1
edis<-as.matrix(exp(-alpha*d))
edis<-sweep(edis,2,A,"*")
S<-rowSums(edis[,p>0])
mod<-glm(p~offset(2*log(S))+log(A),family=binomial)
Error: NA/NaN/Inf in foreign function call (arg 4)
R Help tells me that argument 4 for glm is "weights an optional
vector of
‘prior weights’ to be used in the fitting process. Should be NULL or a
numeric vector." I am unsure why this optional vector needs to
employed and
how to correct the NA/NaN/Inf error if in fact it is necessary.
It is not the reason for your error; weights do not need to be
employed. When I look at the object S, I see about half of them are
zeroes. The "expectation" of a binomial model is for the LHS of the
formulat to be either a 1/0 vector or something of the form
cbind(events, non_events). You have satisfied that expectation with p
but there are only 2 such cases. It seems unreasonable to my thinking
to expect that a logistic regression model can deliver sensible output
from only 2 events. And that holds doubly (or perhaps infinitely?)
true when you are starting out with half of your covariates equal to
log(0) = -Inf.
--
DW
Details:
Reference: Incidence Function Model in R, J Oksanen, 2004, available
at:
cc.oulu.fi/~jarioksa/opetus/openmeta/metafit.pdf
OS: Mac OS 10.5.7
R version: 2.9.0
GUI: 1.28 Tiger build 32-bit
seesionInfo output:
Error in system.file(package = pkg, lib.loc = lib.loc) :
'package' must be of length 1
In addition: Warning messages:
1: In if (pkg == "base") pkgpath <- file.path(.Library, "base") else
if
((envname <- paste("package:", :
the condition has length > 1 and only the first element will be used
2: In if ((envname <- paste("package:", pkg, sep = "")) %in%
search()) { :
the condition has length > 1 and only the first element will be used
3: In if (file.access(file.path(lib, pkg), 5) == 0L) { :
the condition has length > 1 and only the first element will be used
Thanks,
Steve Kimble
Department of Forestry and Natural Resources
Purdue University
West Lafayette, IN 47907
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.