《数据挖掘与数据分析(财会)》灰色预测及应用_第1页
《数据挖掘与数据分析(财会)》灰色预测及应用_第2页
《数据挖掘与数据分析(财会)》灰色预测及应用_第3页
《数据挖掘与数据分析(财会)》灰色预测及应用_第4页
《数据挖掘与数据分析(财会)》灰色预测及应用_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大智移云下的财务管理创新思维问题的提出已知最近四年的利润,问:2021年的利润在正常情况下是多少?年度2017201820192020符号利润121.53预测现有预测方法,大都是数理统计方法。例如:回归分析,神经网络,支持向量机,组合预测,时间序列分析等。这些方法:1.要求大样本,即:大数据集2.要求样本有明显的分布规律3.计算工作量大4.可能出现量化的结果与定性分析的结果不符针对这种情况,有学者提出了灰色预测。1.灰色预测的由来华中理工大学邓聚龙教授于1982年提出灰色系统理论。灰色系统指既含有已知信息、又含有未知信息的系统。(部分信息已知,部分信息未知的系统)在自然界和思维领域,不确定性问题普遍存在。大样本、多数据的不确定性问题,可以用概率论和数理统计解决;认识的不确定性问题,可以用模糊数学解决。然而,还有另外一类不确定性问题,即少数据、小样本、信息不完全和经验缺乏的不确定性问题。灰色系统理论是处理少数据不确定性问题的理论。少数据不确定性亦称灰性,具有灰性的系统称为灰色系统。灰理论基本技术(1)灰生成技术灰色系统是通过对原始数据的整理、挖掘来寻求其变化规律的,这是一种就数据寻求数据的现实规律的途径,即为灰色序列的生成,简称灰生成。特点:一切灰色序列都能通过某种生成弱化其随机性,显现其规律性。数据生成的常用方式有累加生成、累减生成和加权累加生成。序号1234符号数值121.53序号1234符号数值134.57.5灰理论基本内容(2)灰关联通过灰生成,系统有了较强规律性的数据序列,利用生成的数据序列建立微分方程模型,从而预测事物未来发展趋势的状况。2.GM(1,1)模型

灰色、模型、一阶、一个

2.GM(1,1)模型

灰色预测步骤

AGO:AcumulatedGeneratingOperation)灰色预测步骤

灰色预测步骤

灰色预测步骤

对表达式进行检验

对结果进行检验

Python代码实现1.准备数据:纵观我们的计算过程,需要用到两个矩阵的点乘和转置,求逆等运算。为了减少代码,使用numpy和pandas包来实现,因此需要引入这两个包。importnumpyasnpimportpandasaspd数据准备年度2001200220032004200520062007财务杠杆系数71.172.472.472.171.472.071.6符号将以上数据准备好。importnumpyasnpimportpandasaspdgao_data=[0]*7#累加生成数据,初始为零p_gao=[0]*7#计算的累加生成系列,计算后放入p_data=[0]*7#预测的未来数据,计算后放入data=pd.DataFrame({"year":[2001,2002,2003,2004,2005,2006,2007],"val":[71.1,72.4,72.4,72.1,71.4,72.0,71.6],"gao_data":gao_data,"p_gao":p_gao,"p_data":p_data})data

取出财务数据:check_data=data.loc[:,”val”]#利用循环,检验数据check_data=data.loc[:,"val"]n=len(check_data)lambda_left=np.exp(-2/(n+1))lambda_right=np.exp(2/(n+1))lambda_1=np.zeros(n-1)foriinrange(1,data_count):lambda_1[i-1]=check_data[i]/check_data[i-1]iflambda_left<lambda_1[i-1]<lambda_right:continueelse:print("data_error")breakelse:print("data_ok")

np中的cumsum函数可以实现这个功能gao_1=np.cumsum(check_data)data["gao_data"]=gao_1

z=np.zeros(n-1)foriinrange(1,n):z[i-1]=(gao_1[i-1]+gao_1[i])/2

x_t=pd.DataFrame([-z,[1]*(n-1)])x=x_t.transpose()y=check_data[1:]beta_1=np.dot(x_t,x)beta_2=np.dot(x_t,y)beta=np.linalg.inv(beta_1).dot(beta_2)

y=[0]*ny_yu=[0]*ny[0]=check_data[0]y_yu[0]=check_data[0]forkinrange(1,n):y[k]=round((y[0]-beta[1]/beta[0])*np.exp(-beta[0]*k)+beta[1]/beta[0],2)forkinrange(n-1,0,-1):y_yu[k]=round(y[k]-y[k-1],2)data["p_gao"]=ydata["p_data"]=y_yu

xi=[0]*nx_0=data["val"]x_bar=data["p_data"]foriinrange(0,n):temp=(x_0[i]-x_bar[i])/x_0[i]xi[i]=tempzeta=max(np.abs(xi))ifzeta<0.1:print("hight")elifzeta<0.2:print("normal")

rou=[0]*(n-1)beta[0]forkinrange(0,n-1):rou[k]=1-((1-0.5*beta[0])/(1+0.5*beta[0]))*lambda_1[k]rou_max=max(np.abs(rou))ifrou_max<0.1:print("hight")elifrou_max<0.2:print("normal")else:print("nouse")如果模型可用,那么就可以预测2008年的数据了。从前面的数据看,2007年时,k=6,因此,将k变为7就是2008年的累加数据:y[7]=round((y[0]-beta[1]/beta[0])*np.exp(-beta[0]*7)+beta[1]/beta[0],2)#从当前数据量(k=6),预测未来两年的数据,则k分别为7,82008年的累加数据-2007年的累加数据,就是2008年的预测值:y_yu[7]=y[7]-y[6]forkinrange(7,12):y[k-6]=round((y[0]-beta[1]/beta[0]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论