Python回归、聚类、相关分析上海公租房租金满意度影响因素数据可视化

随着城市化进程的加速,住房问题日益成为城市居民关注的焦点。公租房作为政府为解决中低收入家庭住房困难而推出的一种重要住房保障形式,其租金水平、居住条件及租住体验直接关系到广大租户的切身利益和生活质量。

因此,深入研究公租房租金满意度的影响因素,不仅有助于提升公租房的管理和服务水平,还能为政府制定更加科学合理的住房政策提供有力支持。

由Kaizong Ye,Liao Bao撰写

近年来,数据分析与可视化技术在社会科学领域的应用日益广泛,为复杂问题的研究提供了强有力的工具。

Python作为一种功能强大的编程语言,凭借其丰富的数据处理库和可视化工具,成为了数据分析领域的首选工具之一。

本文旨在利用Python的回归、聚类及相关分析等方法,对上海地区公租房租金满意度的影响因素进行深入探讨,并通过数据可视化的方式直观展示分析结果,以期为相关政策制定者和管理者提供有价值的参考。


这份数据集涵盖了上海地区公租房租户的多方面信息,既有个人基本信息、工作与生活状况,也有对租住体验及政策看法的详细调查。

在这里插入图片描述

描述统计分析


df = pd.read_excel(file_path)

# 显示数据的前几行以了解其结构
df.head()

根据提供的数据,我们可以从以下几个方面进行分析:


  1. 居住空间与通勤成本的关联
    :分析公租房的分布特点与就业热点区域之间的空间关系,评估不同居住位置对通勤时间、交通费用等通勤成本的影响。
  2. 交通设施与通勤效率:考察公共交通系统(地铁、公交、共享单车等)的覆盖程度、运营效率及对群体通勤的便利性,探讨如何通过优化交通网络降低通勤成本。
  3. 政策效应评估:分析公租房政策在缓解住房压力的同时,对其通勤成本产生的直接或间接影响,评估政策的有效性与改进空间。
  4. 生活空间优化建议:基于上述分析,从城市住房政策调整、公租房布局优化、交通基础设施建设与升级等多个维度,提出降低外来群体通勤成本、提升其生活品质的具体建议。

我将首先创建饼图,然后逐步进行其他类型的图表。


视频

非线性模型原理与R语言多项式回归、局部平滑样条、 广义相加模型GAM分析

探索见解

去bilibili观看

探索更多视频


视频

KMEANS均值聚类和层次聚类:R语言分析生活幸福质量系数可视化实例

探索见解

去bilibili观看

探索更多视频


python复制 # 选择适合绘制饼图的分类变量 - 例如“您的性别.” gender_counts = df['您的性别.'].value_counts() # 绘制饼图 plt.figure(figsize=(8, 8)) plt.pie(gender_counts, labels=gender_counts.index, autopct='%1.1f%%', startangle=140, colors=normalized_colors[:2]) plt.title('性别分布') plt.show()

分析结果

  1. 饼图 – 性别分布
    • 图表展示了调查对象中性别的分布情况。

接下来,创建环状直方图来展示数值变量的分布。

在这里插入图片描述

分析结果

  1. 环状直方图 – 平均月收入分布
    • 图表展示了调查对象的平均月收入分布情况,每个区间的宽度代表该收入区间的人数。
在这里插入图片描述

接下来,进行数据分析。

1. 居住空间与通勤成本的关联分析

分析公租房的分布特点与就业热点区域之间的空间关系。
这里我们使用“您的工作所在地”和“您的平均月收入”作为代表。

在这里插入图片描述

R语言泊松Poisson回归模型分析案例

阅读文章


在这里插入图片描述

分析结果

  1. 居住空间与通勤成本的关联
    • 工作所在地分布:图表显示了不同工作地点的人数分布。可以看出,某些地区的工作人数较多,这可能与公租房的分布有关。
    • 平均月收入分布:此图展示了不同收入水平的人数分布。收入水平可能与通勤成本相关,因为不同的收入群体可能选择不同的交通方式和居住区域。

接下来,继续分析交通设施与通勤效率,以及政策效应评估的部分。

2. 交通设施与通勤效率

分析公共交通系统的覆盖程度、运营效率及对群体通勤的便利性
这里我们使用“您平时常使用的主要交通工具是”作为代表


transport_modes = df[['您平时常使用的主要交通工具是.1', '您平时常使用的主要交通工具是.2', '您平时常使用的主要交通工具是.3']]

# 统计各种交通工具的使用频率
transport_counts = transport_modes.apply(pd.Series.value_counts).fillna(0)
transport_counts = transport_counts.sum(axis=1)

# 绘制交通工具使用频率的分布图
plt.figure(figsize=(10, 6))
sns.barplot(x=transport_counts.values, y=transport_counts.index)
plt.title('主要交通工具使用频率')
plt.xlabel('人数')
plt.ylabel('交通工具')
plt.show()
在这里插入图片描述


随时关注您喜欢的主题


分析结果

-   **主要交通工具使用频率**:图表展示了受访者主要使用的交通工具及其使用频率。可以看出,地铁是最受欢迎的交通工具,其次是出租车和私家车。这表明地铁在通勤效率上可能具有明显优势,而其他交通方式则根据个人偏好和实际情况有所不同。

接下来,进行政策效应评估的分析。

3. 政策效应评估

分析公租房政策对通勤成本的影响,这里我们使用“您对公租房租住体验满意吗.租金”作为代表

在这里插入图片描述

分析结果

  1. 政策效应评估
    • 公租房租金满意度:图表展示了受访者对于公租房租金的满意度分布。从图中可以看出,对于公租房租金的满意度呈现一定的分化,有相当一部分人对租金表示不满。这可能反映出公租房政策在租金方面仍有改进空间。

综合以上分析,我们可以得出以下结论和建议:

  1. 居住空间与通勤成本关联紧密:工作地点的分布与公租房的位置选择密切相关,不同居住位置对通勤成本有显著影响。
  2. 优化交通网络降低通勤成本:地铁作为主要的通勤工具,显示了其在通勤效率上的优势。建议进一步优化公共交通网络,特别是地铁线路,以降低通勤成本。
  3. 公租房政策需进一步优化:租金满意度的调查显示,公租房政策在租金方面还有改进的空间。建议对公租房租金政策进行调整,以更好地满足不同收入群体的需求。

这些分析和建议有助于上海实现更加“以人为本”的城市化进程,提升外来群体的生活品质。

相关性分析

变量间关系:探索不同变量之间的相关性,如年龄与婚姻状况、月收入与公租房租金、通勤时间与交通费用等。这有助于揭示变量之间的潜在联系和因果关系。 通勤与居住条件:分析通勤时间、交通费用与居住地点(如工作所在地、公租房位置)、房型等变量之间的关系,了解居住条件对通勤效率的影响。

首先,我将重新处理数据,确保特征和目标变量被正确处理。然后,我将使用相关性分析来探索不同变量之间的相关性。由于数据中存在一些缺失值,我将首先处理这些缺失值,然后构建模型。处理缺失值的常用方法包括删除含有缺失值的行或用某种策略填充缺失值。在这里,我将选择删除含有缺失值的行。

接下来,我将进行以下步骤:

  1. 数据清洗:处理缺失值、异常值和数据类型转换。
  2. 特征工程:提取和构造与变量间关系相关的特征。
  3. 相关性分析:使用相关性分析来探索不同变量之间的相关性。
  4. 结果可视化:展示相关性分析的结果。
在这里插入图片描述

相关性分析的结果已经可视化。从热图中可以看出不同变量之间的相关性系数。相关性系数的范围是-1到1,其中1表示完全正相关,-1表示完全负相关,0表示没有相关性。

回归分析

  • 满意度影响因素:分析哪些因素显著影响租住者对公租房的满意度,如房型、租金、交通便利性等。这有助于识别改进公租房管理和服务的关键领域。

首先,重新处理数据,确保特征和目标变量被正确处理。

然后,将使用多元线性回归模型来分析影响租住者对公租房满意度的因素。由于数据中存在一些缺失值,我将首先处理这些缺失值,然后构建模型。处理缺失值的常用方法包括删除含有缺失值的行或用某种策略填充缺失值。在这里,我将选择删除含有缺失值的行。

接下来,进行以下步骤:

  1. 数据清洗:处理缺失值、异常值和数据类型转换。
  2. 特征工程:提取和构造与租住者满意度相关的特征。
  3. 构建模型:使用多元线性回归模型分析影响租住者对公租房满意度的因素。
  4. 结果可视化:展示模型的结果和误差。

python复制 # 数据清洗和特征工程 # 1. 处理收入水平,将其转换为数值类型 data['收入水平'] = data['您的平均月收入是.'].apply(process_income) # 2. 房型编码 data['房型编码'] = label_encoder.fit_transform(data['您租住的公租房房型是.']) # 3. 家庭结构特征:家庭人数、工作人数、就学人数、退休人数 data['工作人数'] = data['您在上海居住的家庭结构是.其中工作人数..'] data['就学人数'] = data['您在上海居住的家庭结构是.其中就学人数..'] data['退休人数'] = data['您在上海居住的家庭结构是.其中退休人数..'] # 4. 满意度处理:将满意度转换为数值类型(这里简化处理,实际应用中可能需要更复杂的转换方式) def process_satisfaction(satisfaction_str): satisfaction_mapping = {'非常满意': 5, '满意': 4, '一般': 3, '不满意': 2, '非常不满意': 1} return satisfaction_mapping.get(satisfaction_str, None)
在这里插入图片描述

对于租住者满意度模型:

  • 均方误差(MSE): 1.094
  • 决定系数(R²): 0.196
  • 模型参数: [-0.228, 0.014, 0.522, -0.500, 0.491, -0.0001]
  • 截距: 2.990

模型的评估指标显示决定系数(R²)为0.196,这表明模型只解释了约19.6%的目标变量的变异。

KMeans聚类分析

首先,我将选择一些可能适合进行聚类的变量,然后使用KMeans算法进行聚类分析。最后,我将可视化聚类结果,并输出模型参数。

由于数据集较大,包含多个变量,我将选择几个代表性的变量进行聚类分析。

在这里插入图片描述

KMeans聚类分析结果

聚类结果可视化

从上图中,我们可以看到KMeans聚类分析的结果。图中的点代表不同的数据点,颜色表示它们所属的聚类。可以看出,数据被分为三个不同的聚类。

模型参数和误差

  • 模型参数(聚类中心) :
    • 聚类1:[2.5, 0.95, 2.6, 13.6]
    • 聚类2:[2.45, 0.73, 2.91, 2.82]
    • 聚类3:[2.05, 0.84, 2.58, 8.00]
  • 模型误差(Inertia) :1345.55

分析

  • 聚类中心代表了每个聚类的平均特征值,这些值可以用来描述每个聚类的特征。
  • 误差值(Inertia)表示模型在聚类过程中的总误差,较小的误差值通常意味着更好的聚类效果。

总结

通过KMeans聚类分析,我们可以看到数据在“平均月收入”和“工作所在地”两个维度上的聚类情况。不同的聚类可能代表了不同的收入和工作地点特征的人群。这有助于我们更好地理解数据中的不同群体。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds