Python社会经济 | 怀特的异方差一致估计量

52 篇文章 0 订阅
46 篇文章 0 订阅

🎯要点

🎯算法​和模型底层数学及代码:🖊线性代数应用(主成分分析):降维、投影(用于求解线性系统)和二次形式(用于优化)| 🖊奇值分解 | 🖊线性代数 | 🖊求方程根 | 🖊数值优化及算法 | 🖊梯度方向和牛顿方向的线搜索 | 🖊最小二乘优化 | 🖊梯度下降优化 | 🖊约束优化 | 🖊并行编程 | 🖊多核并行 | 🖊使用C/C++代码 | 🖊贝叶斯和概率规划 | 🖊蒙特卡罗方法 | 🖊蒙特卡罗积分 | 🖊马尔可夫链 | 🖊马尔可夫链蒙特卡罗 | 🖊哈密顿蒙特卡罗 | 🖊线性回归 | 🖊逻辑回归 | 🖊分层模型 | 🖊混合模型 | 🖊概率分布。

📜概率统计算法模型和并行计算-用例

📜Python产品价格弹性生命周期和客户群利润点概率推理数学模型 | 📜Python | MATLAB | R 心理认知数学图形模型推断 | 📜Python燃气轮机汽车钢棒整流电路控制图统计模型过程潜力分析 | 📜Python高层解雇和客户活跃度量化不确定性模型 | 📜Python | R 雌雄配对和鱼仔变异马尔可夫链 | 📜Julia和Python蛛网图轨道图庞加莱截面曲面确定性非线性系统 | 📜C++和Python通信引文道路社评电商大规模行为图结构数据模型 | 📜Python和C++数学物理计算分形热力学静电学和波动方程 | 📜C++和Python计算金融数学方程算法模型 | 📜Python和R概率统计算法建模评估气象和运动 | 📜Python流体数据统计模型和浅水渗流平流模型模拟 | 📜社会经济怀特的异方差一致估计量统计推理。

🍇Python统计可视化离群值

机器学习算法的成功在很大程度上取决于输入模型的数据的质量。现实世界的数据通常很脏,包含异常值、缺失值、错误的数据类型、不相关的特征或非标准化数据。任何这些因素的存在都会阻碍机器学习模型的正确学习。因此,将原始数据转换为有用的格式是机器学习过程中必不可少的阶段。

离群值是数据集中表现出某种异常并与正常数据有显著偏差的对象。在某些情况下,离群值可以提供有用的信息(例如在欺诈检测中)。然而,在其他情况下,它们不会提供任何有用的信息,并且会严重影响学习算法的性能。

在此,我们将演示使用箱线图、散点图和残差等多种技术从数据集中识别异常值。

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
plt.style.use('seaborn')

# read csv file
df_weight = pd.read_csv('weight.csv')

# visualize the first 5 rows
df_weight.head()

 height   weight  0 161.000724 55.530340 1 171.504245 71.872692 2 173.201739 69.897780 3 166.563658 62.395484 4 176.464080 80.540956 \begin{array}{rrr} & \text { height } & \text { weight } \\ \hline 0 & 161.000724 & 55.530340 \\ 1 & 171.504245 & 71.872692 \\ 2 & 173.201739 & 69.897780 \\ 3 & 166.563658 & 62.395484 \\ 4 & 176.464080 & 80.540956 \end{array} 01234 height 161.000724171.504245173.201739166.563658176.464080 weight 55.53034071.87269269.89778062.39548480.540956

您可能会注意到,本文使用的数据集非常简单(100 个观察值和 2 个特征)。在现实世界的问题中,您将处理更复杂的数据集。然而,识别异常值的程序保持不变

💦识别离群值

有许多视觉和统计方法来检测异常值。我们将详细解释 5 种用于识别数据集中异常值的工具:(1) 直方图,(2) 箱线图,(3) 散点图,(4) 残差值和 (5) Cook 距离。

