関数 > データ解析 > 平滑化 > 例:X-Y データの平滑化
例:X-Y データの平滑化
関数ksmoothmedsmooth、およびsupsmoothを使用して x-y データを平滑化します。movavg関数を使用して、特定の幅のウィンドウを使用した移動平均をとります。
1. 行列の 1 列目に x の値、行列の 2 列目に y の値を定義します。
クリックしてこの式をコピー
2. 列 0 を昇順で並べ替えます。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
ksmooth
ksmooth は、平滑化ウィンドウを制御する帯域幅 b でガウスカーネル法による vy の局所加重平均のベクトルを返します。
帯域幅 b は、目的の平滑化の程度に応じて、X 軸上のデータ点の間隔の数倍に設定します。帯域幅が大きくなるにしたがい、平滑化の曲線は滑らかになります。
1. X の最小値と最大値の間の値に b を設定します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. ksmooth 関数を計算します。
クリックしてこの式をコピー
3. ksmooth 関数をプロットします。
クリックしてこの式をコピー
帯域幅の選択は慎重に行ってください。帯域幅が大きすぎると、データセット全体が平均化されて特徴が失われます。帯域幅が小さすぎると、平滑化されたデータ内に不自然な部分が生じます。上記の b を 0.01 から 2 の値に変更して、このことを確認してみてください。
medsmooth
medsmooth は、vy の各値を、その値を中心とする n 個の点の中央値に置き換えることで、平滑化されたベクトルを返します。
平滑化ウィンドウ引数 n は奇数の整数でなければなりません。
1. n を奇数の整数として定義します。
クリックしてこの式をコピー
2. medsmooth 関数を計算します。
クリックしてこの式をコピー
3. medsmooth 関数をプロットします。
クリックしてこの式をコピー
supsmooth
supsmooth にはその他に引数は必要ありません。
1. supsmooth 関数を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
上記の 3 つの平滑化したデータを元のデータと比較します。
movavg
1. ウィンドウ幅を設定します。
クリックしてこの式をコピー
ウィンドウの幅が広くなるにしたがい、平滑化の曲線は滑らかになります。データ点の数は 100 個です。
2. movavg 関数を計算します。
クリックしてこの式をコピー
3. movavg 関数をプロットします。
クリックしてこの式をコピー
元のデータの分散のしかたによっては、上記のいずれかの平滑化関数がその他の平滑化関数よりも必要な平滑化データを生成するのにより適している場合があります。
これは役に立ちましたか?