数学建模算法与应用 数理统计

这篇博客涵盖了多个统计学和数据分析的实例,包括灯泡寿命的置信区间计算、滚珠直径的假设检验、Bootstrap置信区间、方差分析法以及回归方程的建立。通过MATLAB和Python实现,讨论了样本标准差与总体标准差的区别,并展示了如何使用这些工具进行数据分析和假设检验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

习题

习题7.1

  从一批灯泡中随机地取5只作寿命试验,测得寿命(单位:h)为[1050,1100,1120,1250,1280][1050,1100,1120,1250,1280][1050,1100,1120,1250,1280],设灯泡寿命服从正态分布。求灯泡寿命平均值的置信水平为0.90的置信区间

算法设计

  • 这个地方关于python的实现我还没有找到,但是在探索的过程中发现MATLAB与python的std()函数得到的结果不一样,是因为MATLAB默认求解样本标准差,而np.std()默认求解总体标准差,所以需要添加参数np.std(x,ddof = 1)才能切换为样本标准差
clc,clear
x = [1050,1100,1120,1250,1280];
n = length(x);
alpha = 0.10;
% 计算alpha/2分位数
Ta = tinv(1-alpha/2,n-1)
% 拟合正态分布参数(mu,sigma)
pd = fitdist(x,'Normal')
% ci第一列为均值置信区间,第二列为标准差置信区间
ci = paramci(pd,'Alpha',alpha)

习题7.2

  某车间生产滚珠,随机地抽出了50粒,测得它们的直径为(单位:mm):
15.0  15.8  15.2  15.1  15.9  14.7  14.8  15.5  15.6  15.315.1  15.3  15.0  15.6  15.7  14.8  14.5  14.2  14.9  14.915.2  15.0  15.3  15.6  15.1  14.9  14.2  14.6  15.8  15.215.9  15.2  15.0  14.9  14.8  14.5  15.1  15.5  15.5  15.115.1  15.0  15.3  14.7  14.5  15.5  15.0  14.7  14.6  14.2 15.0\ \ 15.8\ \ 15.2\ \ 15.1\ \ 15.9\ \ 14.7\ \ 14.8\ \ 15.5\ \ 15.6\ \ 15.3\\ 15.1\ \ 15.3\ \ 15.0\ \ 15.6\ \ 15.7\ \ 14.8\ \ 14.5\ \ 14.2\ \ 14.9\ \ 14.9\\ 15.2\ \ 15.0\ \ 15.3\ \ 15.6\ \ 15.1\ \ 14.9\ \ 14.2\ \ 14.6\ \ 15.8\ \ 15.2\\ 15.9\ \ 15.2\ \ 15.0\ \ 14.9\ \ 14.8\ \ 14.5\ \ 15.1\ \ 15.5\ \ 15.5\ \ 15.1\\ 15.1\ \ 15.0\ \ 15.3\ \ 14.7\ \ 14.5\ \ 15.5\ \ 15.0\ \ 14.7\ \ 14.6\ \ 14.2\\ 15.0  15.8  15.2  15.1  15.9  14.7  14.8  15.5  15.6  15.315.1  15.3  15.0  15.6  15.7  14.8  14.5  14.2  14.9  14.915.2  15.0  15.3  15.6  15.1  14.9  14.2  14.6  15.8  15.215.9  15.2  15.0  14.9  14.8  14.5  15.1  15.5  15.5  15.115.1  15.0  15.3  14.7  14.5  15.5  15.0  14.7  14.6  14.2

算法设计

  • 检验假设H0H_0H0:滚珠直径X∼N(15.0780,0.43252)X \sim N(15.0780,0.4325^2)XN(15.0780,0.43252)
clc,clear
a = readmatrix('data7_2.txt');
x = a(:);
pd = fitdist(x,'Normal');
[h,p1,st] = chi2gof(xm,'cdf',pd,'Nparam',2)
ed = st.edges;
ed(1) = -inf;
end(end) = inf;
% 计算各个区间的概率
p2 = diff(cdf(pd,ed))
% 计算上alpha分位数
k2 = chi2inv(0.95,st.df)

