1.数据的导入和保存
1.1数据的导入
matlab中导入数据的函数通常为load
load matlab.mat
matlab中常用的导入数据的函数为importdata,用法如下:
imported_data = importdata('matlab.mat')
1.2 文件的打开
比较open与load的不同
clear all
a=rand(4);
b=magic(4);
save
Saving to: C:\Users\Administrator\Documents\MATLAB\mathematical modeling\2\matlab.mat
clear
load('matlab.mat')
a
b
clear
open('matlab.mat')
struc1=ans;
struc1.a
struc1.b
2.数据的统计与分析
2.1 常用统计量
- 算术平均数,中位数
- mean(X) —— X为向量
- mean(A) —— A为矩阵,返回各列元素的平均值
- median(X)
- 标准差,方差,极差
clear all
clc
X=[15.60 13.41 17.20 14.42 16.61];
DX=var(X,1) %求解方差
sigma=std(X,1) %求解标准差
DX1=var(X) %求解样本方差
sigma1=std(X) %求解样本标准差
- var(X,1) —— 返回样本的简单方差(前置因子为1/n)
- std(X,1) —— 返回前置因子为1/n的标准差
- 偏度,峰度
在matlab中使用jbtest函数进行Jarque-Bera检验
调用格式为:
- h = jbtest(X) —— h=0,可认为服从正态分布;h=1,说明在显著水平0.05下拒绝服从正态分布
- [H,P,JBSTAT,CV] = jbtest(X,alpha) —— alpha为指定显著水平,P为检验的p值
clear all
clc
x1=[5200 5056 561 6016 635 669 686 692 704 7007 711];
x2=[7013 7104 719 727 735 740 744 745 750 7076 777];
x3=[7086 7806 791 7904 821 822 826 834 837 8051 862];
x4=[8703 879 889 9000 904 922 926 952 963 1056 10074];
x=[x1 x2 x3 x4];
[H,P,JBSTAT,CV]=jbtest(x)
>
H =
1
P =
0.0218
JBSTAT =
8.0226
CV =
4.8466
由于H=1,P<0.05,有理由认为不服从正态分布。
3. 随机数
3.1 二项分布随机数
可以使用binornd产生二项分布随机数
- R = binornd(N,P) —— NP为二项分布的两个参数
- R = binornd(N,P,m,n) —— m为行数n为列数
clear all
clc
x=binornd(10,0.45,100000,1);
histogram(x,11);
3.2 泊松分布随机数
泊松分布的表达式为:
调用格式:
y = poisspdf(x,Lambda)
clear all
clc
x=0:20;
y1=poisspdf(x,2.5);
y2=poisspdf(x,5);
y3=poisspdf(x,10);
hold on
plot(x,y1,':r*')
plot(x,y2,':b*')
plot(x,y3,':g*')
hold off
3.3 正态分布随机数
提供函数normrnd
- R = normrnd(mu,sigma,m,n)
4.假设检验
4.1 方差已知时的均值假设检验
在给定方差的条件下可以使用ztest函数,来检验单样本数据是否服从给定均值的正态分布,调用格式
- h = ztest(x,m,sigma,alpha) —— 其中sigma是标准差,alpha是显著水平的控制参数,m是判断样本的均值是否是m
clear all
clc
x1=[11.8 10.5 10.6 9.6 10.7 9.8 10.9 11.1 10.6 10.3];
x2=[10.2 10.6 9.8 12.2 10.6 9.8 10.6 10.1 9.5 9.9];
x=[x1 x2]';
m=10;sigma=0.4;a=0.05;
[h,sig,muci]=ztest(x,m,sigma,a,1)
h=1是可以认为在该显著水平上拒绝零假设
4.2 正态总体均值假设检验
- 用于方差未知时的正态总体的均值的假设检验,使用ttest函数
调用格式如下:
[h,sig,ci] = ttest(x,m,alpha,tail)
其中:
tail=0时表示制定备择假设均值不等于m,tail=1时表示指定备择假设均值大于m
clear all
clc
x=[169 180 131 182 234 274 188 254 232 172 165 249 249 180 465 192];
m=225;
a=0.05;
[h,sig,muci]=ttest(x,m,a,1)
- 方差未知时两个正态总体均值的假设检验
clear all
clc
x=[82.45 86.21 83.58 79.69 75.29 80.73 72.75 82.35]';
y=[83.56 64.27 73.34 74.37 79.77 67.12 77.27 78.07 72.62]';
a=0.05;
[h,sig,ci]=ttest2(x,y,a,1)
h =
1
sig =
0.019504179277914
ci =
1.325223048786295
Inf
在显著水平0.05下,可以判断合金的硬度有提高。
ci为均值差以真值的1-alpha置信区间
5.统计绘图
1.线性回归
clear all
clc
%做x和y的散点图%
x=1:10;
y=[2650,1942,1493,1086,766,539,485,291,224,202];
for i=1:10
plot(x(i),y(i),'ok');
hold on
end
xlabel('x');
ylabel('y');
看起来成指数关系故对y取对
%做x和z的散点图%
x=1:10;
y=[2650,1942,1493,1086,766,539,485,291,224,202];
z=zeros(size(y));
N=length(y);
for i=1:N
z(i)=log(y(i));
plot(x(i),z(i),'ok');
hold on
end
xlabel('x');
ylabel('y');
最后进行拟合:
x=1:10;
y=[2650,1942,1493,1086,766,539,485,291,224,202];
z=zeros(size(y));
N=length(y);
for i=1:N
z(i)=log(y(i));
end
[p,s]=polyfit(x,z,1)
p =
-0.298370334863784 8.167123993138752
s =
包含以下字段的 struct:
R: [2×2 double]
df: 8
normr: 0.231593652511713
因此有:
z = 8.1671-0.2984x
2.多元线性回归
使用regress(),调用格式如下:
[b,bint,r,rint,stats] = regress(y,x,alpha)
- b :输出向量
- bint :回归系数估计值和他们的置信区间
- r :残差
- stats:用于检验回归模型的统计量
clear all
clc
x1=[1.376, 1.375, 1.387, 1.401, 1.412, 1.428, 1.445, 1.477];
x2=[0.450,0.475,0.485,0.500,0.535,0.545,0.550,0.575];
x3=[2.170,2.554,2.676,2.713,2.823,3.088,3.122,3.262];
x4=[0.8922, 1.1610,0.5346,0.9589, 1.0239, 1.0499,1.1065, 1.1387];
y=[5.19, 5.30,5.60,5.82,6.00,6.06,6.45,6.95];
save data x1 x2 x3 x4 y
load data %取出数据
Y=[y'];
x=[ones(size(x1')),x1',x2',x3',x4'];
% x=[ones(size(x1')),x1',x2',x3',x4'];
[b,bint,r,rint,stats]=regress(Y,x)
b =
-13.984929738072131
13.192039484762253
2.422801334278647
0.075351705837265
-0.189698161343466
bint =
-26.001910540334851 -1.967948935809410
1.412992683865971 24.971086285658536
-14.280792465224541 19.126395133781834
-1.485927625219084 1.636631036893614
-0.963788998494748 0.584392675807817
r =
-0.061841695502344
0.022836121353063
0.012283797815437
0.088954141756640
0.043085353569731
-0.147251341381197
0.014544938640025
0.027388683748707
rint =
-0.131017806908374 0.007334415903686
-0.229918483557968 0.275590726264095
-0.146412843148935 0.170980438779809
-0.375028670817865 0.552936954331145
-0.054600368143406 0.140771075282869
-0.334820783638826 0.040318100876432
-0.475344602360936 0.504434479640986
-0.271723565503547 0.326500933000961
stats =
0.984604459779746 47.965406492414637 0.004731534869980 0.012303538411269
所以分析模型为:
y = -13.9849+13.1920x1+2.4228x2+0.0753x3-0.1896x4