我一直在努力寻找一种方法来创建我的因变量的空间滞后项,并根据我数据中各国首都城市之间的距离加权。虽然权重可以基于不同的东西,但首都城市之间的距离是我感兴趣的(当然,首先我需要找到一种方法来创建一个空间效应变量然后滞后)。
因变量(DV)是从0到2的有序度量。
我的数据样本(如果可以提供任何帮助):
country year DV **spatial lag?**
USA 2000 NA
USA 2001 2
USA 2002 2
USA 2003 2
UK 2000 1
UK 2001 1
UK 2002 2
UK 2003 NA
我知道Stata有一个名为spmon的命令,可以很容易地在monadic数据中生成空间效果变量(单个单位不是dyads)。不幸的是,我没有Stata - 但我想在R中有办法做到这一点?
更新
我现在有坐标 - 以公里为单位的二元距离。请参阅下面的示例。
ida numb idb kmdist
USA 20 CAN 731
USA 31 BHM 1623
USA 40 CUB 1813
USA 41 HAI 2286
USA 42 DOM 2358
USA 51 JAM 2315
USA 52 TRI 3494
USA 53 BAR 3330
如何从上面的数据集生成空间延迟项(假设我的DV - Y - 在数据集中)
答案 0 :(得分:2)
w %*% x
的方差小于x
。library(data.table)
sp <- data.table(
location = letters[1:3]
,lat = c(20,40,60)
,lon = c(50,70,90)
)
sp
#> location lat lon
#> 1: a 20 50
#> 2: b 40 70
#> 3: c 60 90
library(tidyverse)
w_raw <-
sp %>%
dist(.$lat,.$lon,method = "euclidean", upper=TRUE) %>%
as.matrix()
#> Warning in dist(., .$lat, .$lon, method = "euclidean", upper = TRUE): 强制
#> 改变过程中产生了NA
w_raw
#> 1 2 3
#> 1 0.00000 34.64102 69.28203
#> 2 34.64102 0.00000 34.64102
#> 3 69.28203 34.64102 0.00000
w <- w_raw * (1/rowSums(w_raw))
x <- c(5,10,5)
w %*% x
#> [,1]
#> 1 6.666667
#> 2 5.000000
#> 3 6.666667
由reprex package(v0.2.1)于2018-12-18创建