习题7.3

  按分位数法求灯泡寿命平均值的置信水平为0.90的Bootstrap置信区间。

算法设计

clc,clear
% 固定随机数种子
x = [1050,1100,1120,1250,1280]';
% 计算均值的置信区间
mu = bootci(10000,{@(x)mean(x),x},'alpha',0.1)

习题7.4

  设有如表所列的3个组5年保险理赔的观测数据。试用方差分析法检验3个组的理赔额均值是否有显著差异(取显著性水平$ \alpha = 0.05,已知,已知F_{0.05}(2,12) = 3.8853$)

t=1t = 1t=1t=2t = 2t=2t=3t = 3t=3t=4t = 4t=4t=5t = 5t=5
j=1j = 1j=1989310392110
j=2j = 2j=210010811899111
j=3j = 3j=3129140108105115

算法设计

  • XjtX_{jt}Xjt表示第jjj组第ttt年的理赔额,其中j=1,2,3,t=1,2,⋯ ,5j = 1,2,3,t = 1,2,\cdots,5j=1,2,3,t=1,2,,5。假设所有的XjtX_{jt}Xjt相互独立且服从N(μj,σ2)N(\mu_{j},\sigma^2)N(μj,σ2)分布,即对应于每组均值mjm_{j}mj可能不相等,但是方差σ2>0\sigma^2 > 0σ2>0是相同的
  • 提出原假设H0:μ1=μ2=μ3,H1:μ1,μ2,μ3H_{0}:\mu_1 = \mu_2 = \mu_3,H_1:\mu_1,\mu_2,\mu_3H0:μ1=μ2=μ3,H1:μ1,μ2,μ3不全相等
clc,clear
a = readmatrix('data7_4.txt')
[p,t,st] = anoval(a')

习题7.5

  某种半成品在生产过程中的废品率yyy与它所含的某种化学成分xxx有关,现将试验所得的8组数据记录如表。试求回归方程y=a1x+a2+a3x+a4x2y = \frac{a_1}{x} + a_2 +a_3x + a_4x^2y=xa1+a2+a3x+a4x2

序号12345678
xxx124578910
yyy1.310.90.810.70.60.550.4

算法设计

  • 利用python中scipy包求解
from scipy.optimize import curve_fit
def fx(x,a1,a2,a3,a4):
    return a1/x + a2 + a3 * x + a4 * x ** 2
x = [1,2,4,5,7,8,9,10]
y = [1.3,1,0.9,0.81,0.7,0.6,0.55,0.4]
popt, pcov = curve_fit(fx, x, y)
popt

输出

array([ 0.64983455,  0.59007412,  0.06658214, -0.00912294])

习题7.6

  人的身高与腿长有密切关系,现测得13名成年男子身高yyy与腿长xxx数据见表。试建立人的升高yyy和腿长xxx之间的一元线性回归模型。

xxx92959696.59798101103.5104105106107109
yyy163165167168171170172174176176177177181

算法设计

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 导入数据
a = np.loadtxt('C:/Users/lenovo/Desktop/data7_6.txt')
x = a[0,:]
y = a[1,:]
# 构建线性回归模型对象
lin_reg = LinearRegression()
# 训练
lin_reg.fit(x[:,np.newaxis],y[:,np.newaxis])
# 打印系数
print(lin_reg.coef_,lin_reg.intercept_)
print('R方:',lin_reg.score(x[:,np.newaxis],y[:,np.newaxis]))
print('RMSE:',np.sqrt(mean_squared_error(y[:,np.newaxis],lin_reg.predict(x[:,np.newaxis]))))
# 绘制图形
plt.figure(dpi = 600)
plt.plot(np.arange(1,x.shape[0]+1,1),y[:,np.newaxis] - lin_reg.predict(x[:,np.newaxis]),'+')
plt.axhline(y=0.0, c='r')  # 垂直于y轴的参考线

输出

[[0.98081454]] [73.2409963]
R方: 0.9616734761736716
RMSE: 1.0054868502483365

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羽星_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值