数据分析报告练习作业

news2024/9/27 7:18:50

该数据集为日本1960年到2022年间的基建领域的投资数据,包含以下特征:

年份
价值
总计
建筑总计
住宅建筑
政府住宅建筑
私人住宅建筑
非住宅建筑
政府非住宅建筑
私人非住宅建筑
私人非住宅建筑(矿业和工业)
私人非住宅建筑(其他)
建筑维修(翻新或改造)
政府建筑维修
私人建筑维修
土木工程总计
政府土木工程
政府公共项目
政府其他土木工程
私人土木工程
重复总计(政府)
重复总计(私人)
重复建筑(政府)
重复建筑(私人)
重复土木工程(政府)
重复土木工程(私人)
私人非住宅建筑(非住宅建筑和土木工程)

#导入可视化库和计算库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.linear_model import LogisticRegression

from sklearn import preprocessing 
import matplotlib.pyplot as plt
import gc
import os
import random

import numpy as np
import pandas as pd
import seaborn as sns

import warnings
warnings.filterwarnings('ignore')


#可视化
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.components import Table
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType,SymbolType,ChartType

from pyecharts.charts import Line
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Map

from pyecharts.charts import Sankey

from pyecharts.globals import ChartType
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')
#模型训练
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split, KFold, GridSearchCV
from sklearn.metrics import accuracy_score, classification_report
import xgboost as xgb
import lightgbm as lgb
from sklearn.metrics import confusion_matrix, classification_report
import itertools
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM
data= pd.read_csv(r"/home/mw/input/12435156345/日本建筑行业投资数据集.csv")
#用info函数查看数据情况
data.info()

# 描述性统计
summary_stats = data.describe()

# 展示描述性统计
summary_stats

通过这一步,我们能够了解数据的基本信息,如数据的大小、列的名称、数据类型等。

数据清洗与预处理

在实际的分析中,数据清洗是至关重要的一步,包括处理缺失值、重复值和格式不一致的问题:

# 检查缺失值
print(data.isnull().sum())

# 处理缺失值
data.fillna(0, inplace=True)  # 使用0填充缺失值(根据需要也可以使用其他方法)

# 确保数据类型正确
data['Year'] = data['Year'].astype(int)
data['Total'] = data['Total'].astype(float)
data=data[data['Value'] == 'real'].copy()

这一步确保数据完整且一致,为后续的分析打好基础。

探索性数据分析(EDA)

在探索性分析中,我们需要回答我们的研究目标,结合该数据集,我们可以总结以下目标:

投资的总趋势是什么?
各个子类别(如住宅、非住宅、土木工程等)的投资有何变化?
政府与私营部门的投资占比如何?

# 绘制年度总投资趋势图
plt.figure(figsize=(10, 6))
plt.plot(data['Year'], data['Total'], marker='o')
plt.title('年度投资总趋势')
plt.xlabel('年份')
plt.ylabel('总投资额')
plt.grid(True)
plt.show()

# 按年份汇总总投资额
annual_investment = data.groupby('Year')['Total'].sum()

# 绘制年度趋势图
plt.figure(figsize=(10, 6))
plt.plot(annual_investment.index, annual_investment.values, marker='o')
plt.title('年度投资趋势')
plt.xlabel('年度')
plt.ylabel('总投资额t')
plt.grid(True)
plt.show()

通过这张图表,我们能够直观地看到不同年份的投资变化趋势,识别出投资高峰期和低谷期。

各投资类别的趋势分析

# 分析建筑工程和土木工程的投资变化
plt.figure(figsize=(12, 8))
plt.plot(data['Year'], data['Architecture_Total'], label='建筑投资', marker='o')
plt.plot(data['Year'], data['Civil Engineering_Total'], label='基础建设投资', marker='o')
plt.title('分类投资总趋势')
plt.xlabel('年份')
plt.ylabel('总投资额')
plt.legend()
plt.grid(True)
plt.show()

这张图表展示了建筑工程和基础建设的投资变化情况,帮助我们理解不同领域的投资重心。

政府与私营部门投资对比分析

# 政府与私营部门在总投资中的占比
government_investment = data['Repeated_Total_Government']
private_investment = data['Repeated_Total_Private']

# 绘制堆叠柱状图
plt.figure(figsize=(12, 8))
plt.bar(data['Year'], government_investment, label='政府投资')
plt.bar(data['Year'], private_investment, bottom=government_investment, label='私人投资')
plt.title('政府投资 vs 私人投资')
plt.xlabel('年份r')
plt.ylabel('投资总额')
plt.legend()
plt.grid(True)
plt.show()

