用python实现拟合优度检验和F检验
时间: 2023-09-22 19:05:43 浏览: 105
拟合优度检验和F检验是统计学中常用的两种假设检验方法,可以用于判断模型的拟合优度和变量之间的相关性。下面是用Python实现拟合优度检验和F检验的代码示例:
拟合优度检验:
```python
from scipy.stats import chi2
# 计算拟合优度检验的统计量和p值
def goodness_of_fit(observed, expected):
n = len(observed)
k = len(expected)
df = n - k
chi2_statistic = sum((observed - expected) ** 2 / expected)
p_value = 1 - chi2.cdf(chi2_statistic, df)
return chi2_statistic, p_value, df
# 示例
observed = [10, 20, 30, 40]
expected = [15, 15, 30, 40]
chi2_statistic, p_value, df = goodness_of_fit(observed, expected)
print("拟合优度检验的统计量为:", chi2_statistic)
print("拟合优度检验的p值为:", p_value)
```
F检验:
```python
import numpy as np
from scipy.stats import f
# 计算F检验的统计量和p值
def f_test(x, y):
n = len(x)
k = 2
df1 = k - 1
df2 = n - k
x_mean = np.mean(x)
y_mean = np.mean(y)
x_sum_sq = sum((x - x_mean) ** 2)
y_sum_sq = sum((y - y_mean) ** 2)
ssr = (x_mean - y_mean) ** 2
sse = x_sum_sq + y_sum_sq - ssr
f_statistic = (ssr / df1) / (sse / df2)
p_value = 1 - f.cdf(f_statistic, df1, df2)
return f_statistic, p_value, df1, df2
# 示例
x = [10, 20, 30, 40]
y = [15, 25, 35, 45]
f_statistic, p_value, df1, df2 = f_test(x, y)
print("F检验的统计量为:", f_statistic)
print("F检验的p值为:", p_value)
```
以上是两种方法的Python实现代码,可以根据实际需要进行调用。