目录
- 1. 整体分析
-
-
- 步骤1:联合分布可视化
- 步骤2:定义筛选条件
- 步骤3:应用筛选条件
- 实例演示
-
- 第一步:联合分布可视化
- 第二步:定义筛选条件
- 第三步:应用筛选条件
- 数据检查与清洗步骤
- 数据清洗步骤
- 下一步
-
- 2. 定义筛选条件
-
-
- 方法一:基于分位数的筛选
- 方法二:基于高密度区域的筛选
- 进一步分析
- 总结和建议
- 后续步骤
- 2.2 基于高密度区域的筛选
-
- 方法二:基于高密度区域的筛选步骤
- 使用二维直方图定义高密度区域
- 定义高密度区域
- 选择高密度区域阈值
- 总结
-
- 3. 使用联合概率密度进行筛选
- 4. 三变量概率密度分布
-
-
- 解释
- 4.2 阈值选择
-
- 解释
-
1. 整体分析
要通过联合分布对 TI(湍流强度)和 alp2(风切变)进行联合筛选,可以使用以下步骤:
- 联合分布可视化:绘制 TI 和 alp2 的联合分布图,如散点图、二维直方图或核密度估计图,以了解二者的关系。
- 定义筛选条件:根据联合分布图中的集中区域或特定阈值,定义筛选条件。
- 应用筛选条件:筛选出符合条件的数据点,进行进一步分析或仿真。
【散点图、二维直方图和核密度估计图的区别与联系】
步骤1:联合分布可视化
首先,绘制 TI 和 alp2 的联合分布图,以了解它们的关系。
步骤2:定义筛选条件
在可视化联合分布后,可以根据数据的集中区域或业务需求设定筛选条件。
步骤3:应用筛选条件
根据定义的条件进行数据筛选。
实例演示
下面是如何绘制 TI 和 alp2 的联合分布图,并通过图中数据的集中区域定义筛选条件的示例。
第一步:联合分布可视化
让我们先绘制联合分布图。
第二步:定义筛选条件
在图中找到数据集中区域,定义筛选条件。
第三步:应用筛选条件
筛选出符合条件的数据。
让我们从可视化开始。
数据类型都是浮点型,看起来没有问题。可能是因为数据中存在一些无法识别的特殊值或 NaN 值。我们再检查一次数据,确保没有特殊值或非数字值。
让我们重新清理数据并绘制联合分布图。
看起来仍有一些数据处理问题导致联合分布图无法正常绘制。为了确保数据清洗彻底,我们可以对 TI
和 alp2
这两个列进行详细检查,并重新进行数据清洗和绘图。
数据检查与清洗步骤
- 检查
TI
和alp2
列的详细信息,包括唯一值、非数字值等。 - 清除所有非数字值和异常值。
- 绘制联合分布图。
让我们从详细检查数据开始。
看起来 TI
和 alp2
列的数据大部分是合理的浮点数值,虽然 alp2
列中出现了一个负值(-0.02019419),这可能是一个异常值。我们可以进一步检查和清理这些列中的非数字和异常值。
数据清洗步骤
- 去除负值:对
alp2
列进行处理,去除负值。 - 检查非数字值:确保所有数据都是数字类型。
让我们先进行数据清洗,然后再尝试绘制联合分布图。
# Check for unique values and non-numeric values in the 'TI' and 'alp2' columns
ti_unique_values = flat_terrain_data['TI'].unique()
alp2_unique_values = flat_terrain_data['alp2'].unique()
# Display a sample of unique values to check for any anomalies
ti_sample_values = ti_unique_values[:10]
alp2_sample_values = alp2_unique_values[:10]
ti_sample_values, alp2_sample_values
看起来问题可能出在我们绘图的参数上,特别是使用 fill=True
和 cmap='Blues'
的参数。我们可以尝试简化绘图并移除这些参数,确保数据正常绘制。
让我们尝试绘制一个简单的联合分布图,使用散点图来表示。
# Remove negative values in 'alp2' and any other potential anomalies
cleaned_data = flat_terrain_data[(flat_terrain_data['TI'] >= 0) & (flat_terrain_data['alp2'] >= 0)]
# Drop any remaining NaN values
cleaned_data = cleaned_data.dropna()
# Plot the joint distribution of TI and alp2 after cleaning
plt.figure(figsize=(12, 6))
sns.jointplot(x='TI', y='alp2', data=cleaned_data, kind='kde', fill=True, cmap='Blues')
# Add labels and title
plt.xlabel('TI (湍流强度)')
plt.ylabel('alp2 (风切变)')
plt.suptitle('Joint Distribution of TI and alp2', y=1.02)
# Display the plot
plt.show()
这个散点图展示了 TI(湍流强度)和 alp2(风切变)的联合分布。可以看到两个变量的分布情况和它们之间的关系。
下一步
-
定义筛选条件:
- 您可以根据图中的分布情况选择合适的范围。例如,可以选择高密度区域作为筛选条件。
-
应用筛选条件:
- 根据定义的范围筛选数据,以用于进一步分析或仿真。
2. 定义筛选条件
为了定义 TI 和 alp2 的联合筛选条件,可以考虑以下方法:
-
基于分位数的筛选:
- 使用 TI 和 alp2 的 25% 和 75% 分位数定义筛选范围,保证选取的数据集中在中间 50% 的区域内。
-
基于高密度区域的筛选:
- 从联合分布图中识别高密度区域,定义该区域内的数据作为筛选条件。
方法一:基于分位数的筛选
让我们先计算 TI 和 alp2 的 25% 和 75% 分位数。
基于分位数的筛选条件如下:
- TI 的范围:0.0619 到 0.1087
- alp2 的范围:0.0954 到 0.2002
经过筛选后,数据集中符合条件的数据点有 149 条。
方法二:基于高密度区域的筛选
然后,我们可以通过计算高密度区域的核密度估计(KDE)来定义筛选条件。
进一步分析
我们可以绘制筛选后的数据的联合分布图,看看这些数据点的分布情况。这样可以确保筛选条件合理并且覆盖了数据的主要集中区域。
让我们绘制筛选后的数据的联合分布图。
# Calculate the 25% and 75% quantiles for TI and alp2
q1_ti = cleaned_data['TI'].quantile(0.25)
q3_ti = cleaned_data['TI'].quantile(0.75)
q1_alp2 = cleaned_data['alp2'].quantile(0.25