这张图展示了政府和私营部门在总投资中的占比及变化,能够帮助我们分析公共项目与私营项目的投资结构。

不同领域的投资额对比

 

# 建筑工程投资中的政府与私营占比
arch_gov_investment = data[['Year', 'Architecture_Total', 'Repeated_Architecture_Government']].groupby('Year').sum()
arch_private_investment = data[['Year', 'Architecture_Total', 'Repeated_Architecture_Private']].groupby('Year').sum()

arch_total_investment = arch_gov_investment['Architecture_Total']
arch_gov_percentage = (arch_gov_investment['Repeated_Architecture_Government'] / arch_total_investment) * 100
arch_private_percentage = (arch_private_investment['Repeated_Architecture_Private'] / arch_total_investment) * 100

# 土木工程投资中的政府与私营占比
civil_gov_investment = data[['Year', 'Civil Engineering_Total', 'Repeated_Civil Engineering_Government']].groupby('Year').sum()
civil_private_investment = data[['Year', 'Civil Engineering_Total', 'Repeated_Civil Engineering_Private']].groupby('Year').sum()

civil_total_investment = civil_gov_investment['Civil Engineering_Total']
civil_gov_percentage = (civil_gov_investment['Repeated_Civil Engineering_Government'] / civil_total_investment) * 100
civil_private_percentage = (civil_private_investment['Repeated_Civil Engineering_Private'] / civil_total_investment) * 100

# 可视化展示建筑工程和土木工程的投资占比
plt.figure(figsize=(14, 8))

# 基建领域
plt.subplot(2, 1, 1)
plt.plot(arch_gov_percentage.index, arch_gov_percentage, label='Government (Architecture)', color='blue')
plt.plot(arch_private_percentage.index, arch_private_percentage, label='Private (Architecture)', color='orange')
plt.title('建筑领域政府投资 VS 私人投资')
plt.xlabel('Year')
plt.ylabel('Percentage (%)')
plt.legend()
plt.grid(True)

# 土木工程
plt.subplot(2, 1, 2)
plt.plot(civil_gov_percentage.index, civil_gov_percentage, label='Government (Civil Engineering)', color='green')
plt.plot(civil_private_percentage.index, civil_private_percentage, label='Private (Civil Engineering)', color='red')
plt.title('基建领域政府投资 VS 私人投资')
plt.xlabel('Year')
plt.ylabel('Percentage (%)')
plt.legend()
plt.grid(True)

plt.tight_layout()
plt.show()

 例如,在非住宅建筑中,分析政府与私营部门在不同子领域(如采矿、工业等)的投资占比。

# 非住宅建筑中各子领域的投资占比分析
non_residential_gov_investment = data[['Year', 'Architecture_Non Residential', 'Architecture_Non Residential_Government']].groupby('Year').sum()
non_residential_private_investment = data[['Year', 'Architecture_Non Residential', 'Architecture_Non Residential_Private']].groupby('Year').sum()

non_residential_total_investment = non_residential_gov_investment['Architecture_Non Residential']
non_residential_gov_percentage = (non_residential_gov_investment['Architecture_Non Residential_Government'] / non_residential_total_investment) * 100
non_residential_private_percentage = (non_residential_private_investment['Architecture_Non Residential_Private'] / non_residential_total_investment) * 100

# 可视化展示非住宅建筑中政府与私营部门的投资占比
plt.figure(figsize=(12, 6))
plt.plot(non_residential_gov_percentage.index, non_residential_gov_percentage, label='Government (Non-Residential Architecture)', color='purple')
plt.plot(non_residential_private_percentage.index, non_residential_private_percentage, label='Private (Non-Residential Architecture)', color='brown')
plt.title('非住宅建筑中政府与私营部门的投资占比')
plt.xlabel('Year')
plt.ylabel('Percentage (%)')
plt.legend()
plt.grid(True)
plt.show()

 

机器学习分析

我们想要根据不同投资类型(如住宅、非住宅、土木工程等)的投资额将市场进行分类:

from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler

# 选择用于聚类分析的列
cluster_data = data[['Architecture_Residential', 'Architecture_Non Residential', 'Civil Engineering_Total']]
cluster_data.fillna(0, inplace=True)  # 填补缺失值