直方图是可视化数值变量分布的常见图。在直方图中,数据被分成也称为区间的区间。每个条形的高度代表每个箱内数据点的频率。两个变量的直方图如下所示。条形图呈钟形曲线,表明两个特征(体重和身高)呈正态分布。此外,还描绘了高斯核密度估计函数。该函数是概率密度函数的近似值,表示连续变量落入特定值范围内的概率。

ax = sns.distplot(df_weight.height, hist=True, hist_kws={"edgecolor": 'w', "linewidth": 3}, kde_kws={"linewidth": 3})

ax.annotate('Possible outlier', xy=(188,0.0030), xytext=(189,0.0070), fontsize=12,
            arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle="round", fc="0.8"))

plt.xticks(fontsize=14)
plt.yticks(fontsize=14)

plt.xlabel('height', fontsize=14)
plt.ylabel('frequency', fontsize=14)
plt.title('Distribution of height', fontsize=20);

(图略,请自行执行上述代码)

ax = sns.distplot(df_weight.weight, hist=True, hist_kws={"edgecolor": 'w', "linewidth": 3}, kde_kws={"linewidth": 3})

ax.annotate('Possible outlier', xy=(102, 0.0020), xytext=(103, 0.0050), fontsize=12,
            arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox=dict(boxstyle="round", fc="0.8"))

plt.xticks(fontsize=14)
plt.yticks(fontsize=14)

plt.xlabel('weight', fontsize=14)
plt.ylabel('frequency', fontsize=14)
plt.title('Distribution of weights', fontsize=20);

(图略,请自行执行上述代码)

如上所示,两个变量似乎都存在异常值(孤立条)。重要的是要记住,直方图不能像箱线图那样从统计上识别异常值。相反,使用直方图识别异常值完全是视觉上的,取决于我们的个人观点。

箱线图是探索性数据分析的绝佳工具,可以轻松地在分布之间进行比较。它显示了数据集的五数摘要,其中包括:

  • 最小值:排除异常值后的最小值(根据IQR邻近规则计算)
  • 最大值:排除异常值后的最大值(根据IQR邻近规则计算)
  • 中位数 (Q2):分布的中点
  • 第一个四分位数(Q1):数据集下半部分的中点
  • 第三四分位数(Q3):数据集上半部分的中点

方框表示第一四分位数和第三四分位数之间的数据,也称为四分位距 (IQR = Q3-Q1)。它包含 50% 的数据,并被中位数分成两部分。须根据 IQR 接近规则表示。

上边界 = = = 第三个四分位数 + ( 1.5 +(1.5 +(1.5 *QR ) ) )

下边界 = = = 第一个四分位数 − ( 1. 5 ∗ I Q R ) -\left(1.5^* IQR \right) (1.5IQR)

如果某个值超出此范围,则该值被视为离群值,并以带点的箱线图表示。

两个变量的箱线图如下所示。我们在身高 = 190 和体重 = 105 处观察到异常值。

ax = sns.boxplot(df_weight.height)

ax.annotate('Outlier', xy=(190,0), xytext=(186,-0.05), fontsize=14,
            arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle="round", fc="0.8"))

plt.xticks(fontsize=14)
plt.xlabel('height', fontsize=14)
plt.title('Distribution of height', fontsize=20)
ax = sns.boxplot(df_weight.weight)

ax.annotate('Outlier', xy=(105,0), xytext=(98,-0.05), fontsize=14,
            arrowprops=dict(arrowstyle='->', ec='grey', lw=2), bbox = dict(boxstyle="round", fc="0.8"))

plt.xticks(fontsize=14)
plt.xlabel('weight', fontsize=14)
plt.title('Distribution of weight', fontsize=20)

与直方图不同,箱线图根据 IQR 邻近规则统计识别异常值,这意味着异常值的识别不仅仅依赖于我们的个人观点。

👉参阅一:计算思维

👉参阅二:亚图跨际

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值