Расчет корреляции между 3 переменными в R - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в R и могу использовать некоторую помощь, пытаясь вычислить корреляцию между тремя переменными.То, что я пытаюсь сделать, это посмотреть, есть ли корреляция между показателем благополучия и весом (числом людей), переходящим из одного состояния в другое.Столбец «от» - это состояние, из которого перемещаются люди, а столбец «в» - это место, куда они перемещаются.Вес - это количество людей, которые перешли из этого состояния в новое.Мне нужно рассчитать, существует ли корреляция между тем, куда люди движутся, и индексом благосостояния состояния «к», в которое они движутся.Я надеюсь, что это имело смысл, но если есть какие-то вопросы, я могу попытаться объяснить больше.Я просмотрел некоторые онлайн-форумы и не могу найти проблему, похожую на мою, и мне нужна помощь в части кодирования.

Вот структура ссылок:

structure(list(from = c("Alabama", "Alabama", "Alabama", "Alabama", "Alabama", "Alabama"), to = c("Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut"), weight = c(423L, 894L, 2057L, 3045L, 2328L, 1102L)), row.names = c(NA, 6L), class = "data.frame")

Вот структура узлов:

structure(list(State = c("Hawaii", "Alaska", "South Dakota", "Maine", "Colorado", "Vermont"), Well.Being.Score = c(65.2, 64, 63.7, 63.6, 63.5, 63.5), Social.Rank = c(46L, 1L, 29L, 18L, 21L, 5L), Financial.Rank = c(1L, 2L, 3L, 10L, 19L, 39L)), row.names = c(NA, 6L), class = "data.frame")

1 Ответ

0 голосов
/ 03 декабря 2018

Я бы сказал, что есть несколько пар переменных, коэффициенты корреляции которых здесь интересны.В частности:

  • вес в зависимости от состояния здоровья (WB) состояний "to",
  • вес в зависимости от WB состояний "from",
  • WBот "до" против "от",
  • вес против (WB от "до" - WB от "от").

Итак, мы можем начать с двойного слияния

m <- merge(merge(links, nodes, by.x = "to", by.y = "State"), 
           nodes, by.x = "from", by.y = "State", suff = c(".to", ".from"))

, где теперь у нас есть все переменные, представляющие интерес, в одном месте, и

with(m, cor(cbind(weight, WB.from = Well.Being.Score.from, 
                  WB.to = Well.Being.Score.to,
                  WB.diff = Well.Being.Score.to - Well.Being.Score.from)))

должен возвращать интересную матрицу корреляции (здесь нет выходных данных, так как слишком мало данных).

...