数理统计经典问题解法python
时间: 2024-12-29 20:27:38 浏览: 5
### Python 数理统计经典问题解决方案
#### 使用Python解决线性回归分析
线性回归是一种用于估计变量间关系的技术。通过最小二乘法找到最佳拟合直线,使得观测点到这条直线的距离平方和最小。
```python
import numpy as np
from sklearn.linear_model import LinearRegression
# 创建样本数据集
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])
# 构建并训练模型
model = LinearRegression()
model.fit(X, y)
# 输出系数与截距
print(f'斜率: {model.coef_[0]}')
print(f'截距: {model.intercept_}')
# 预测新输入的数据
new_X = [[6]]
predicted_y = model.predict(new_X)
print(f'当 X={new_X[0][0]} 时预测 Y 的值为: {predicted_y[0]}')
```
此代码展示了如何利用`sklearn`库来执行简单的单变量线性回归分析[^1]。
#### 利用Python进行假设检验——t检验
t检验用来判断两组独立样本平均数差异是否显著。这里展示了一个双侧t检验的例子:
```python
from scipy.stats import ttest_ind
group_a = [29, 31, 32, 37, 35]
group_b = [28, 26, 27, 29, 30]
statistic, p_value = ttest_ind(group_a, group_b)
if p_value < 0.05:
print('拒绝零假设,认为两总体均值有显著差别.')
else:
print('接受零假设,无法证明两总体均值存在明显区别.')
print(f't-statistic: {statistic}, P-value: {p_value}')
```
这段程序说明了怎样借助`ttest_ind()`函数来进行两个独立样本之间的比较测试[^2]。
#### 应用Python实现卡方检验
卡方检验适用于分类资料的频数分布情况的研究。下面是一个关于列联表(Contingency Table)的实例:
```python
from scipy.stats import chi2_contingency
observed_data = [
[10, 20],
[15, 25]
]
chi2_stat, p_val, dof, expected = chi2_contingency(observed_data)
print(f'Chi-square statistic: {chi2_stat}\nP value: {p_val}\nDegrees of freedom: {dof}')
for i in range(len(expected)):
print(f'\nExpected frequencies row {i}:', end=' ')
for j in expected[i]:
print(j, end=', ')
```
上述脚本解释了如何基于观察频率矩阵计算χ²统计量及其对应的P值,从而评估不同类别间的关联程度.
阅读全文