[R-sig-Geo] Universal kriging with geoR
GEMA FERNANDEZ-AVILES CALDERON
Gema.FAviles at uclm.es
Sat Oct 3 09:45:18 CEST 2015
Dear list,
I have a computational error and I can not found the solution...
I would like to perform an Universal Kriging with geoR. I have a geodata object: log(price), long, lat and pollution, but 'krige.conv' and 'ksline' functions give me the same error: system is computationally singular.
Any ideas will be appreciated.
Thanks in advance,
Gema
PS: I can send you the data to run the code
############################################################################
# read the data and create a geodata object
attach(Datos)
bordes.munimadrid=read.table("MuniMadrid.txt")
coord=cbind(long,lat)
uk.vivi<-cbind(coord , log(Datos$precio.house.x), Mal_olor )
obj.uk.vivi<-as.geodata(obj=uk.vivi, coords.col = 1:2, data.col = 3,
covar.col = 4 ,covar.names = "Pollution" )
summary(obj.uk.vivi)
#Number of data points: 300
#
#Coordinates summary
# long lat
#min 433426 4466197
#max 451184 4484681
#
#Distance summary
# min max
# 19.18 20836.71
#
#Data summary
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 6.91 7.94 8.19 8.16 8.43 9.28
#
#Covariates summary
# Mal_olor
# Min. :0.080
# 1st Qu.:0.210
# Median :0.260
# Mean :0.281
# 3rd Qu.:0.330
# Max. :0.720
## I woulk like to use this spatial trend but UK doesn't run
sp.tren.rp=trend.spatial("1st", obj.uk.vivi, add=~Mal_olor)
# Universal kriging with geoR() first option
loci <- expand.grid(seq(424854, 456141, l = 101), seq(4462788, 4499622, l = 101))
UK.krig.viviendas <- krige.conv(obj.uk.vivi, loc = loci, borders = bordes.munimadrid,
krige = krige.control(type.krige = "ok", cov.model = "gau",
cov.pars = c(0.06, 3000), nug = 0.05, trend.l = "1st", trend.d ="1st") )
krige.conv: results will be returned only for prediction locations inside the borders
krige.conv: model with mean given by a 1st order polynomial on the coordinates
Error in solve.default(ttivtt, crossprod(ivtt, as.vector(data))) :
sistema es computacionalmente singular: número de condición recíproco = 6.8379e-20
# Universal kriging with geoR() second option
uk.2= ksline(obj.uk.vivi, coords = obj.uk.vivi$coords, data = obj.uk.vivi$data,
loc = loci, borders = bordes.munimadrid,
cov.model = "gau", cov.pars=c(0.06, 3000), nug = 0.05,
lambda = 1, m0 = "kt", nwin = "full",
trend = 1, d = 2 )
ksline: results will be returned only for prediction locations inside the borders
Error in solve.default(crossprod(xmat, iv) %*% xmat) :
sistema es computacionalmente singular: número de condición recíproco = 6.8379e-20
############################################################################
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list