生猪价格预测及决策讨论

前一篇博客讨论了生猪价格的一些影响因素以及价格预测的模型表现,基于GA-BP神经网络的模型极容易出现欠拟合的现象:在生猪价格出现“暴涨”或“暴跌”的现象时。模型的预测结果欠佳。因此,本文将继续探讨基于SVM模型的生猪价格预测策略的建构和表现,并且将谈论基于价格预测的企业决策思路。(基于神经网络的价格回归及其分析:https://blog.csdn.net/weixin_43990004/article/details/90299800)

  1. 基于SVM的生猪价格预测模型
    本例采用python语言sklearn库中的SVM模型,数据还是基于温氏公开市场价来预测,我们把模型的输入量定为前6日生猪价格的历史数据;同时前600组数据作为模型的训练集,后257组数据作为测试集。数据来源见前述文章。

构建模型:

from sklearn import svm
import matplotlib.pyplot as plt 
import numpy as np 
from numpy import *
#读取数据集
f = open("input.txt",'r')
lines = f.readlines()
number_A = len(lines)
P=zeros((number_A,8),dtype=float)
A_ROW = 0
for line in lines:
	list = line.strip('\n').split('	')
	P[A_ROW:] = list[0:8]
	A_ROW +=1
print(P)
#划分训练集及测试集
P_train = P[0:600,0:6]
value_train = P[0:600,7]
P_test = P[601:,0:6]
value_test = P[601:,7]
#调用模型、训练及预测
classifier = svm.SVR()
classifier.fit(P_train,value_train)
value_test_pf = classifier.predict(P_test)

2.模型结果
调用matplotlib库对预测结果进行绘图展示:

#绘图
x = range(len (value_test))
plt.plot(x,value_test,'r-o',label='Real price')
plt.plot(x,value_test_pf,'b-*',label='Predict price')
plt.legend()
plt.show()

#模型表现
value = np.array([value_test,value_test_pf])
r = np.corrcoef(value)
print(r)		

下图即为本次模型测试的结果:
在这里插入图片描述
在这里插入图片描述
结果讨论:

  • svm模型的表现相比于GA-BP模型较差一点,相关性分析只有97.07%;
  • 相对于GA-BP模型,SVM没有出现欠拟合的现象,生猪价格出现暴涨暴跌的情况;
  • 当前模型的输入量为前6日生猪价格的历史数据,从散点图的对比可以看出svm模型的预测值依然出现了滞后的情况;
  • 从两次模型的表现来看,想要破除模型滞后的情况,应该从输入数据入手,加入诸如母猪存栏量、屠宰量、消费量等数据。

3.基于价格预测与波动的企业决策探讨
如果模型可以准确预测未来多天的生猪价格,其实预测并不是最终的目的,所有的数据分析均要有利于企业的决策相关,才有意义,因此本节将探讨生猪价格预测基础之上企业应做的决策调整有哪些方面:

  • 养殖场层面
    (1)当生猪价格能够预测或者能够较为准确预测涨跌的情况之下,养殖场应该对生猪的买卖做好规划,比如在猪价下跌几日有反弹的情况下,应基于成本考虑做出一定比例生猪的压栏;
    (2)当生猪价格暴跌时或者猪周期来临,应该考虑对整场的生猪结构做出长远的规划,借势淘汰一些产能底下的母猪,优化整个母猪的结构。如下图所示,母猪的胎次与产仔数存在着凸型表现。当然淘汰母猪是一个需要综合考虑的决策,需要考虑到母猪自身的繁殖性能、养殖场成本等因素;
    在这里插入图片描述
    (3)优化绩效考核制度,规划猪场的薪资结构行业内一般以“基本工资+绩效工资”的形式发放,另一方面绩效工资还根据不同阶段的饲养员不同绩效考核指标的原则制定,如育肥猪可能是一批猪卖出的收益来定,而分娩母猪可能是哺乳仔猪的断奶均重来定,因此在生猪价格波动的情况下,应该制定更为灵活的绩效考核目标,同时如能预测生猪价格,饲养员可以提前知道自己的绩效工资,在制定激励措施上更为准确而有效。
  • 企业层面
    (1)优化养殖场的布局:养殖场的布局优化,商品场/母猪场等的比例优化,实现利益最大化;
    (2)优化产业链布局:在适时的时机发展全产业链,并且根据猪价的波动来调整业务的比重。
  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,我可以给您提供一个简单的生猪价格预测脚本。需要使用到的库包括pandas、numpy、sklearn和matplotlib等。 首先,我们需要准备好生猪价格的数据集,可以从数据网站上下载CSV格式的文件。然后,读取数据集并进行处理: ```python import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt # 读取数据集 data = pd.read_csv('pig_price.csv') # 数据预处理 data = data.dropna() # 删除缺失值 data = data[data['date'] >= '2019'] # 只保留2019年以后的数据 # 将日期转换为时间戳 data['timestamp'] = pd.to_datetime(data['date']).astype(np.int64) // 10**9 # 划分特征和标签 X = data['timestamp'].values.reshape(-1, 1) y = data['price'].values.reshape(-1, 1) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` 然后,我们可以使用线性回归模型进行训练和预测: ```python # 训练模型 lr = LinearRegression() lr.fit(X_train, y_train) # 预测测试集 y_pred = lr.predict(X_test) # 可视化结果 plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.show() ``` 最后,我们可以使用模型进行生猪价格预测: ```python # 预测未来30天的生猪价格 future_dates = pd.date_range(start='2022-01-01', end='2022-01-30') future_timestamps = future_dates.astype(np.int64) // 10**9 future_prices = lr.predict(future_timestamps.reshape(-1, 1)) # 可视化预测结果 plt.plot(future_dates, future_prices, color='blue', linewidth=3) plt.show() ``` 这样就能够得到未来30天的生猪价格预测结果了。当然,这只是一个简单的预测模型,实际中可能需要更复杂的模型和更多的特征来提高预测准确度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值