У меня есть два пиксельных изображения, которые я создал с помощью spatstat
, один из изображений плотности, созданных набором точек (с использованием функции density.ppp
), а другой - изображение пикселя, созданное из популяционного растра , Мне интересно, есть ли способ использовать популяционный растр для нормализации изображения плотности. В принципе, у меня есть набор данных из 10000+ мест размещения кибер-атак в США, используя функцию spatstat
, которую я надеюсь исследовать для пространственных шаблонов. Однако очевидная проблема заключается в том, что районы более высокого населения имеют больше причин кибератаки, потому что людей больше. Я хотел бы использовать попутный растр, чтобы исправить это. Любые идеи были бы хорошы.Нормализация данных в r с использованием популяционного растра
ответ
В комментарии от @RHA говорится: Первое решение состоит в том, чтобы просто делить на интенсивность.
У меня нет данных, поэтому я сделаю некоторые, которые могут показаться похожими. Набор данных Chorley имеет два типа случаев рака. Я буду оценивать интенсивность рака легких и использовать его в качестве вашей плотности населения. Тогда оценка плотности случаев гортани служит в качестве оценки интенсивности кибер-атаки:
library(spatstat)
# Split into list of two patterns
tmp <- split(chorley)
# Generate fake population density
pop <- density(tmp$lung)
# Generate fake attack locations
attack <- tmp$larynx
# Plot the intensity of attacks relative to population
plot(density(attack)/pop)
В качестве альтернативы, вы можете использовать обратную плотность населения в качестве весов в density.ppp
:
plot(density(attack, weights = 1/pop[attack]))
Это может быть предпочтительный способ, когда вы в основном говорите, что атака происходит, например, место с плотностью населения 10 только «считается» вдвое меньше, чем атака, происходящая в месте с плотностью 5.
Я не уверен, что именно вы хотите сделать с анализом, но, возможно, вам стоит подумать об установке простая модель Пуассона с ppm
и посмотреть, как ваши данные расходятся с предлагаемой моделью, чтобы понять поведение атак.
Похоже, вы должны просто разделить плотность населения. Я еще не знаком с растровыми функциями в R, но это не должно быть сложно. – RHA