Вернуть глобальный R2 географически взвешенной регрессии (GWR) в R
Я провел географически взвешенную регрессию (GWR) в R
с использованием spgwr
библиотека и теперь я хотел бы вернуть квази-глобальный R2 (подходят модели). Я копался в результатах с summary(gwr_model)
но я не нашел способ извлечь это значение. Любая идея?
Воспроизводимый пример
library(spgwr)
# load data
data(columbus)
# calculate Optimal kernel bandwidth
col.bw <- gwr.sel(crime ~ income + housing, data=columbus, coords=cbind(columbus$x, columbus$y))
# run GWR
gwr_model <- gwr(crime ~ income + housing, data=columbus,
coords=cbind(columbus$x, columbus$y), bandwidth=col.bw, hatmatrix=TRUE)
# get global coefficients
gwr_model$lm$coefficients
# print results. It shows the Quasi-global R2: 0.9071
gwr_model
#> Call:
#> gwr(formula = crime ~ income + housing, data = columbus, coords = cbind(columbus$x,
#> columbus$y), bandwidth = col.bw, hatmatrix = TRUE)
#> Kernel function: gwr.Gauss
#> Fixed bandwidth: 2.275
#> Summary of GWR coefficient estimates at data points:
#> Min. 1st Qu. Median 3rd Qu. Max. Global
#> X.Intercept. 23.2332 54.1252 63.9024 68.7564 80.9009 68.62
#> income -3.1307 -1.9129 -0.9844 -0.3686 1.2911 -1.60
#> housing -1.0528 -0.3767 -0.0974 0.0301 0.7946 -0.27
#> Number of data points: 49
#> Effective number of parameters (residual: 2traceS - traceS'S): 29.62
#> Effective degrees of freedom (residual: 2traceS - traceS'S): 19.38
#> Sigma (residual: 2traceS - traceS'S): 8.027
#> Effective number of parameters (model: traceS): 23.93
#> Effective degrees of freedom (model: traceS): 25.07
#> Sigma (model: traceS): 7.058
#> Sigma (ML): 5.049
#> AICc (GWR p. 61, eq 2.33; p. 96, eq. 4.21): 403.6
#> AIC (GWR p. 96, eq. 4.22): 321.7
#> Residual sum of squares: 1249
#> Quasi-global R2: 0.9071
1 ответ
Решение
Если вам нужно получить "Quasi-global R2", исходный код показывает, что его можно, по крайней мере, вычислить.
qGlobalR2 <- (1 - (gwr_model$results$rss/gwr_model$gTSS))