如何在MATLAB中进行数据拟合

在进行评价时,我们常常需要进行问卷调查,并根据专家打分的结果进行下一步的计算。

这时候,我们需要检查一下专家打分结果是否符合离散度要求(一般离散度<0.05),如果专家数据过于离散,势必会对后面的模型产生影响。

最好的方式是计算离散度后,让专家重新调整打分(云模型就是这种方法),但是在实际操作中较为困难。

那么,我们能否对数据进行科学处理,使数据更严谨呢?是否能操作,很大程度上取决于方法是否得当、科学。

这里介绍一种用MATLAB进行数据拟合的方法,供各位参考。PS:MATLAB的表格不太熟练,专家编号是1,2,3,4;评估项的编号是ABCD。


表1
专家/评估项 A B C D
1 73 75 63 75
2 71 87 89 80
3 64 76 85 76
4 66 90 63 88

计算每位专家的离散系数

离散系数=标准差/均值


表2
专家 离散系数
1 0.06968
2 0.086226
3 0.099168
4 0.160471

从表2看出,4位专家的打分结果都不理想,因此进行拟合,代码如下。


clear all
clc
format long g %不以科学计数法出现最终结果
x=1:4;
y1=[0.73 ,0.75 ,0.63 ,0.75];
y2=[0.71 ,0.87 ,0.89 ,0.80];
y3=[0.64 ,0.76 ,0.85 ,0.76];
y4=[0.66 ,0.90 ,0.63 ,0.88];
p1=polyfit(x,y1,2);
p2=polyfit(x,y2,2);
p3=polyfit(x,y3,2);
p4=polyfit(x,y4,2);
xi=1:0.5:4;%这里拟合精度是0.5,如果拟合效果不理想,可继续提高精度
yi1=polyval(p1,xi);
yi2=polyval(p2,xi);
yi3=polyval(p3,xi);
yi4=polyval(p4,xi);
C1=mean(yi1);
C2=mean(yi2);
C3=mean(yi3);
C4=mean(yi4);
std2(yi1);
std2(yi2);
std2(yi3);
std2(yi4);
S1=std(yi1)^2%检查离散度
S2=std(yi2)^2
S3=std(yi3)^2
S4=std(yi4)^2

拟合结果如下

S1 =

  0.000588875000000008

S2 =

   0.00439913541666667

S3 =

   0.00477421875000001

S4 =

   0.00177996875000001

发现精度为0.5时,拟合结果已经满足要求,直接使用拟合后的均值即可,如未满足就继续提高精度拟合。
发布了5 篇原创文章 · 获赞 4 · 访问量 979

猜你喜欢

转载自blog.csdn.net/weixin_44616447/article/details/104915711