簡體   English   中英

Matlab ksdensity無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM