跳转至

HW14(习题八)

约 797 个字 120 行代码 预计阅读时间 5 分钟

Abstract

没有 python 环境的小朋友可以选择装一个,或者用 excel 代替。

我在这里给出部分 python 代码。

A2

Question

电视机显像管的质量标准是平均使用寿命为 15 000 h.某电视机厂宣称其生产的显像管平均寿命大大高于规定的标准.为了对此说法进行验证,随机抽取了 100 件该厂生产的显像管,测得平均使用寿命为 15 525 h.假设该厂生产的显像管的寿命 \(X \sim N(\mu, 1500^2)\) ,利用假设检验推断是否有充分的理由认为该厂的显像管寿命显著地高于规定的标准(显著性水平 \(\alpha\) =0.05).

(1)给出检验的原假设、备择假设、检验统计量和拒绝域,并根据样本资料作出判断;

(2)计算 P_ 值作出推断,和(1)的判断结果是否一致?

Answer
  1. 原假设 \(H_0 : \mu \le 15000\) ,备择假设 \(H_1 : \mu > 15000\)

检验统计量 \(\frac{\overline{X}-15000}{1500/\sqrt{n}}\)

拒绝域 \(W = \frac{\overline{X}-15000}{1500/\sqrt{n}} > Z_{0.05} = 1.645\)

因为 \(\frac{\overline{x}-15000}{1500/\sqrt{n}} = 3.5 > 1.645\) ,所以拒绝 \(H_0\) ,认为该厂生产的显像管寿命显著地高于规定的标准.

  1. P_ = \(P(Z \ge 3.5) = 1 - \Phi(3.5) = 0.000233 < 0.05\)

所以拒绝 \(H_0\) ,认为该厂生产的显像管寿命显著地高于规定的标准,与(1)判断结果一致.


A3

Question

食品厂用自动装罐机装罐头食品,每罐的标准重量为 500 g.为了检测机器是否正常工作,每隔一定的时间进行抽样检验.现随机抽得 10 罐,测得平均重量为 498 g,标准差为 6.5 g.假定罐头的重量服从正态分布,利用假设检验推断机器的工作是否正常( \(\alpha\) =0.02).

(1)给出检验的原假设、备择假设、检验统计量和拒绝城,并根据样本资料作出判断;

(2)计算 P_ 值并作出推断,和(1)的判断结果是否一致?

Answer
  1. 原假设 \(H_0 : \mu = 500\) ,备择假设 \(H_1 : \mu \neq 500\)

检验统计量 \(T = \frac{\overline{X}-500}{6.5/\sqrt{n}}\)

拒绝域 \(W = |\frac{\overline{X}-500}{6.5/\sqrt{n}}| > t_{0.01}(9) = 2.8214\)

因为 \(\frac{\overline{X}-500}{6.5/\sqrt{n}} \approx |-0.973| < 2.8214\) ,所以不能拒绝 \(H_0\) ,认为机器工作正常.

  1. P_ = \(2 P(t(9) > 0.973) = 0.355 > 0.02\) 不能拒绝 \(H_0\) ,认为机器工作正常.与(1)判断结果一致.

B1

Question

设总体 \(X \sim N(\mu, \sigma^2)\) ,从该总体中抽取容量为 16 的简单随机样本,样本均值为 \(\overline{X}\) ,样本方差为 \(S^2\)

(1) 若 \(\sigma^2 = 1\) ,在显著水平为 0.05 下对于假设: \(H_0: \mu = 1,H_1: \mu \neq 1\) ,给出检验统计量和拒绝域,并计算在 \(\mu = 2\) 时犯第二类错误的概率;

(2) 若 \(\mu\) 未知,在显著水平为 0.05 下对于假设: \(H_0: \sigma^2 = 1,H_1: \sigma^2 > 1\) ,给出检验统计量和拒绝域,并计算在 \(\sigma^2 = 4\) 时犯第二类错误的概率;

(3) 若根据样本值计算得 \(\overline{x} = 1.54,s^2 = 1.44\) ,求 (1)和 (2) 中的 P_ 值.

Answer
  1. 检验统计量 \(Z = \frac{\overline{X}-1}{1/\sqrt{16}} = 4(\overline{X} - 1)\)

拒绝域 \(W = |4(\overline{X} - 1)| > z_{0.025} = 1.96\)

犯第二类错误的概率 \(P\{\text{接受}H_0|H_0 \text{为假}\} = P\{4|\overline{X}-1| < 1.96| \mu = 2\}\)

\(= P\{|\overline{X}-1| < 0.49| \mu = 2\} = P\{0.51 < \overline{X} < 1.49| \mu = 2\}\)

\(= P\{-5.96 < \frac{\overline{X}-2}{1/\sqrt{16}} < -2.04\} = \Phi(-2.04) - \Phi(-5.96) \approx 0.0207\)

  1. 检验统计量 \(Z = \frac{(n-1)S^2}{\sigma^2} = 15S^2\)

拒绝域 \(W = 15S^2 > \chi^2_{0.05}(15) = 24.996\)

犯第二类错误的概率 \(P\{\text{接受}H_0|H_0 \text{为假}\} = P\{15S^2 < 24.996| \sigma^2 = 4\}\)

\(= P\{S^2 < 1.6664 | \sigma^2 = 4\} = P\{\frac{(16-1)S^2}{4} < 6.249 \}\)

\(= P\{\chi^2(15) < 6.249\} \approx 0.024745305339540283\)

(1) 中 P_ \(= 2 P\{|Z_1| \ge |Z_0| = 4|1.54-1| = 2.16\} \approx 0.0307726696\)

(2) 中 P_ \(= P\{\chi^2(15) \ge 15s^2 = 15 \times 1.44 = 21.6\} \approx 0.1187293222\)

code

(2)

from scipy.stats import chi2
# 计算累积概率
prob = chi2.cdf(6.249, df=15)
print(prob)  # 输出结果

(3)

from scipy.stats import norm

# 给定的 Z_0 值
z_value = 2.16

# 计算 P(|Z_1| >= 2.16)
prob = 2 * (1 - norm.cdf(z_value))
print(f"P(|Z_1| >= {z_value}) = {prob:.10f}")
from scipy.stats import chi2

# 给定的值
chi2_value = 21.6
df = 15  # 自由度

# 计算右尾概率
prob = chi2.sf(chi2_value, df)

print(f"P(χ²(15) >= {chi2_value}) = {prob:.10f}")

A8

Question

为了解某犬类疫苗注射后是否会使得犬的体温升高,随机选择 9 只狗,记录它们注射疫苗前后的体温(单位:℃):

编号 1 2 3 4 5 6 7 8 9
注射前体温 /℃ 37.5 37.7 38.1 37.9 38.3 38.5 38.1 37.6 38.4
注射后体温 /℃ 37.7 38.0 38.2 37.9 38.2 38.8 38.0 37.5 38.8

设注射疫苗前后体温差服从正态分布,试用成对数据的假设检验推断是否有充足的理由认为狗注射该疫苗后体温显著升高( \(\alpha\) =0.05).

Answer
编号 1 2 3 4 5 6 7 8 9
体温差 /℃ 0.2 0.3 0.1 0.0 -0.1 0.3 -0.1 -0.1 0.4

\(H_0: \mu \le 0, H_1: \mu > 0\)

\(n = 9, \overline{x} = \frac{10}{9}, s = \sqrt{\frac{1}{8} \sum\limits_{i=1}^9 (x_i - \overline{x})^2} = 0.1965\)

\(t = \frac{\overline{x} - \mu_0}{s/\sqrt{n}} = 1.6964\)

拒绝域 \(t = \frac{\overline{x} - \mu_0}{s/\sqrt{n}} > t_{0.05}(8)\)

查表得 \(t_{0.05}(8) = 1.8595\)

由于 \(t < t_{0.95}(8)\), 不能拒绝 \(H_0\), 认为狗注射该疫苗后体温没有显著升高.

code
import numpy as np
from scipy.stats import t

# 差值数据
differences = [0.2, 0.3, 0.1, 0.0, -0.1, 0.3, -0.1, -0.1, 0.4]

# 样本大小
n = len(differences)

# 样本均值
mean_d = np.mean(differences)

# 样本标准差
std_d = np.std(differences, ddof=1)

# t 统计量
t_statistic = mean_d / (std_d / np.sqrt(n))

# 临界值和 P 值
alpha = 0.05
t_critical = t.ppf(1 - alpha, df=n-1)
p_value = 1 - t.cdf(t_statistic, df=n-1)

print(f"样本均值: {mean_d:.4f}")
print(f"样本标准差: {std_d:.4f}")
print(f"t 统计量: {t_statistic:.4f}")
print(f"t 临界值: {t_critical:.4f}")
print(f"P 值: {p_value:.4f}")

A13

Question

为比较甲、乙两位电脑打字员的出错情况,随机抽查甲输人的文件 8 页,各页出错字数为

5 3 2 0 1 2 2 4

随机抽查乙输人的文件 9 页,各页出错字数为

5 1 3 2 4 6 4 2 5

假设甲、乙两人页出错字数都服从正态分布.

(1)检验甲、乙两人页出错数的方差是否相等( \(\alpha\) =0.05);

(2)根据(1)的检验结果选择合适的检验方法,推断打字员甲的平均页出错字数是否显著少于打字员乙( \(\alpha\) =0.05).

Answer
  1. \(H_0 : \sigma_1^2 = \sigma_2^2\)\(H_1 : \sigma_1^2 \neq \sigma_2^2\)

由计算得: \(s_1^2 = 2.5535714286, s_2^2 = 2.7777777778\)

\(F = \frac{s_1^2}{s_2^2} = 0.9192857143\)

拒绝域: \(F \ge F_{0.025}(7,8)\)\(F \le F_{1-0.025}(7,8)\)

由查表得 \(F_{0.025}(7,8) = 4.5285621474 , F_{1-0.025}(7,8) = \frac{1}{F_{1-0.025}(8,7)} = 0.2041090979\)

由于 \(0.2041090979 < F = 0.9192857143 < 4.5285621474\) ,不能拒绝原假设,即认为甲、乙两人页出错数的方差相等。

  1. \(H_0 : \mu_1 \le \mu_2\)\(H_1 : \mu_1 > \mu_2\)

由 (1) 得两者方差没有显著差异,故选用 \(t\) 检验。

由计算得: \(\overline{x}_1 = 2.375, \overline{x}_2 = 3.5555555556\) , \(s_w^2 = 2.6731481481\)

\(t = \frac{\overline{x}_1 - \overline{x}_2}{\sqrt{s_w^2 \left( \frac{1}{n_1} + \frac{1}{n_2} \right)}} = -1.4859927913\)

拒绝域: \(t \ge t_{0.05}(15)\)

查表得 \(t_{0.05}(15) = 1.7530503557\)

由于 \(t = -1.4859927913 < t_{0.05}(15) = 1.7530503557\) ,不能拒绝原假设,即没有充分的把握认为打字员甲的平均页出错字数显著少于打字员乙。

code
import numpy as np
from scipy.stats import f

# 数据
x1 = [5, 3, 2, 0, 1, 2, 2, 4]
x2 = [5, 1, 3, 2, 4, 6, 4, 2, 5]

# 样本方差
s1_squared = np.var(x1, ddof=1)
s2_squared = np.var(x2, ddof=1)

# F 统计量
F = s1_squared / s2_squared

# 自由度
df1 = len(x1) - 1
df2 = len(x2) - 1

# P 值(双侧检验)
p_value = 2 * min(f.cdf(F, df1, df2), 1 - f.cdf(F, df1, df2))

# 临界值
F_critical_lower = f.ppf(0.025, df1, df2)
F_critical_upper = f.ppf(0.975, df1, df2)

print(f"样本方差1: {s1_squared:.10f}")
print(f"样本方差2: {s2_squared:.10f}")
print(f"F 统计量: {F:.10f}")
print(f"P 值: {p_value:.10f}")
print(f"临界值区间: ({F_critical_lower:.10f}, {F_critical_upper:.10f})")
import numpy as np
from scipy.stats import t

# 数据
x1 = [5, 3, 2, 0, 1, 2, 2, 4]
x2 = [5, 1, 3, 2, 4, 6, 4, 2, 5]

# 样本均值
mean_x1 = np.mean(x1)
mean_x2 = np.mean(x2)

# 样本方差
s1_squared = np.var(x1, ddof=1)
s2_squared = np.var(x2, ddof=1)

# 样本大小
n1 = len(x1)
n2 = len(x2)

# 合并方差(pooled variance)
sp_squared = (((n1 - 1) * s1_squared + (n2 - 1) * s2_squared) / (n1 + n2 - 2))

# t 统计量
t_statistic = (mean_x1 - mean_x2) / np.sqrt(sp_squared * (1/n1 + 1/n2))

# 自由度
df = n1 + n2 - 2

# P 值(单尾检验,甲的出错字数显著少于乙)
p_value = t.cdf(t_statistic, df)

# 临界值(临界 t 值)
t_critical = t.ppf(1 - 0.05, df)

print(f"甲的平均出错字数: {mean_x1:.10f}")
print(f"乙的平均出错字数: {mean_x2:.10f}")
print(f"合并方差: {sp_squared:.10f}")
print(f"t 统计量: {t_statistic:.10f}")
print(f"P 值: {p_value:.10f}")
print(f"临界 t 值: {t_critical:.10f}")

评论