猪肉价格的波动因素分析

期末作业,应付交差的,不要喷我,文字大部分在知网上抄的,发出来存个档,因为u盘老是掉,不想存云里。

引言

猪肉是我国主要的大宗交易农产品之一。据国家统计年鉴显示,猪肉消费在我国肉类消费中占据了居民消费总量的70%以上。猪肉的生产和销售容易受政策、资本和社会事件的影响,造成价格和出栏量的波动,进而影响居民的生活消费和相关产业的发展。因此,通过提高模型预测的准确率,提供更加科学合理的调控措施,可以避免广大经营者遭受生产经营风险,助力生猪产业链的健康稳定发展。
近年来,在政府的大力支持下,我国的大型养猪企业快速扩张,生产方式加速转变,规模化程度逐年提高,逐渐形成了以产业链为主线、从产地到餐桌,从生产到消费、从研发到市场紧密衔接的现代化农业养殖产业技术体系。所以,通过爬取中国猪价网(https://zhujia.zhuwang.cc/),获取到一年的数据,通过数据清洗,建立可视化图表,来分析近一年来的猪肉价格。

1.1决策树模型

在复杂的决策情况中,往往需要多层次或多阶段的决策。当一个阶段决策完成后,可能有m种新的不同自然状态发生;每种自然状态下,都有m个新的策略可选择,选择后产生不同的结果并再次面临新的自然状态,继续产生一系列的决策过程,这种决策被称为序列决策或多级决策。
(这里其实没有弄懂,但是作业要求写这个)

1.2一元线性回归

一元线性回归分析预测法,是根据自变量x和因变量Y的相关关系,建立x与Y的线性回归方程进行预测的方法。由于市场现象一般是受多种因素的影响,而并不是仅仅受一个因素的影响。所以应用一元线性回归分析预测法,必须对影响市场现象的多种因素做全面分析。只有当诸多的影响因素中,确实存在一个对因变量影响作用明显高于其他因素的变量,才能将它作为自变量,应用一元相关回归分析市场预测法进行预测。

2.数据获取与数据清洗

2.1数据获取
用Python语言编写设计爬虫程序在中国猪价网站(:https://zhujia.zhuwang.cc/) 上抓取湖北省近一年来的猪肉价格,对其中比较重要的信息。
利用网址url ,链接(https://zhujia.zhuwang.cc/api/chartData?areaId=-1&aa=%d"% int(time.time()*1000)用来获取价格,
链接"https://zhujia.zhuwang.cc/new_map/zhujiapork/chart1.json?timestamp=%d"% int(time.time()*1000)用来获取时间。如图1(数据获取)
根据重要词:日期;全国猪肉批发价;生猪内三元价格;生猪土杂猪价格;生猪外三元价格;玉米价格;豆子价格等,保存到excel表格中。如图2(猪肉价格excel表)

图1-数据获取


图2-猪肉价格excel表

代码:

# -*- coding: utf-8 -*-
"""
数据采集
采集猪肉价格:https://zhujia.zhuwang.cc/
采集地区:湖北
"""#requests是python实现的简单易用的HTTP库
import requests
import time
import json
import pandas as pd# 构造请求网址url,链接1用来获取价格,链接2用来获取时间
网址链接 = "https://zhujia.zhuwang.cc/api/chartData?areaId=-1&aa=%d"% int(time.time()*1000)
网址链接_2 = "https://zhujia.zhuwang.cc/new_map/zhujiapork/chart1.json?timestamp=%d"% int(time.time()*1000)
请求头 = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) like Gecko'}
response = requests.get(网址链接,请求头).text
response_2 = requests.get(网址链接_2,请求头).text
#解析Json,将html文本加载成json格式
Json文本 = json.loads(response)
Json文本_2 = json.loads(response_2)#构造空列表
豆子价格 = []
玉米价格 = []
生猪内三元 = []
生猪外三元 = []
生猪土杂猪 = []
全国猪肉批发价 = []
日期 = []
数据总信息 = []for i in range(365):   豆子价格.append(Json文本['bean'][i+2])  玉米价格.append(Json文本['maizeprice'][i+2])  生猪内三元.append(Json文本['pig_in'][i+2])  生猪外三元.append(Json文本['pigprice'][i+2])  生猪土杂猪.append(Json文本['pig_local'][i+2]) 全国猪肉批发价.append(Json文本_2[i][2])日期.append(Json文本_2[i][0])for 时间,生猪内三元,生猪外三元,生猪土杂猪,全国猪肉批发价,豆子价格,玉米价格 in zip(日期,生猪内三元,生猪外三元,生猪土杂猪,全国猪肉批发价,豆子价格,玉米价格):数据字典 = {}数据字典['日期'] = 时间数据字典['生猪内三元价格'] = 生猪内三元数据字典['生猪外三元价格'] = 生猪外三元数据字典['生猪土杂猪价格'] = 生猪土杂猪数据字典['全国猪肉批发价'] = 全国猪肉批发价     数据字典['豆子价格'] = 豆子价格数据字典['玉米价格'] = 玉米价格 数据总信息.append(数据字典)#设置行数不限制数量
pd.set_option('display.max_rows', None)
#设置列不限制数量
pd.set_option('display.max_columns', None)
#把数据存放进二维表中
df = pd.DataFrame(数据总信息)
#保存至Excel表中,第一列索引不要
df.to_excel('猪肉价格数据.xlsx',index=False)

2.2数据清洗
经过上一步的数据爬取,得到了湖北省一年内的猪肉价格波动数据。但是不确定获得的数据是否有缺失或者重复,通过df.isnull().any()来查看是否有缺失值;通过df.duplicated().any()来检测是否有重复值。
因为有发现缺失值,所以通过df = df.drop(index=(df.loc[(df[] == ‘’)].index))来删除缺失值。

最后将清洗后的数据,遍历保存到(猪肉价格表-清洗后.xlsx)文件中。

图3-数据清洗代码
代码:

# -*- coding: utf-8 -*-
"""
Created on Fri Jun  4 01:05:16 2021@author: 澊澊
"""import re
import pandas as pd
import numpy as np
#读取文件
df = pd.read_excel("猪肉价格数据.xlsx")
print(df)#检测缺失值
df.isnull().any()
print(df.isnull().any())#检测到没有缺失值#检测重复值
df.duplicated().any()
print(df.duplicated().sum())#检测到没有重复值#删除有缺失值的行
df = df.drop(index=(df.loc[(df['全国猪肉批发价'] == '')].index))
df = df.drop(index=(df.loc[(df['日期'] == '')].index))
df = df.drop(index=(df.loc[(df['生猪内三元价格'] == '')].index))
df = df.drop(index=(df.loc[(df['生猪外三元价格'] == '')].index))
df = df.drop(index=(df.loc[(df['生猪土杂猪价格'] == '')].index))
df = df.drop(index=(df.loc[(df['玉米价格'] == '')].index))
df = df.drop(index=(df.loc[(df['豆子价格'] == '')].index))df.to_excel('猪肉价格表-清洗后.xlsx',index=False)

3.模型建立
通过决策树和一元线性回归预测猪肉价格。
决策树模型就是由决策点、策略点(事件点)及结果构成的树形图,一般应用于序列决策中,通常以最大收益期望值或最低期望成本作为决策准则,通过图解方式求解在不同条件下各类方案的效益值,然后通过比较,做出决策。
一元线性回归分析法的预测模型为:
Y = ax + b

决策树代码

一元线性回归代码
得到的结果为:


决策树代码:

# -*- coding: utf-8 -*-
"""
Created on Fri Jun  4 02:07:49 2021@author: 澊澊
"""#导入决策树
from sklearn.tree import DecisionTreeRegressor
import pandas as pd
import numpy as npdf = pd.read_excel('猪肉价格表-清洗后.xlsx')def 决策树模型预测猪价(预测特征,标签集,特征):#第二步:构造模型模型 = DecisionTreeRegressor()#第三步:模型训练模型.fit(特征,标签集)#第四步:模型预测预测结果 = 模型.predict(预测特征)预测结果 = ','.join(str(i) for i in 预测结果)return 预测结果;if __name__ == '__main__':#第一步:构造数据总价标签集 = df['全国猪肉批发价'].values.reshape(-1, 1) #预测房价;标签集特征 = df.drop(["日期","全国猪肉批发价"],axis=1) #去掉不用的项;特征#预测猪价:预测特征 = [[30.5,31,32.5,2200,3100]]猪肉价格预测结果 = 决策树模型预测猪价(预测特征,总价标签集,特征)print("决策树模型预测的猪肉批发价为:{0}元/公斤".format(猪肉价格预测结果)) 

线性回归代码:

# -*- coding: utf-8 -*-
"""
Created on Fri Jun  4 17:48:02 2021
多元线性回归
@author: 澊澊
"""
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression as LRdf = pd.read_excel('猪肉价格表-清洗后.xlsx')
x = df["全国猪肉批发价"].values
y = df["日期"].valueslr = LR()
lr.fit(x,y)
slr = lr.score(x,y)
c_x = lr.coef_
c_b = lr.intercept_x1 = np.array([30.5,31,32.5,2200,3100])
x1 = x1.values.reshape(1,-1)
R1 = lr.predict(x1)
r1 = x1*c_x
R2 = r1.sum()+c_b
print('x的回归系数:',c_x)
print('回归系数的常数项:',c_b)
print('预测值为:',R1)

4.可视化图表建立

猪肉价格数据可视化前,已知影响猪肉价格的因素主要有哪些,根据处理后的数据,我们提取到了七个因素: 日期;全国猪肉批发价;生猪内三元价格;生猪土杂猪价格;生猪外三元价格;玉米价格;豆子价格等。
根据以上因素,制作折线图:

可视化代码

通过已有的折线图,可以预测全国猪肉批发价;如图所示:

外三元价格

-内三元价格

土杂猪价格

玉米价格

豆子价格

全国猪肉批发价

可视化代码:

# -*- coding: utf-8 -*-
"""
Created on Sat Jun  5 12:58:24 2021@author: 澊澊
"""
import pandas as pd
import numpy as np
from pylab import mpl
import  matplotlib.pyplot as pltdf = pd.read_excel('猪肉价格表-清洗后.xlsx')
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
mpl.rcParams['axes.unicode_minus']plt.figure(1)#建立第一张画布
plt.figure(figsize=(20,12), dpi=90)#画布尺寸
plt.plot(df['日期'],df['生猪外三元价格'], color="b",linestyle = "-")#画布因素
plt.xticks([])
plt.annotate(df['生猪外三元价格'][300], xy=(df['日期'][300], 40), xytext=(df['日期'][270], 35), arrowprops=dict(facecolor='black', shrink=0.1, width=0.5))
plt.xlabel("生猪(外三元) 元/公斤")plt.figure(2)
plt.figure(figsize=(20,12), dpi=90)
plt.plot(df['日期'],df['生猪内三元价格'], color="c",linestyle = "-")
plt.xticks([])
plt.annotate(df['生猪内三元价格'][300], xy=(df['日期'][300], 40), xytext=(df['日期'][270], 35), arrowprops=dict(facecolor='black', shrink=0.1, width=0.5))
plt.xlabel("生猪(内三元) 元/公斤")plt.figure(3)
plt.figure(figsize=(20,12), dpi=90)
plt.plot(df['日期'],df['生猪土杂猪价格'], color="m",linestyle = "-")
plt.xticks([])
plt.annotate(df['生猪土杂猪价格'][300], xy=(df['日期'][300], 40), xytext=(df['日期'][270], 35), arrowprops=dict(facecolor='black', shrink=0.1, width=0.5))
plt.xlabel("生猪(土杂猪) 元/公斤")plt.figure(4)
plt.figure(figsize=(20,12), dpi=80)
plt.plot(df['日期'],df['玉米价格'],color="y",linestyle = "-")
plt.xticks([])
plt.xlabel("玉米(15%水分) 元/吨")plt.figure(5)
plt.figure(figsize=(20,12), dpi=80)
plt.plot(df['日期'],df['豆子价格'],color="g",linestyle = "-")
plt.xticks([])
plt.xlabel("豆粕(43%蛋白) 元/吨")plt.figure(6)
plt.figure(figsize=(20,12), dpi=90)
plt.plot(df['日期'],df['全国猪肉批发价'], color="r",linestyle = "-")
plt.xticks([])
plt.annotate(df['全国猪肉批发价'][300], xy=(df['日期'][300], 40), xytext=(df['日期'][270], 35), arrowprops=dict(facecolor='black', shrink=0.1, width=0.5))
plt.xlabel("全国猪肉批发价 元/公斤")

5.结语

(1)猪肉价格和7个影响因素表明豆柏价格、玉米价格和猪肉价格呈正向关系,和研究假设相致。而其他六个影响因素和猪肉价格呈反向关系。

(2)由于可视化全国猪肉价格的图表显示逐渐降价,而预测结果是上涨的,可以猜测可能有别的因素影响:玉米价格、豆粕价格、餐饮业收入,汇率和货币流动性在当期都对猪肉价格有正向影响;而猪熬疫情对猪肉价格有反向影响。脉冲相应分析说明:玉米价格,鸡肉价格和牛肉价格受到的冲击短期内会正向影响猪肉价格;而豆粕价格.仔猪价格、餐饮业收人、猪瘟疫情和公路建设投资短期内会对猪肉价格产生负向影响。

猪肉价格的波动因素分析相关推荐

  1. 显示部分数据标签_长春市农贸市场监测数据显示:粮油和水果价格平稳,部分副食品价格小幅波动...

    6月22日,记者从长春市发展和改革委员会获悉,据长春市农贸市场监测数据显示,我市粮油副食品品种丰富,供应充足,消费稳定.与上周一(6月15日)相比,今日粮油和水果价格平稳,部分副食品价格小幅波动,蔬菜 ...

  2. 猪肉价格屡创新高 也许AI养猪是时候提上日程了

    今年以来,受非洲猪瘟疫情.养殖周期波动等因素影响,猪肉价格节节攀升,一举突破历史高点21元/公斤,近期甚至创下超30元/公斤的新高. 北京市猪肉价格 随着猪肉价格节节攀升的还有A股市场的猪肉概念股.今 ...

  3. python猪肉价格预测_预测猪肉年底会涨到30元,用python分析:肉涨真正利好哪些股?...

    概要 预测猪肉年底会涨到30元,那么问题来了,肉涨利好哪些股?本文从全国猪肉价格可视化分析,然后用python的pandas数据相关性分析,来选取最有代表性的猪肉价格.最后,提取猪肉概念的30多只股票 ...

  4. python猪肉价格预测_如果现在生猪期货上市,猪肉价格会下降吗?

    我在这里主要探讨,期货交易所存在的功能到底是现货商双方的对冲工具以稳定市场价格还是单纯的投机赌场,以此来解释一个商品上市后对现货价格的影响. 我以几个事件为例,谈谈没有期货市场存在后可能会出现的市场状 ...

  5. Python爬取猪肉价格网并获取Json数据

    场景 猪肉价格网站: http://zhujia.zhuwang.cc/ 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获 ...

  6. python绘制等距曲线_python应用之猪肉价格曲线的绘制

    python应用之猪肉价格曲线的绘制 刘巍巍 大家这学期和我一起去食堂的时候,有没有这样的感觉--猪肉居然成了稀奇东西!!!食堂开始大量用鸡肉和鸭肉来代替猪肉.一到菜市场去看,居然猪肉都支持分期付款了 ...

  7. 利用机器学习方法对猪肉价格预测

    基于机器学习对猪肉价格预测 猪肉价格预测 问题背景 导入数据 一.支持向量机 二.随机森林 三. MLP神经网络 猪肉价格预测 支持向量机回归 随机森林回归 MLP神经网络回归 问题背景 " ...

  8. 生猪价格matlab,基于时间序列的BP神经网络猪肉价格预测

    科技创新 2m6钎第20期I科技创新与应用 基于时间序列的BP神经网络猪肉价格预测 张津张瑞斌 (成都理工大学管理科学学院,四川成都610059) 摘要:猪肉价格是不稳定的,起伏变化的,猪肉价格的预测 ...

  9. 今有2018年1月1日—15日的猪肉价格和牛肉价格的数据,它们存在于一个Excel表格中,将其读入Python中并用一个数据框变量df保存。分别绘制1月1日—10日的猪肉价格和牛肉价格走势

    读取Excel数据表并保存数据框df import numpy as np import pandas as pd import pylab as plt import matplotlib.pypl ...

最新文章

  1. python的切片和索引是什么_NumPy 切片和索引
  2. linux memcached php 整合
  3. 【Latex】一些使用
  4. HDU 1856 More is better【并查集】
  5. 工业用微型计算机(21)-指令系统(17)
  6. 机器学习 数据模型_使用PyCaret将机器学习模型运送到数据—第二部分
  7. Css 选择器 算法 规则
  8. CF710F-String Set Queries【AC自动机,二进制分组】
  9. java netbeans 教程_NetBeans 教程
  10. Leetcode--91. 解码方法
  11. TCP和UDP,HTTP和HTTPS
  12. WinAPI【远程注入】利用远程线程注入DLLDelphi版
  13. Mysql全国省区县地区码
  14. 究竟云计算就业前景好不好 零基础如何学云计算
  15. python新建记事本_python怎么创建文本文件
  16. 高考放榜季 | 知道创宇全方位保障教育政务网站安全可用
  17. 网络原理4 数据链路层
  18. 设置vscode背景图片
  19. 异常检测方法-MAD
  20. 警告!从ISO映像创建的U盘可能无法完全启动!Unknown引导扇区不支持NTFS文件系统

热门文章

  1. 怎么批量修改多个视频的尺寸大小?
  2. hibernate运行一段时候后出现假死现象
  3. 一:My Batis快速入门
  4. 汉城大学学生口中的韩国IT产业战略
  5. 【8.9】重拾编程之心 Java基础
  6. easy ui treegrid使用
  7. portainer添加mysql
  8. 史上最全的亚马逊、ebay、shopee多账号运营防关联技巧__多账号管理、独立浏览器AdsPower
  9. 【每天学一点 - 算法篇 - 排序 - 希尔排序】
  10. CSS的letter-spacing属性字符间距设置