#用法:
#假设数列1 2 3 4 5.5 6 7.5 为已知数据,你要预测后面3项,gm11([1 2 3 4 5.5 6 7.5],10) # 10=7+3
# 序列输入格式为:x<-c(1,2,3,4,5.5,6,7.5)
gm11<-function(x,k)
{
#x为行向量数据
#做一次累加
n<-length(x)
x1<-numeric(n)
for(i in 1:n)
{
x1[i]<-sum(x[1:i])
}
#x1的均值数列
z1<-numeric(n)
m<-n-1
for(j in 1:m)
{
z1[j+1]<-(0.5*x1[j+1]+0.5*x1[j])
}
Yn=t(t(x[2:n]))
B<-matrix(1,nrow=n-1,ncol=2)
B[,1]<-t(t(-z1[2:n]))
#solve(M)求M的逆
#最小二乘法求解参数列
u<-solve(t(B)%*%B)%*%t(B)%*%Yn
a<-u[1]
b<-u[2]
#预测
x2<-numeric(k)
x2[1]<-x[1]
for(i in 1:k-1)
{
x2[1+i]=(x[1]-b/a)*exp(-a*i)+b/a
}
x2=c(0,x2)
#还原数据
y=diff(x2)
y
}
#调用函数
x<-c(1,2,3,4,5.5,6,7.5)
gm11(x,10)
这种预测的方法很多,给你一个相当容易的灰色预测代码吧。y=input('输入数据’)
n=length(y)
yy=ones(n,1)
yy(1)=y(1)
for i=2:n
yy(i)=yy(i-1)+y(i)
end
B=ones(n-1,2)
for =1:(n-1)
B(i,1)=-(yy(i)+yy(i+1))/2
B(i,2)=1
end
BT=B'
for j=1:(n-1)
YN(j)=y(j+1)
end
YN=YN'
A=inv(BT*B)*BT*YN
a=A(1)
u=A(2)
t=u/a
t_test=input('输入要预测的个数')
i=1:t_test+n
yys(i+1)=(y(1)--t).*exp(--a.*i)+t
yys(1)=y(1)
for j=n+t_test:-1:2
ys(j)=yys(j)--yys(j-1)
end
x=1:n
xs=2:n+t_test
yn=ys(2:n+t_test)
plot(x,y,'^r',xs,yn,'*-b')
det=0
for i=2:n
det=det+abs(yn(i)--y(i))
end
det=det/(n-1)
disp(['百分绝对误差为:',num2str(det),'%'])
disp(['预测值为:'num2'str(ys(n+1:n+t_test))])
总体上来讲,数据分析挖掘体系可分为 数据预处理、分析挖掘、数据探索、数据展现和分析工具 。
数据预处理
数据预处理包含 数据清洗、数据集成、数据变换和数据规约 几种方法。
而数据清洗包括缺失值处理和异常值处理;
数据集成包括同名同义、异名同义、单位不统一的实体识别和冗余性识别。数据变化包括函数变换、规范化、连续属性离散化、属性沟通和小波变换。数据规约包括属性规约和数值规约。
分析挖掘
分析挖掘的内容就多了。包括假设检验、方差分析、回归分析、主成分分析、因子分析、典型相关分析、对应分析、多维尺度分析、信度分析、生存分析、分类预测、聚类分析、关联规则、时间序列分析和著名的灰色理论。后几个应用较多。
分类预测的方法包括决策树、神经网络、支持向量机(SVM)、Logistic回归、判别分析和贝叶斯网络。
聚类分析包括K-Means聚类、kohonen网络聚类、两步聚类和层次聚类。
关联规则的算法有Apriori算法、GRI算法和Carma算法。
时间序列分析包括:简单回归分析法。
趋势外推法、指数平滑法、自回归法、ARIMA模型、季节调整法。
灰色理论可分为灰色关联和灰色预测。
数据探索
数据探索主要分为两大类,数据质量分析和数据特征分析。
数据质量分析包括缺失值分析、异常值分析和一致性分析。
数据特征分析包括分布分析、对比分析、统计量分析、周期性分析、贡献度分析和相关性分析。
分析工具
常用的分析工具有Excel、clementine、Eviews、R语言、Matlab、Stata、SAS、Tableau、报表工具FineReport、商业智能FineBI
数据展现
在数据展现方面要做的内容可分为图表制作和数据分析报告的撰写,这两方面之前都写过详细的
文章图表制作可以用柱形图、条形图、折线图、饼图、面积图、雷达图、散点图等等。展现的方式可以是单图,组合图,多图搭配的dashboard或者深入分析的联动钻取等。
整理的思维导图如下(建议收藏):