第1章 MATLABデモ MATLABで度数分布表(図)を作る

2014/11/18
確率統計(2014年度)
第1章 MATLABデモ
電子情報工学科
確率統計・MATLABデモ 1章
1
MATLABで度数分布表(図)を作る
MATLABで度数分布表(図)を作るヒント
ステップ1 ベクトル中条件満足の要素を抽出
data(data<10);
%ベクトルdata中10より小い要素を抽出
data=[1 3 45 534 3 564 6 43];
data(data<10)
ans =
1 3 3 6
確率統計・MATLABデモ 1章
2
1
2014/11/18
MATLABで度数分布表(図)を作る
ステップ2 計算各度数集合のサイズ
data=[1 3 45 534 3 564 6 43];
buffa=data(data<10); %10より小さい要素を抽出
buffb=data(data<=2);%2より小さい要素を抽出
leng=length(buffa)‐length(buffb) %各度数集合のサイズ合計
leng =
3
確率統計・MATLABデモ 1章
3
MATLABで平均値(算術)を求める
,
,
,……,
の平均値を求める
∑
⋯
行列で平均値を求める
1
1,1,1, … … , 1
確率統計・MATLABデモ 1章
4
2
2014/11/18
平均値を求めるMATLAB例
clc,clear;
x=[1,4,5,8,7,58,58,14]; %設定行ベクトルX
lengx=length(x);
%行列Xの長さを計算
onex=ones(lengx,1);%設定全1列ベクトルonex
Ex=x*onex/lengx
%平均値を計算
%MATLAB専用関数で
Ex_mat=mean(x)
確率統計・MATLABデモ 1章
5
MATLABで平均値(幾何)を求める
,
,
,……,
の幾何平均を求める
… 幾何平均を求めるMATLAB例
gmean=prod(x).^(1/length(x)) %prod(x)はベクトルxの各要素の積を求める関
数
確率統計・MATLABデモ 1章
6
3
2014/11/18
MATLABで中央値を求める
中央値:順に並べた行列
長さNが奇数の場合は、(N+1)/2番目の測定値
は中央値
偶数の場合は、N/2番目の測定値とN/2+1 番
目の測定値の算術平均は中央値
確率統計・MATLABデモ 1章
7
MATLABで中央値を求める
x=sort(x,‘descend’) %要素を降順に並べ
if(mod(length(x),2)==1) %奇数の場合は
mid=x((length(x)+1)/2)
%(N+1)/2番目の測定値は中央値
else %偶数の場合は
mid=x(length(x)/2)+x(length(x)/2+1);
mid=mid/2
%N/2とN/2+1番目の測定値の算術平均
end
確率統計・MATLABデモ 1章
8
4
2014/11/18
MATLABで分散を求める
,
,
,……,
の分散を求める
1
行列で求める
1
1
̅
1
EX
̅
Ex
1,1,1, … … , 1
確率統計・MATLABデモ 1章
9
分散を求めるMATLAB例
clc;clear;
x=[1,4,5,8,7,58,58,14]; %設定行ベクトルX
lengx=length(x);
%行列Xの長さを計算
onex=ones(lengx,1);%設定全1列ベクトルonex
Ex=x*onex/lengx;
%平均値を計算
Vx=x*x'/lengx-Ex*Ex
sigmax=sqrt(Vx) %標準偏差
%MATLAB専用関数で
Vx_mat=var(x,1)
sigmax=sqrt(Vx_mat) %標準偏差
確率統計・MATLABデモ 1章
10
5
2014/11/18
MATLABで相関係数を求める
, ,……,
と
の相関係数 を求める
1
∑
̅
1
1
∑
,
,……,
∑
̅
̅ 1
∑
確率統計・MATLABデモ 1章
11
MATLABで相関係数を求める
x=[8 6 11 22 14 17 18 24 19 23 26 40]; %ベクトルxを設置
y=[59 58 56 53 50 45 43 42 39 38 30 27]; %ベクトルyを設置
Ex=sum(x)/length(x); %ベクトルxの分散
Ey=sum(y)/length(y); %ベクトルyの分散
sigmax=sqrt(x*x'/length(x)‐Ex*Ex); %ベクトルxの標準偏差
sigmay=sqrt(y*y'/length(y)‐Ey*Ey); %ベクトルyの標準偏差
plot(x,y,‘o’,[Ex Ex],[min(y) max(y)],‘‐‐g’,[min(x) max(x)],[Ey Ey],‘‐
‐g’); %xyの相関図を描く
xlabel('x');
ylabel('y');
grid on
r=(x*y‘/length(x)‐Ex*Ey)/(sigmax*sigmay) %xyの相関係数
確率統計・MATLABデモ 1章
12
6
2014/11/18
MATLABで回帰直線を求める
, ,……,
と
,
の回帰直線 = + を求める
,……,
̅
∑
̅
∑
, ̅
̅
̅
確率統計・MATLABデモ 1章
13
MATLABで回帰直線を求める
x=[0,1,2,3,4,5,6,7,8,9,10]; %ベクトルxを設置
y=[4.70,7.86,9.84,13.35,15.65,18.20,22.23,24.15,28.41,29.75,32.58]; %ベクトルyを設置
Ex=sum(x)/length(x); %xの平均値
Ey=sum(y)/length(y); %yの平均値
mx=x‐Ex; %ベクトル
̅ の設置
my=y‐Ey; %ベクトルy
の設置
A=(mx*my‘)/(mx*mx’); %線形係数をもとめ
bias=Ey‐A*Ex; %バイアスをもとめ
newy=A*x+bias;
%回帰直線をもとめ
plot(x,y,‘o’,x,newy); %生データと回帰直線を描く
xlabel('x');
ylabel('y');
grid on
legend('生データ','回帰直線');
char_title=sprintf('y=%.2f*x+%.2f',A,bias);
title(char_title)
確率統計・MATLABデモ 1章
14
7
2014/11/18
MATLABで回帰直線を求める
確率統計・MATLABデモ 1章
15
8