R语言用于城市管理事件数据分析
这次使用主成分分析的主要目的不是降维,而是分析城市管理数据中的事件类别之间是否存在关系。当然,城管事件有数百种,这里仅列出去年9月至今的十大类事件;如下图所示,十大类事件分别为:乱停放车辆、乱堆放物资、非法张贴小广告、开店自备容器、放置非法标语和宣传品、乱停放机动车、乱扔垃圾,地面不干净,道路也不干净。
![]()
确定了这十个类别之后,就该提取数据了。此时,我们需要关注数据结构和数据样本大小。为什么?因为在主成分分析中,事件类别只能是属性,即事件类别是一列;现在看看站点管理数据中存在的数据结构。数据记录数必须是属性数的 6 至 10 倍。此时请注意,城市管理数据结构显然不是我们想要的。
![]()
所以我写了SQL来转换数据结构,但别名不符合规则。这是一个错误;
![]()
目前需要使用R语言进行分析,首先我们可以从数据库中获取数据。所以创建数据库的链接并安装包RODBC
R语言代码
install.packages("RODBC")
library(RODBC)
jixiao_connect <- odbcConnect("jixiao",uid="jixiao",pwd = "*****",believeNRows=FALSE)此时我们就创建了数据库连接jixiao_connect。这时候我们需要提取数据
R语言代码
jixiao_data <- sqlQuery(jixiao_connect,"
select
sum(case when t.kind_code_thd='车辆乱停放' then 1 else 0 end) kind_one
,sum(case when t.kind_code_thd='乱堆物堆料' then 1 else 0 end) kind_two
,sum(case when t.kind_code_thd='非法张贴小广告' then 1 else 0 end) kind_three
,sum(case when t.kind_code_thd='店铺出店经营' then 1 else 0 end) kind_code_4
,sum(case when t.kind_code_thd='自备容器外放' then 1 else 0 end) kind_code_5
,sum(case when t.kind_code_thd='违规标语宣传品' then 1 else 0 end) kind_code_6
,sum(case when t.kind_code_thd='机动车乱停放' then 1 else 0 end) kind_code_7
,sum(case when t.kind_code_thd='地面不洁' then 1 else 0 end) kind_code_8
,sum(case when t.kind_code_thd='暴露垃圾' then 1 else 0 end) kind_code_9
,sum(case when t.kind_code_thd='无照经营游商' then 1 else 0 end) kind_code_10
from test_erkang t
where t.district_name in ('美兰区','龙华区','秀英区','琼山区')
GROUP BY T.DISTRICT_NAME,TO_CHAR(T.REVIEW_FIRST_DATE,'YYYYMM')")
jixiao_data
检查数据是否提取,说明数据已经提取成功
![]()
我们安装主要组件所需要的包
R代码
install.packages("psych")
library(psych)首先,我们需要做的是确定需要多少个主要组件。此时,我们需要通过卡特尔砾石检验确定主成分的数量,即保留特征值大于1的主成分,因为特征值大于1的主成分可以解释更多的方差;
R代码
fa.parallel(jixiao_date,fa='pc',n.iter = 100,show.legend=FALSE)![]()
上图中,我们要选择3个主要部件
R代码
pc <- principal(jixiao_date,nfactors=3,rotate = 'varimax')
pc
第二个是我们选择的主要部件的旋转方法。为了方便主成分的解释,结果如下
![]()
PC1列中的系数是与每个事件类别的相关系数。 h2列表示该分量可以解释的方差量,u2列表示无法解释的方差比例,KIND_ONE事件是随机停放的车辆,主相关是PC1的主分量,相关系数为0.97, PC2和PC3的相关系数分别为0、05、0.07,主成分可以解释随机停放车辆95%的方差,不能解释的比例为0.055; var比例代表对整个数据集的解释程度,PC2解释30%的方差,PC1解释26%的方差,PC3解释变量21%的方差,主成分可以解释77%的方差方差。整个变量的方差;
主组件可视化
R 代码
fa.diagram(pc)![]()
从上图中我们可以看到主组件的构成,大致分为
PC1:无证经营旅游业务,显示垃圾、乱停乱放车辆
PC2:乱堆放物资、违规张贴小广告、在室外展示自有集装箱、乱停放机动车、地面不干净
PC3:店铺经营、违规标语及促销材料;
基于商业和个人推测
我推测PC1代表繁忙步行区组件,PC2代表城中村组件,PC3代表主干道组件。
提案和总结
1.可以认为,乱堆放物资、非法张贴小广告、堆放自卷、机动车乱停放、地面不洁等属于相关事件,无证经营旅游业务、乱扔垃圾、随意停放车辆等属于相关事件。的相关事件。店铺经营及违法标语、宣传品等行为可视为相关行为
2。可以确定事件主要来源为城中村、主干道和步行街;
3。步行街的相应措施可以增加相应的非机动车停车位、划分商业空间、增加环卫人员的保洁频率
4。城中村:完善充足停车规划,集中整治城市
5:、主要道路:适当增加巡查人员巡查频次
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网