[英]Matlab ksdensity not working properly
我正在使用嚴格的正觀測向量(它們是距離度量)。
我將此向量與ksdensity
結合使用,以感覺到密度函數,並且令人驚訝地它包含負值。 這意味着有一個觀察所有負值區間的正可能性。
這是不正確的,因為我知道我的觀察都是積極的。
為什么ksdensity
這樣做? 我感覺到,假設連續微分,它會完成曲線。 這是正確的假設嗎?
有沒有Matlab不會猜測而只給出經驗累積函數的“導數”的選項?
ksdensity
返回的概率密度估計基於正常內核函數的假設。 如果您的數據的值接近零,那么在對各個內核求和時,您自然會與負數有一些重疊:
( 圖片來源 )
直方圖不會出現此問題,因為它僅顯示實際存在的值。 要糾正該錯誤,您可以指定其他分布(由Mathworks稱為“內核平滑器”),甚至可以添加自定義分布。 例如:
[f,xi] = ksdensity(x,pts,'kernel','epanechnikov')
用epanechnikov代替正態分布。
編輯:
...並證明您應該始終先閱讀文檔,我才發現可以將內核密度估計值限制為正值:
x = gamrnd(5,7,1000,1);
[f,xi] = ksdensity(x,'support','positive');
figure
plot(xi,f,'linewidth',2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.