拟合优度检验

可决系数

可决系数(coefficient of determination

如果样本回归线对样本观测值拟合程度越好,各样本观测点与回归线靠得越近,由样本回归做出解释的离差平方和与总离差平方和越相近;反之,拟合程度越差,相差越大。

可决系数的计算式:

507c3897b4380c3a54fb960b.jpg

可决系数可以作为综合度量回归模型对样本观测值拟合优度的度量指标。

可决系数是测定多个变量间相关关系密切程度的统计分析指标,它也是反映多个自变量对因变量的影响程度。可决系数越大,自变量对因变量的解释程度越高,自变量引起的变动占总变动的百分比高。观察点在回归直线附近越密集。可决系数的取值范围在0到1之间,它是一个非负统计量。随着抽样的不同而不同,既是随样本而变动的统计量。

拟合优度

   拟合优度(Goodness of Fit)是指回归直线对观测值的拟合程度。

度量拟合优度的统计量是可决系数(亦称确定系数)R

R的取值范围是[0,1]。R的值越接近1,说明回归直线对观测值的拟合程度越好;反之,R的值越接近0,说明回归直线对观测值的拟合程度越差。

R衡量的是回归方程整体的拟合度,是表达因变量与所有自变量之间的总体关系。R等于回归平方和在总平方和总所占的比率,即回归方程所能解释的因变量变异性的百分比。实际值与平均值的总误差中,回归误差与剩余误差是此消彼长的关系。因而回归误差从正面测定线性模型的拟合优度,剩余误差则从反面来判定线性模型的拟合优度。

统计上定义剩余误差除以自由度n – 2所得之商的平方根为估计标准误。为回归模型拟合优度的判断和评价指标,估计标准误显然不如判定系数RR 是无量纲系数,有确定的取值范围 (0—1),便于对不同资料回归模型拟合优度进行比较;而估计标准误差是有计量单位的,又没有确定的取值范围,不便于对不同资料回归模型拟合优度进行比较。

拟合优度检验

主要是运用判定系数和回归标准差,检验模型对样本观测值的拟合程度。

当解释变量为多元时,要使用调整的拟合优度,以解决变量元素增加对拟合优度的影响。

拟合优度检验是检验来自总体中的一类数据其分布是否与某种理论分布相一致的统计方法。 eg. 一个总体可分为r类,现从该总体获得了一批分类数据,现在需要我们从这些分类数据中出发,去判断总体各类出现的概率是否与已知的概率相符。譬如要检验一颗骰子是否是均匀的,那么可以将该骰子抛掷若干次,记录每一面出现的次数,从这些数据出发去检验各面出现的概率是否都是1/6.

 

http://baike.baidu.com/view/2021095.htm

http://baike.baidu.com/view/657906.htm

http://baike.baidu.com/view/557339.htm

### 使用Python进行边缘函数的拟合优度检验 在Python中,可以使用`scipy.stats`库或`statsmodels`库来实现边缘函数的拟合优度检验。以下是具体方法和代码示例: #### 方法1:使用`scipy.stats.chisquare` `scipy.stats.chisquare`是用于执行卡方拟合优度检验的函数。需要提供观测值(`o_vals`)和期望值(`t_vals`),然后计算统计量和p值。 以下是一个示例代码,展示如何使用`scipy.stats.chisquare`进行边缘函数的拟合优度检验: ```python import numpy as np from scipy.stats import chisquare # 假设这是观测值 o_vals = np.array([20, 30, 40, 50, 60]) # 假设这是根据边缘分布计算出的期望值 t_vals = np.array([25, 35, 45, 55, 65]) # 执行卡方拟合优度检验 chi2_stat, p_value = chisquare(o_vals, t_vals) print(f"卡方统计量: {chi2_stat}, p值: {p_value}") ``` 上述代码会输出卡方统计量和p值,用于判断观测值期望值是否一致[^1]。 #### 方法2:使用`statsmodels`进行拟合优度检验 `statsmodels`库提供了更丰富的统计工具。对于边缘函数的拟合优度检验,可以结合`scipy.stats`中的分布函数(如正态分布、威布尔分布等)生成期望值,并使用卡方检验评估拟合效果。 以下是一个使用`statsmodels`和`scipy.stats`结合的例子: ```python import numpy as np from scipy.stats import weibull_min from scipy.stats import chisquare # 假设这是样本数据 data = np.array([1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0]) # 拟合威布尔分布参数 shape, loc, scale = weibull_min.fit(data, floc=0) # 计算每个区间的期望频率 bins = np.histogram_bin_edges(data, bins='auto') hist, _ = np.histogram(data, bins=bins) pdf_fitted = weibull_min.pdf((bins[:-1] + bins[1:]) / 2, shape, loc, scale) exp_freq = pdf_fitted * len(data) * np.diff(bins) # 执行卡方拟合优度检验 chi2_stat, p_value = chisquare(hist, exp_freq) print(f"卡方统计量: {chi2_stat}, p值: {p_value}") ``` 这段代码首先拟合了威布尔分布的参数,然后根据拟合结果计算每个区间的期望频率,并使用`chisquare`函数进行拟合优度检验[^2]。 #### 方法3:自定义分布的拟合优度检验 如果需要对其他分布(如正态分布、指数分布等)进行拟合优度检验,可以参考类似的方法。关键步骤包括: 1. 拟合分布参数。 2. 根据拟合参数计算期望值。 3. 使用`chisquare`函数比较观测值期望值。 以下是一个针对正态分布的例子: ```python import numpy as np from scipy.stats import norm from scipy.stats import chisquare # 假设这是样本数据 data = np.array([1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0]) # 拟合正态分布参数 mean, std = norm.fit(data) # 计算每个区间的期望频率 bins = np.histogram_bin_edges(data, bins='auto') hist, _ = np.histogram(data, bins=bins) pdf_fitted = norm.pdf((bins[:-1] + bins[1:]) / 2, mean, std) exp_freq = pdf_fitted * len(data) * np.diff(bins) # 执行卡方拟合优度检验 chi2_stat, p_value = chisquare(hist, exp_freq) print(f"卡方统计量: {chi2_stat}, p值: {p_value}") ``` 这种方法可以扩展到任何已知的分布,只需替换相应的分布函数即可[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值