第九章
- 9.3
点击查看代码
import matplotlib.pyplot as plt
data = [
[4.13, 3.86, 4.00, 3.88, 4.02, 4.02, 4.00],
[4.07, 3.85, 4.02, 3.88, 3.95, 3.86, 4.02],
[4.04, 4.08, 4.01, 3.91, 4.02, 3.96, 4.03],
[4.07, 4.11, 4.01, 3.95, 3.89, 3.97, 4.04],
[4.05, 4.08, 4.04, 3.92, 3.91, 4.00, 4.10],
[4.04, 4.01, 3.99, 3.97, 4.01, 3.82, 3.81],
[4.02, 4.02, 4.03, 3.92, 3.89, 3.98, 3.91],
[4.06, 4.04, 3.97, 3.90, 3.89, 3.99, 3.96],
[4.10, 3.97, 3.98, 3.97, 3.99, 4.02, 4.05],
[4.04, 3.95, 3.98, 3.90, 4.00, 3.93, 4.06]
]
labs = ['Lab1', 'Lab2', 'Lab3', 'Lab4', 'Lab5', 'Lab6', 'Lab7']
data_transposed = list(zip(*data))
plt.figure(figsize=(10, 6))
plt.boxplot(data_transposed, labels=labs)
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.title('各实验室测量结果的箱线图')
plt.xlabel('实验室')
plt.ylabel('测量值')
plt.grid(True)
plt.show()
-
代码结果
-
9.4
点击查看代码
import numpy as np
from scipy.stats import f_oneway
data = [
[173, 172, 173, 174, 176, 178, 177, 179, 176, 172, 173, 174],
[175, 173, 176, 178, 177, 179, 174, 175, 173, 170, 171, 172],
[177, 175, 176, 174, 174, 175, 174, 173, 174, 169, 169, 170]
]
A1 = data[0][:3] + data[1][3:6] + data[2][6:9]
A2 = data[0][3:6] + data[1][6:9] + data[2][9:12]
A3 = data[0][6:9] + data[1][9:12] + data[2][:3]
B1 = data[0][:3] + data[0][3:6] + data[0][6:9]
B2 = data[1][:3] + data[1][3:6] + data[1][6:9]
B3 = data[2][:3] + data[2][3:6] + data[2][6:9]
B4 = [data[0][9:12], data[1][9:12], data[2][9:12]]
B4 = [item for sublist in B4 for item in sublist]
# 品种因素
f_value_variety, p_value_variety = f_oneway(A1, A2, A3)
# 化肥因素
f_value_fertilizer, p_value_fertilizer = f_oneway(B1, B2, B3, B4)
print("品种因素:")
print("F值:", f_value_variety)
print("P值:", p_value_variety)
print("化肥因素:")
print("F值:", f_value_fertilizer)
print("P值:", p_value_fertilizer)
print("3015")
- 9.5
点击查看代码
import pandas as pd
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
data = {
'城市': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4],
'地理位置': ['A1', 'A1', 'A2', 'A2', 'A1', 'A1', 'A2', 'A2', 'A1', 'A1', 'A2', 'A2', 'A1', 'A1', 'A2', 'A2'],
'广告形式': ['B1', 'B2', 'B1', 'B2', 'B1', 'B2', 'B1', 'B2', 'B1', 'B2', 'B1', 'B2', 'B1', 'B2', 'B1', 'B2'],
'装潢方式': ['C1', 'C1', 'C1', 'C1', 'C2', 'C2', 'C2', 'C2', 'C1', 'C1', 'C1', 'C1', 'C2', 'C2', 'C2', 'C2'],
'销售量': [955, 967, 905, 855, 880, 860, 870, 830, 875, 870, 870, 821, 875, 888, 870, 863]
}
df = pd.DataFrame(data)
# 建立模型公式
model = ols('销售量~ C(地理位置) + C(广告形式) + C(装潢方式) + C(地理位置):C(广告形式) + C(地理位置):C(装潢方式) + C(广告形式):C(装潢方式) + C(地理位置):C(广告形式):C(装潢方式)', data=df).fit()
# 进行方差分析
anova_results = anova_lm(model)
print(anova_results)
print("3015")
- 代码结果