當我在Matlab使用[f,xi] = ksdensity(x)
,我得到的概率密度估計,˚F,在這ksdensity計算˚F十一評估點。ksdensity如何計算每個數據點xi?
我的問題是:如何在每個十一點計算/確定?有配方嗎?
文檔中心說:默認值是100個等間隔的點,覆蓋x中的數據範圍。所以它們涵蓋了範圍,但這並不能解釋如何計算。
非常感謝!
涓
當我在Matlab使用[f,xi] = ksdensity(x)
,我得到的概率密度估計,˚F,在這ksdensity計算˚F十一評估點。ksdensity如何計算每個數據點xi?
我的問題是:如何在每個十一點計算/確定?有配方嗎?
文檔中心說:默認值是100個等間隔的點,覆蓋x中的數據範圍。所以它們涵蓋了範圍,但這並不能解釋如何計算。
非常感謝!
涓
在MATLAB實現等間隔的點是使用linspace
命令的標準方法。 linspace(a,b,n)
在a
和b
之間產生n
線性間隔點。
因此,最有可能是相當於xi = linspace(min(x),max(x))
(點默認號碼是linspace
100)。
非常感謝@pseudoDust和ramanan,但是你的答案似乎沒有一個可行。 如果我用作示例: 'Data = [365629; 258213; 30986; 340841; 82628; 92957; 10329; 454454; 0; 51643; 309855; 82628; 51643; 10329; 41314; 41314; 330512; 0; 92957 ; 227227; 123942; 433797; 423469; 464783; 826280; 433797; 206570; 433797; 61971; 123942; 82628; 0; 113614; 960551; 557739; 113614; 113614]; [PDF,xi] = ksdensity(Data,'kernel','epanechnikov','npoints',10); xi_ramanan = linspace(min(Data),max(Data),10); 對於i = 1:100; (i)= min(Data)+ i *(max(Data)-min(Data))/ 100;其中, 端;' 的結果是不一樣的ksdensity的_xi_ =/ – Juan
確定。現在你已經顯示了你的數據。異常是因爲存在0。由於它們的原因,你的數據會與負數值有一些重疊,導致'數據'中原來不存在的'xi'。更詳細的解釋提供在http://stackoverflow.com/questions/17410155/matlab-ksdensity-not-working-procellly – ramanan
謝謝!我之前已經閱讀過這個帖子,但是我的問題依然如此:每個_xi_如何計算? = P – Juan
我想'@(i)= min(x)+ i *(max(x)-min(x))/ 100' – pseudoDust