読者です 読者をやめる 読者になる 読者になる

MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

StaticsToolbox代わりの統計学用MATLABライブラリを作り始めた。

MATLAB Programming

統計学入門 (基礎統計学)

統計学入門 (基礎統計学)

MATLABプログラミング入門

MATLABプログラミング入門

はじめに

正規分布の累積分布を計算しようと思ったら、

有料のStaticsToolboxにしか関数が無かったので、

自分で実装しました(笑)

Statistics Toolbox Documentation - MathWorks 日本

必要になったら少しづつ追加していく予定です。

正規分布の確率密度関数

下記の関数と同じ動きをするはずです。

正規確率密度関数 - MATLAB normpdf - MathWorks 日本

function pdf=normpdf(x,mu,sigma)
% 正規分布の確率密度関数PDFを計算する関数
% StaticsToolBoxのnormpdf関数と同じ機能にしたつもり
% 参照:
% 正規分布 - MATLAB & Simulink - MathWorks 日本 
% http://jp.mathworks.com/help/stats/normal-distribution.html

if nargin==1
    mu=0;
    sigma=1;
elseif nargin==2
    sigma=1;
end

prefix=1/sqrt(2*pi)/sigma;
pdf=prefix.*exp(-(x-mu).^2./(2*sigma^2));

正規分布の累積分布関数

下記の関数と同じ動きをするはずです。

正規累積分布関数 - MATLAB normcdf - MathWorks 日本

function cdf=normcdf(x,mu,sigma)
%正規累積分布関数CDFと計算する関数
%StatticsToolBoxのnormcdf関数と同じ機能にしたつもり
%参照:
%正規累積分布関数 - MATLAB normcdf - MathWorks 日本 
%http://jp.mathworks.com/help/stats/normcdf.html
if nargin==1
    mu=0;
    sigma=1;
elseif nargin==2
    sigma=1;
end
cdf=[];
resolution=10000;
for i=1:length(x)
    xt = 0 : (x(i) / resolution) : x(i);
    cdf= [cdf sum(normpdf(xt,mu,sigma)* x(i)/resolution)];
end

統計学用MATLABライブラリ群

下記のGithubリポジトリに、すべての関数群が置いてあります。

MATLABRobotics/CommonTools/StaticsToolbox at master · AtsushiSakai/MATLABRobotics

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com