2012-05-01 12 views
1

私はMATLABでこの形式のksdensity関数を使用しています。Matlabのksdensityのポイント範囲

[f,xi] = ksdensity(x)

ドキュメントは「fがXIの点で評価された濃度値のベクトルである...密度は、xのデータの範囲をカバー100等間隔点で評価されている。」と述べています

私のxi値は、xのデータよりもはるかに広い範囲をカバーしています。どうしてこれなの?私のデータについては

>> min(x) 

ans = 

    -2.2588 

>> min(xi) 

ans = 

    -6.8010 
>> max(x) 

ans = 

    6.5326 

>> max(xi) 

ans = 

    11.0748 

私は私が自分自身の範囲XIを指定することができます知っているが、なぜそれが平等に、デフォルトでは、xの最小値と最大値の間の間隔を置いて配置されていませんか?

ヒストグラムのビンがxの範囲をカバーするだけでは、ヒストグラム推定値とカーネル推定値を比較するのが難しくなりますが、ksdensityから与えられたテストポイントはこの範囲を超えます。

答えて

1

ksdensityは、ガウスカーネルでヒストグラムを平滑化します。実例として、インパルス応答の出力を確認してください。

[f,xi] = ksdensity(0); 
plot(xi,f) 

enter image description here

ガウスの幅は、あなたがどの缶(データの両側に約3を追加しますことを意味し、1であります厳密に正のヒストグラムに負の値があるかのように見せてください)。したがって、データの範囲が狭い場合は、カーネルの幅をksdensityに縮小する必要があります。