如何在MATLAB中進行數據擬合

在進行評價時,我們常常需要進行問卷調查,並根據專家打分的結果進行下一步的計算。

這時候,我們需要檢查一下專家打分結果是否符合離散度要求(一般離散度<0.05),如果專家數據過於離散,勢必會對後面的模型產生影響。

最好的方式是計算離散度後,讓專家重新調整打分(雲模型就是這種方法),但是在實際操作中較爲困難。

那麼,我們能否對數據進行科學處理,使數據更嚴謹呢?是否能操作,很大程度上取決於方法是否得當、科學。

這裏介紹一種用MATLAB進行數據擬合的方法,供各位參考。PS:MATLAB的表格不太熟練,專家編號是1,2,3,4;評估項的編號是ABCD。


表1
專家/評估項ABCD
173756375
271878980
364768576
466906388

計算每位專家的離散係數

離散係數=標準差/均值


表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時,擬合結果已經滿足要求,直接使用擬合後的均值即可,如未滿足就繼續提高精度擬合。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章