2015-05-11 53 views
-5

我有一個非常有趣的問題,這給我一個艱難的時間。我爲一家保險公司工作,我們試圖在發生恐怖襲擊時爲我們的曝光建模。經度/緯度座標爲R的突變建模

下面是一些樣本數據:

df <- data.frame(long=c(-74.01, -73.86, -77.61, -73.99), 
      lat=c(40.71,40.94,43.16,40.69), 
      limit=c(10,20,30,40)) 

假設的例子:一個恐怖分子在我們的成員之一,在座標(長= -74.01,LAT = 40.71)爆炸炸彈。如果你不喜歡那個例子,那麼假裝它是一場自然災難。我很想知道我們整本書的曝光是什麼。如果炸彈在一個地點造成1000萬美元的損失,它會在我們的其他地點造成多少傷害?基本上,我想要一個可以鍵入城市名稱或地標或座標對的函數(如ggmap和dismo中的地理編碼函數),並確定我們公司的曝光度。我輸入了經度-75,緯度40,以及一定程度的炸彈或災難性事件,並且該函數發現了我們公司可能遭受的一系列可能的損失。

我希望這是有道理的。謝謝你的幫助。

+3

有很多的信息在這裏失蹤...例如你還沒有告訴過我們一個地方的損壞與其他地方的損壞之間的關係......或者你只是說你想爲給定的一對座標返回「極限」? – jbaums

+0

好點。我會說,距離中心廣場每英里遠的地方都會造成損害:一個事件發生在該會員的地址正好會導致1000萬美元的損失,而同樣的事件發生在一英里以外將造成1000萬美元的平方根(3.16美元百萬),同樣的事件會在兩英里之外造成178萬美元的損失。 –

+0

我的錯誤使問題過於寬泛。無論如何,jbaums的答案就是我所期待的。 –

回答

1

下面是我認爲你正在嘗試做的事情的一種方法。

d <- data.frame(long=c(-74.01, -73.86, -77.61, -73.99), 
       lat=c(40.71, 40.94, 43.16, 40.69), 
       limit=c(10, 20, 30, 40)) 

library(sp) 
# Coerce d to SpatialPointsDataFrame for ease of distance calculation 
coordinates(d) <- ~long+lat 

claim <- function(long, lat, damage, member_db) { 
    require(sp) # for spDistsN1 
    dist_miles <- spDistsN1(member_db, c(long, lat), longlat=TRUE) * 0.62137 
    # great circle distance in kilometres, converted to miles 
    pmin(member_db$limit, damage^(1/(2^dist_miles))) 
    # return member limit, or damage, whichever is lower 
} 

claim(-75, 40, 15, d) 
## [1] 1 1 1 1 

claim(-74.01, 40.71, 15, d) 
## [1] 10.000000 1.000013 1.000000 2.258128 

請注意,您所選擇的功能,即cost = damage^(1/2^distance),意味着每個成員的最低成本爲1,因爲damage^0等於1(這似乎對保險公司非常昂貴!)