您當前的位置:首頁 > 攝影

實驗一:MATLAB檔案讀寫操作與資料預處理及描述性統計量計算

作者:由 宇智波帶土 發表于 攝影時間:2018-05-05

MATLAB檔案讀寫操作與資料預處理及描述性統計量計算

該程式為一些實驗報告的程式結果,主要是針對資料的相關描述統計。

1:使用readtable讀取資料,並將資料儲存為資料表

% 的資料計入Matlab工作區,以備後用;

filename

=

‘shiyanyishuju。xlsx’

data

=

readtable

filename

);

讀入的資料結果部分如下圖所示:

實驗一:MATLAB檔案讀寫操作與資料預處理及描述性統計量計算

問題2:程式如下:

%% 箱線圖

boxplot(data{:,2:end},‘notch’,‘on’,‘labels’,{‘EXPE’,‘QUAL’,‘VALU’,‘SATI’},。。。

‘whisker’,2)

title(‘滿意度資料箱線圖’)

得到的箱線圖如下:

實驗一:MATLAB檔案讀寫操作與資料預處理及描述性統計量計算

從箱線圖中可以看出:變數1數值小於等於5的資料為異常值,變數二、三、四資料小於等於二的資料為異常值

%% 兩兩配對散點圖

gplotmatrix(data{:,2:end},[],[],。。。

‘r’,‘o’,3,‘on’,‘hist’,{‘EXPE’,‘QUAL’,‘VALU’,‘SATI’},。。。

{‘EXPE’,‘QUAL’,‘VALU’,‘SATI’})

title(‘矩陣散點圖’)

實驗一:MATLAB檔案讀寫操作與資料預處理及描述性統計量計算

剔除異常觀察資料;

% 從箱線圖中可以看出:變數一數值小於等於5的資料為異常值,

% 變數二、三、四資料小於等於二的資料為異常值

index = data{:,2} > 5 & data{:,3} > 2 & data{:,4} > 2 & data{:,5} > 2;

newdata = data(index,:); % 剔除異常值後的資料

sum(index) % 剔除異常值後總共資料條數

剔除資料後還剩下921條記錄

ans = 921

問題2:使用varfun函式,對資料集表中的每個變數進行相應的操作,程式和結果如下:

% 最小值

newdatamin = varfun(@min,newdata(:,2:end))

% 最大值

newdatamax = varfun(@max,newdata(:,2:end))

% 均值

newdatamean = varfun(@mean,newdata(:,2:end))

% 眾數

newdatamode = varfun(@mode,newdata(:,2:end))

% 中位數

newdatamedian = varfun(@median,newdata(:,2:end))

% 方差

newdatavar = varfun(@var,newdata(:,2:end))

% 標準差

newdatastd = varfun(@std,newdata(:,2:end))

結果:

newdatamin =

min_EXPE min_QUAL min_VALU min_SATI

________ ________ ________ ________

6 3 3 3

newdatamax =

max_EXPE max_QUAL max_VALU max_SATI

________ ________ ________ ________

10 10 10 10

newdatamean =

mean_EXPE mean_QUAL mean_VALU mean_SATI

_________ _________ _________ _________

8。2747 7。9088 7。6504 7。8132

newdatamode =

mode_EXPE mode_QUAL mode_VALU mode_SATI

_________ _________ _________ _________

8 8 8 8

newdatamedian =

median_EXPE median_QUAL median_VALU median_SATI

___________ ___________ ___________ ___________

8 8 8 8

newdatavar =

var_EXPE var_QUAL var_VALU var_SATI

________ ________ ________ ________

1。1212 1。5917 1。7581 1。6955

newdatastd =

std_EXPE std_QUAL std_VALU std_SATI

________ ________ ________ ________

1。0589 1。2616 1。3259 1。3021

計算變數之間的方差和相關係數

% 變數協方差

cov(newdata{:,2:end})

ans =

1。1212 0。7088 0。6614 0。6666

0。7088 1。5917 1。0083 1。0906

0。6614 1。0083 1。7581 1。2172

0。6666 1。0906 1。2172 1。6955

% 變數相關係數

corr(newdata{:,2:end})

ans =

1。0000 0。5306 0。4711 0。4835

0。5306 1。0000 0。6028 0。6639

0。4711 0。6028 1。0000 0。7050

0。4835 0。6639 0。7050 1。0000

% 幾何平均

newdatageomean = varfun(@geomean,newdata(:,2:end))

% 調和平均

newdataharmmean = varfun(@harmmean,newdata(:,2:end))

% 極差

newdatarange = varfun(@range,newdata(:,2:end))

newdatageomean =

geomean_EXPE geomean_QUAL geomean_VALU geomean_SATI

____________ ____________ ____________ ____________

8。2049 7。798 7。5259 7。6901

newdataharmmean =

harmmean_EXPE harmmean_QUAL harmmean_VALU harmmean_SATI

_____________ _____________ _____________ _____________

8。1328 7。6734 7。3891 7。5455

newdatarange =

range_EXPE range_QUAL range_VALU range_SATI

__________ __________ __________ __________

4 7 7 7

% 絕對平均偏差

newdatamad = varfun(@mad,newdata(:,2:end))

% 四分位數極差

newdataiqr = varfun(@iqr,newdata(:,2:end))

newdatamad =

mad_EXPE mad_QUAL mad_VALU mad_SATI

________ ________ ________ ________

0。85914 0。94503 1。0756 0。9906

newdataiqr =

iqr_EXPE iqr_QUAL iqr_VALU iqr_SATI

________ ________ ________ ________

1 2 2 2

% 分為數

quantile(newdata{:,2:end},[0。025,0。25,。5,。75,。975],1)

ans =

6 5 5 5

8 7 7 7

8 8 8 8

9 9 9 9

10 10 10 10

計算標準變換系數

實驗一:MATLAB檔案讀寫操作與資料預處理及描述性統計量計算

% 中心矩

moment(newdata{:,2:end},3)

% 偏度

skewness(newdata{:,2:end})

% 峰度

kurtosis(newdata{:,2:end})

% 便相關係數

partialcorr(newdata{:,2:end})

ans =

-0。1739 -1。0039 -0。7776 -1。3812

ans =

-0。1467 -0。5008 -0。3341 -0。6266

ans =

2。5663 3。2753 2。8462 3。6709

ans =

1。0000 0。2823 0。1402 0。1107

0。2823 1。0000 0。2017 0。3713

0。1402 0。2017 1。0000 0。4873

0。1107 0。3713 0。4873 1。0000

標簽: ________  end  newData  EXPE  Qual