# 数据标准化
scaler = StandardScaler()
scaled_cluster_data = scaler.fit_transform(cluster_data)

# 使用K-means进行聚类分析
kmeans = KMeans(n_clusters=3)  # 假设我们分为3类
kmeans.fit(scaled_cluster_data)
labels = kmeans.labels_

# 将聚类结果添加回原数据
data['Cluster'] = labels

# 可视化聚类结果
plt.figure(figsize=(10, 6))
plt.scatter(data['Architecture_Residential'], data['Architecture_Non Residential'], c=labels, cmap='viridis')
plt.xlabel('Residential Architecture Investment')
plt.ylabel('Non Residential Architecture Investment')
plt.title('K-means Clustering of Investment Types')
plt.show()

 

数据建模与预测

如果需要预测未来几年的投资趋势,可以使用回归模型等进行分析。回归分析是最经典的预测模型之一,在基建投资分析中可以用于预测某些关键变量(如总投资额)与其他因素(如年份、政策变化、市场条件)的关系。 我们使用前三年的数据作为特征,预测后续的数据。

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 假设我们已经加载了数据,并且清洗完毕
# 这里以“Total”列为目标变量

# 构造滞后特征
data['lag_1'] = data['Total'].shift(1)
data['lag_2'] = data['Total'].shift(2)
data['lag_3'] = data['Total'].shift(3)

# 删除缺失值(因为前几年的滞后特征会有缺失)
data = data.dropna()

# 特征和目标变量
X = data[['lag_1', 'lag_2', 'lag_3']]  # 使用前3年的投资作为特征
y = data['Total']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型
model = LinearRegression()

# 训练模型
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'Mean Squared Error: {mse}')
print(f'R-squared: {r2}')

# 可视化预测结果
import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
plt.plot(data['Year'][-len(y_test):], y_test, label='实际投资额', marker='o')
plt.plot(data['Year'][-len(y_test):], y_pred, label='预测投资额', marker='o')
plt.title('实际 vs 预测投资总额')
plt.xlabel('年份')
plt.ylabel('总投资额')
plt.legend()
plt.grid(True)
plt.show()

 

结论与建议
通过以上分析,可以得出以下关键结论:

政府与私营部门的总体投资结构:政府投资在特定年份中有显著的占比(如在经济危机或重大基础设施建设时期),而私营部门在某些年份则表现出更高的活跃度(如市场景气时期)。
不同投资领域的投资结构:建筑工程中,政府投资往往集中在公共住宅和基础设施建设,而私营部门则更多关注商业、工业项目。土木工程中,政府投资占比更高,主要用于公共设施建设。
细分类别的市场主导性:在非住宅建筑中,私营部门在工业和商业投资方面占据主导,而政府则主要负责公共项目和特定政策驱动的投资

资料下载

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088826.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用HTTP代理注意的点

“在网络世界中,HTTP代理扮演着桥梁的角色,帮助用户匿名访问网站、加速网页加载、绕过地区限制等。然而,不当或不安全地使用HTTP代理也可能带来一系列问题。以下是在使用HTTP代理时需要注意的几个关键点。” 一、选择可靠的代理服务商 首先&…

PHP指尖上的旅行管家手边酒店民宿预订系统小程序源码

指尖上的旅行管家——手边酒店民宿预订系统🌟🛫 🚀 开篇:旅行新伴侣,轻松启程 每次计划旅行,是不是都曾为找酒店、订民宿而头疼不已?🤔 繁琐的搜索、对比、预订流程,让美…

旅行追踪和行程规划工具AdventureLog

什么是 AdventureLog ? AdventureLog 是一种记录您的旅行并与世界分享的简单方法。您可以在日志中添加照片、笔记等。跟踪您访问过的国家、探索去过的地区和地方。您还可以查看您的旅行统计数据和里程碑。AdventureLog 旨在成为您终极的旅行伴侣,帮助您记…

chapter09-OOP高级部分——(抽象类)——day12

目录 398-抽象类引出 399-抽象类细节1 400-抽象类细节 401-抽象类的课堂练习 398-抽象类引出 399-抽象类细节1 400-抽象类细节 401-抽象类的课堂练习 一、 1、错,dinal不能被继承 2、错,不能有static,没办法被重写 3、错,…

跟着我发现味蕾新宝藏

