24小时热门版块排行榜    

查看: 4569  |  回复: 12

yoyo0201

金虫 (著名写手)

引用回帖:
10楼: Originally posted by 43fd6ys at 2015-08-02 20:58:56
应该全正,计算为负应检查算法的正确性.

直接用matlab的 ksdensity得到的结果,我看help,还没有搞掂区间为正的。编程真心烦
11楼2015-08-02 22:15:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yoyo0201

金虫 (著名写手)

引用回帖:
8楼: Originally posted by mygt_hit at 2015-08-02 15:12:34
你看看Ksdensity的帮助,通过属性名-属性值可以设置核函数,也可以设置其他参数。

例如:通过核函数估计CDF的。
x = ;
xi = linspace(-10,15,201);
f = ksdensity(x,xi,'function','cdf');
plot(xi,f);

...

x1=[0.095        0.118        0.122        0.04        0.051        0.091        0.095        0.098        0.106        0.122        0.126        0.15        0.2        0.059        0.079        0.106        0.126        0.138        0.02        0.067        0.07        0.087        0.098        0.098        0.102        0.103        0.114        0.118        0.122        0.13        0.146        0.15        0.154];
[f1,x1i] = ksdensity(x1);
plot(x1i,f1) 这样出现负数。。

修改成这样:[f1,x1i] = ksdensity(x1,linspace(0,max(x1)),'function','pdf'); 不会出现负数了。这样对么?和直接用ksdensity一样?我用帮助里面的例子去修改,发现得到的概率密度函数图差别还是蛮大的~~现在就是想去掉负数,设置positive,图形变化太大了
12楼2015-08-02 23:20:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mygt_hit

专家顾问 (职业作家)

【答案】应助回帖

引用回帖:
12楼: Originally posted by yoyo0201 at 2015-08-02 23:20:02
x1=;
= ksdensity(x1);
plot(x1i,f1) 这样出现负数。。

修改成这样: = ksdensity(x1,linspace(0,max(x1)),'function','pdf'); 不会出现负数了。这样对么?和直接用ksdensity一样?我用帮助里面的例子去修改 ...

我明白你的意思了。你是希望把随机变量的取值范围限制为正数,我以为是PDF出现负值了。
[f1,x1i] = ksdensity(x1,linspace(0,max(x1)),'function','pdf');这条语句只不过是计算了区间[0, max(x1)]上100个等分点的PDF,得到的PDF的自变量(也就是随机变量)的取值范围仍在整个实数轴上。
我建议改成这样的语句:限定取值范围为正数。
[f1,x1i] = ksdensity(x1,'support','positive');   
plot(x1i,f1)
知其然,知其所以然。
13楼2015-08-03 18:22:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yoyo0201 的主题更新
信息提示
请填处理意见