1

私は大規模な 2 項データセットを使用して、国家間の関係をグラフ化しています。国家間の「外交距離」を示す R を使用してプロットを作成することが私の目標です: 彼らは友人ですか? 各観測はイベントであり、3 つの変数 (Actor1、Actor2、および 4 段階スケールでのそれらのアクションの性質) が、私が知る必要があることを教えてくれます。(4 段階評価の簡単な説明: 1 は友好的、2 は非常に友好的、3 は敵対的、4 は非常に敵対的です。) 私のデータは次のようになります。

# Replicate data
C <- c("AFG", "AFR", "AGO", "AIA", "ALB", "ARE", "ARG", "ARM", 
"ASA", "ATG", "AUS", "AUT", "AZE", "BDI", "BEL", "BEN", "BFA", 
"BGD", "BGR", "BHR", "BHS", "BLR", "BLZ", "BMU", "BOL", "BRA", 
"BRB", "BRN", "BTN", "BWA", "CAF", "CAN", "CAS", "CHE", "CHL", 
"CHN", "CIV", "CMR", "COD", "COG", "COK", "COL", "COM", "CPV", 
"CRI", "CUB", "CYM", "CYP", "CZE", "DEU", "DJI", "DMA", "DNK", 
"DOM", "DZA", "EAF", "ECU", "EGY", "ERI", "ESP", "EST", "ETH", 
"EUR", "FIN", "FJI", "FRA", "FSM", "GAB", "GBR", "GEO", "GHA", 
"GIN", "GMB", "GNB", "GNQ", "GRC", "GRD", "GTM", "GUY", "HND", 
"HRV", "HTI", "HUN", "IDN", "IND", "IRL", "IRN", "IRQ", "ISL", 
"ISR", "ITA", "JAM", "JOR", "JPN", "KAZ", "KEN", "KGZ", "KHM", 
"KIR", "KNA", "KOR", "KWT", "LAM", "LAO", "LBN", "LBR", "LBY", 
"LCA", "LIE", "LKA", "LSO", "LTU", "LUX", "LVA", "MAC", "MAR", 
"MCO", "MDA", "MDG", "MDV", "MEA", "MEX", "MHL", "MKD", "MLI", 
"MLT", "MMR", "MNG", "MOZ", "MRT", "MUS", "MWI", "MYS", "NAM", 
"NER", "NGA", "NIC", "NLD", "NMR", "NOR", "NPL", "NRU", "NZL", 
"OMN", "PAK", "PAN", "PER", "PGS", "PHL", "PLW", "PNG", "POL", 
"PRK", "PRT", "PRY", "PSE", "QAT", "ROM", "RUS", "RWA", "SAF", 
"SAS", "SAU", "SDN", "SEA", "SEN", "SGP", "SLB", "SLE", "SLV", 
"SMR", "SOM", "SRB", "STP", "SUR", "SVK", "SWE", "SWZ", "SYC", 
"SYR", "TCD", "TGO", "THA", "TJK", "TKM", "TMP", "TON", "TTO", 
"TUN", "TUR", "TUV", "TZA", "UGA", "UKR", "URY", "USA", "UZB", 
"VAT", "VCT", "VEN", "VNM", "VUT", "WAF", "WSM", "WST", "YEM", 
"ZAF", "ZMB", "ZWE")
ActionClasses <- c(1,2,3,4)

data = data.frame(Actor1=sample(C, size = 1000, replace = TRUE), Actor2=sample(C, size = 1000, replace = TRUE), Action = sample(ActionClasses, size = 1000, replace = T))

まず、次のコードを使用して関係をグラフ化する必要があります。

Interactions <- function(d) {
  y <- Month[(Month$Actor1CountryCode == d),]

    lapply(C, function(b) {
    z <- y[(y$Actor2CountryCode == b),]

     a <-sapply(1:4, function(Y) {
     sum(z$QuadClass == Y)})
     a <- rbind(a)
    row.names(a) <- paste(d,"v",b, sep = "")
    colnames(a) <- c("VerbCoop", "MatCoop", "VerbConf", "MatConf")
     q <<- rbind(q,a)
    })
  }

注: このコードは重複を許可します。これは後で修正します。

ただし、プロットにどのようにアプローチする必要があるかはわかりません。私は、良好な関係 ('VerbCoop' と 'MatCoop' で非常に高いスコア) を持つ国が互いに近くなり、悪い関係を持つ国が互いに遠く離れることを望んでいます。これにより、互いに好きな国のグループが互いに分離されたクラスターのようなマップが作成されます。これにどのようにアプローチすればよいですか?

4

0 に答える 0