你是不是常常为找不到正宗又美味的传统美食而烦恼呢?是不是渴望品尝那些带着浓郁地方特色、满满都是回忆味道的美食呢?那你可一定不能错过食家巷。 先说那食家巷的大烤馍,外表金黄,散发着诱人的光泽。拿在手里沉甸甸的&…

Python用 Uvicorn 打造高性能 FastAPI 应用程序使用详解

概要 随着 Python 在 Web 开发领域越来越受欢迎,开发人员对于构建快速、可靠和高性能的 Web 应用程序的需求也日益增加。在这个背景下,Uvicorn 这个高性能 ASGI 服务器应运而生,它为构建现代化的 Python Web 应用程序提供了强大的支持。 本文将详细介绍 Uvicorn 的使用教程…

零知识证明-椭圆曲线(五)

这章主要讲述椭圆曲线 N 子群的阶n ,明文嵌入等 补充上章的知识点 1:椭圆曲线的阶 一个群中的元素数量称为这个群的阶(order) 当 p 小时 ,0到p-1的所有整数x代入方程,然后对于每个x都找到所有满足方程的解&…

Python爬虫学习路线教程:从零基础到入门

如果你也正在入门Python爬虫,那么你需要的话可以,点击这里👉Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享! 前言 在数字化时代,信息如潮水般汹涌而来,如…

基于火锅餐饮大数据的精准推荐系统【协同过滤、前后台信息管理、万能推荐系统】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍项目展示项目过程大屏设计管理员界面用户界面数据库展示用户信息评论功能商家回复每文一语 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍…

【手机取证】智能手机位置数据提取方法

文章关键词:手机取证、电子数据取证、云取证 一、前言 随着智能手机的普及,人们的生活方式和行为模式发生了巨大变化。智能手机不仅是通信工具,还是集成了多种传感器和定位技术的强大设备。这些设备每天都会产生大量的位置信息,…

优质企业上网行为管理软件大盘点

员工在上班时间摸鱼,看似是一个小问题,但却会给企业带来诸多不良影响。首先,摸鱼会降低员工的工作效率,导致工作任务无法按时完成,影响项目进度。其次,摸鱼行为会破坏企业的工作氛围,影响其他员…

Dxf文件中多段线弧线的计算

要计算弧形的参数(包括起始角度、跨度角度以及包围弧形的矩形),我们首先需要理解一些基础知识: 弧的半径和中心:弧是圆的一部分,因此我们首先要计算整个圆的半径和圆心。起始角度和跨度角度:弧…

Vue3.0项目实战(二)——大事件管理系统登录注册功能实现

目录 1. 登录注册页面 [element-plus 表单 & 表单校验] 1.1 注册登录 静态结构 & 基本切换 2. 注册功能 2.1 实现注册校验 2.2 注册前的预校验 2.3 封装 api 实现注册功能 3. 登录功能 3.1 实现登录校验 3.2 登录前的预校验 & 登录成功 1. 登录注册页面 […

C++必修:异常

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. C语言处理错误的方式 一般而言,在程序方式异常时,C语言…

空间计量 | 似不相关回归SUR

通常情况下,研究X对于Y的影响时,Y只能为一个,如果有多个则重复进行多次,即每次都只考虑单一方程估计,如果有多个Y时,将多个Y同时进行联合估计有可能会提高估计效率,即模型的拟合能力更加接近于实…

计算机毕业设计选题推荐-博客平台-博客系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

嵌入式软件--数电基础 DAY 6

一、前情复习 1.存储电路的复习 我们刚开始接触的第一个存储电路是SR锁存器。但是SR锁存器存在诸多不足,比如我们不希望出现无意义的状态,于是我们有了D锁存器,再输入电路中加入非门电路,避免了无意义状态,但同时失去…

波导模式分析1 高度形变圆波导

摘要:略 简介:略 (主要学习分析方法) 在本文中,提出了一种宽带圆TE01模式转换器的设计方法。为了在宽频带内抑制寄生模式的生成,引入了高度变形的圆波导。对高度变形圆波导中的本征模的特性进行了理论分析。分析显示&…

【 html+css 绚丽Loading 】000026 五行吞灵盘

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f495…

harbor部署+docker-compose

harbor部署 harbor介绍 Harbor 是一个开源的企业级容器镜像仓库,用于存储和分发 Docker 镜像及其他容器格式的镜像。 Harbor 提供了一个集中化的存储库,方便团队成员共享和管理容器镜像。你可以将构建好的镜像推送到 Harbor 仓库中,其他成…