📄 sufficient_statistics.m
字号:
function [S1, S2] = Sufficient_statistics(data, distribution)
%Find sufficient statistics for data assuming a distribution
%Inputs:
% data - The data from which to estimate
% distribution - What distribution is the data taken from. Can be one of:
% Normal, MultivariateNormal, Exponential, Rayleigh, Maxwell, Gamma,
% Beta, Poisson, Bernoulli, Binomial, Multinomial
%
%Outputs:
% S - The sufficient statistics
[D, N] = size(data);
switch distribution
case 'Normal',
S1 = 1/N*sum(data')';
S2 = 1/N*sum(data'.^2)';
case 'MultivariateNormal',
S1 = 1/N*sum(data')';
S2 = 1/N*(data*data');
case {'Exponential', 'Poisson', 'Bernoulli', 'Binomial', 'Multinomial'}
S1 = 1/N*sum(data')';
S2 = [];
case {'Rayleigh', 'Maxwell'},
S1 = 1/N*sum(data'.^2)';
S2 = [];
case 'Gamma',
S1 = prod(data').^(1/N);
S2 = 1/N*sum(data')';
case 'Beta',
S1 = prod(data')'.^(1/N);
S2 = prod(1-data')'.^(1/N);
otherwise
error('Unknown distribution')
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -