核密度估计

快速和准确的最先进的二元核密度估计量

23.8 k下载

更新2015年12月30日

查看许可协议

快速和准确的最先进的二元核密度估计量与对角矩阵带宽。
内核被假定为高斯。这两种带宽参数选择优化没有
使用/假设参数模型的数据或任何“拇指规则”。与其他程序,这一个
免疫失败多通道密度估计的准确性与广泛的分离模式(见示例)。
输入:
数据——一个N×2与连续数据数组
n - n×n大小密度计算网格
n必须是2的幂,否则n = 2 ^装天花板(log2 (n));默认值是2 ^ 8;
MIN_XY MAX_XY——的边界框的极限密度计算;
格式是:
MIN_XY = [lower_Xlim lower_Ylim]
MAX_XY = [upper_Xlim, upper_Ylim]。

dafault限制计算为:
MAX = MAX(数据,[],1);MIN = MIN(数据,[],1);范围=不等式性质;
MAX_XY = MAX + / 4;MIN_XY = MIN-Range / 4;
输出:
带宽-一个行向量的两个最优带宽bivaroate高斯内核;
格式是:
带宽= [bandwidth_X, bandwidth_Y];
密度——一个“n”的“n”矩阵包含的密度值' n ' ' n '网格;
密度是不计算,除非函数要求这样的输出;
X, Y -的meshgrid变量“密度”计算;
预期的使用情况如下:
冲浪(X, Y,密度)
示例(简单的高斯混合)
清除所有
%生成高斯混合与远方的模式
data = [randn (500 2);
randn (500 1) + 3.5, randn (500,1);];
%调用例程
(带宽、密度,X, Y) = kde2d(数据);
%的阴谋和密度估计的数据
contour3 (X, Y,密度,50),等等
情节(数据(:1),数据(:,2),‘r。’,‘MarkerSize’, 5)

示例(高斯混合与远方模式):

清除所有
%生成高斯混合与远方的模式
data = [randn (100 1), randn (100 1) / 4;
randn randn(100 1) + 18日(100 1);
randn (100 1) + 15, randn(100 1) /最近;];
%调用例程
(带宽、密度,X, Y) = kde2d(数据);
%的阴谋和密度估计的数据
冲浪(X, Y,密度,“线型”,“没有一个”),视图([0,60])
colormap热,等等,α(8)
集(gca,“颜色”,“蓝色”);
情节(数据(:1),数据(:,2),“w。”,“MarkerSize”, 5)

示例(正弦密度):

清除所有
X =兰德(1000 1);Y = sin (X * 10 *π)+ randn(大小(X)) / 3;数据= (X, Y);
%应用程序
(带宽、密度,X, Y) = kde2d(数据);
%的阴谋和密度估计的数据
冲浪(X, Y,密度,“线型”,“没有一个”),视图([0,70])
colormap热,等等,α(8)
集(gca,“颜色”,“蓝色”);
情节(数据(:1),数据(:,2),“w。”,“MarkerSize”, 5)

参考:
通过扩散核密度估计
z Botev, j·f·葛,d . p . Kroese (2010)
年报的统计,卷38岁的5号,第2957 - 2916页
doi: 10.1214 / 10-aos799

引用作为

Zdravko Botev (2023)。核密度估计(//www.tianjin-qmedu.com/matlabcentral/fileexchange/17204-kernel-density-estimation), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2015a
兼容任何释放
平台的兼容性
窗户 macOS Linux
类别
找到更多的在基因组学和下一代测序帮助中心MATLAB的答案

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!
版本 发表 发布说明
1.3.0.0

该算法使用FFT速度。有时舍入由于使用FFT计算错误导致极低密度值(例如-10 ^ -17)。现在任何这样的值设置为机器的精度。
用旧的标题“核密度估计”;更新参考

1.2.0.0

更新参考,增加新许可证应Matlab

1.0.0.0