範例:平滑處理 X-Y 數據
使用
ksmooth、
medsmooth 與
supsmooth 函數可平滑處理
x-y 數據。而使用
movavg 函數則可透過採用移動平均線與特定寬度的窗,平滑處理數據。
1. 定義矩陣,第一欄中的值為 x,第二欄中的值為 y。
2. 以遞升排序來排序欄 0。
ksmooth
ksmooth 使用高斯核與頻寬 b,傳回 vy 的局部加權平均值的向量;可控制平滑窗。
通常會依照所需要的平滑度,將頻寬 b 設定成 x 軸上數據點之間間隔的數倍。頻寬越大,所得出的曲線越平滑。
1. 將 b 設為介於 X 最小值與最大值之間的值。
2. 計算 ksmooth 函數。
3. 繪製 ksmooth 函數。
選取頻寬時請務必謹慎。頻寬過大會使得細節不見,因為它會平均整個數據集。頻寬過小會在經過平滑處理的數據中建立人工的細節。嘗試將以上的 b 變更為介於 0.01 與 2 之間的數值,以檢視這些效果。
medsmooth
medsmooth 將 vy 中各值都以對準該值中央 n 點的中值取代,即可傳回平滑向量。
平滑窗引數 n 必須是奇整數。
1. 將 n 定義為奇整數。
2. 計算 medsmooth 函數。
3. 繪製 medsmooth 函數。
supsmooth
supsmooth 不需要其他引數。
1. 計算 supsmooth 函數。
比較以上三組平滑數據與原始數據。
movavg
1. 設定窗寬度。
窗愈寬,所得出的曲線愈平滑。數據點數計算求得為 100。
2. 計算 movavg 函數。
3. 繪製 movavg 函數。
視原始數據變異量之不同,以上其中一個平滑函數可能比其他函數更適合產生所需的平滑數據。