判断两列是否有相关性关系的一个例子
迪丽瓦拉
2024-06-03 12:26:04
0

判断价格与购买人数

import pandas as pd
from scipy.stats import pearsonr, spearmanr, kendalltau
import numpy as npdata = pd.read_csv('C:/Users/yangyunpeng/Desktop/123123.csv')
# 判断数组中的元素是否为NaN或inf,并将其置为0
data[np.isinf(data) | np.isnan(data)] = 0
# 计算数值列的分位数
q1 = data['avg_price'].quantile(q=0.1)
q3 = data['avg_price'].quantile(q=0.9)
# 删除四分位数范围外的所有行
data = data.drop(data[(data['avg_price'] < q1) | (data['avg_price'] > q3)].index)
#删除DataFrame中根据某一列的数值删除对应所有行
data=data.drop(data[data['count(distinct domain_id)'] < 1].index)
#按照某列的数值从大到小进行其他列的排序
data = data.sort_values(by='count(distinct domain_id)', ascending=False)
#print(data)# 删除数组中的元素 data = np.delete(data_o, np.where(mask))
x = data['avg_price']
y = data['count(distinct domain_id)']
# 计算Pearson相关系数和p值
pearson_corr, pearson_pvalue = pearsonr(x, y)
print('Pearson相关系数:', pearson_corr)
print('Pearson p值:', pearson_pvalue)# 计算Spearman秩相关系数和p值
spearman_corr, spearman_pvalue = spearmanr(x, y)
print('Spearman秩相关系数:', spearman_corr)
print('Spearman p值:', spearman_pvalue)# 计算Kendall秩相关系数和p值
kendall_corr, kendall_pvalue = kendalltau(x, y)
print('Kendall秩相关系数:', kendall_corr)
print('Kendall p值:', kendall_pvalue)
Pearson相关系数: -0.024778684605260518
Pearson p值: 0.028105969640083453
Spearman秩相关系数: -0.09442789542281876
Spearman p值: 5.057909838678121e-17
Kendall秩相关系数: -0.07182909221982381
Kendall p值: 4.4489210579224094e-17

这个结果代表了两个变量之间的相关性程度及其统计显著性。

  • Pearson相关系数是一种线性相关系数,其介于-1和1之间。值越接近1或-1,表示两个变量之间的线性相关性越强;值越接近0,则表示两个变量之间的线性相关性越弱。在这个结果中,Pearson相关系数为-0.0247,接近于0,说明两个变量之间的线性相关性很弱。
    Pearson p值是用来判断Pearson相关系数是否统计显著的指标。p值越小,表示Pearson相关系数越显著。在这个结果中,p值为0.0281,小于0.05的显著性水平,说明Pearson相关系数是统计显著的,但是相关性程度很弱。
  • Spearman秩相关系数是一种非线性相关系数,用于衡量两个变量之间的单调关系。其介于-1和1之间,值越接近1或-1,表示两个变量之间的单调关系越强;值越接近0,则表示两个变量之间的单调关系越弱。在这个结果中,Spearman秩相关系数为-0.0944,接近于0,说明两个变量之间的单调关系很弱。
    Spearman p值是用来判断Spearman秩相关系数是否统计显著的指标。p值越小,表示Spearman秩相关系数越显著。在这个结果中,p值为5.0579e-17,远小于0.05的显著性水平,说明Spearman秩相关系数是非常显著的,但是相关性程度很弱。
  • Kendall秩相关系数是一种非参数的相关系数,用于衡量两个变量之间的顺序关系。其介于-1和1之间,值越接近1或-1,表示两个变量之间的顺序关系越强;值越接近0,则表示两个变量之间的顺序关系越弱。在这个结果中,Kendall秩相关系数为-0.0718,接近于0,说明两个变量之间的顺序关系很弱。
    Kendall p值是用来判断Kendall秩相关系数是否统计显著的指标。p值越小,表示Kendall秩相关系数越显著。在这个结果中,p值为4.4489e-17,远小于0.05的显著性水平,说明Kendall秩相关系数是非常显著的,但是相关性程度很弱。

假设有一个学生的成绩单,包括数学、语文和英语三门课程的成绩。如果我们对这三门课程的成绩进行排名,从高到低分别是数学、英语、语文,那么可以说数学成绩在三门课程中排名最高,英语次之,语文最低。这种排名关系就是一种顺序关系。

如果我们想衡量成绩与学习时间之间的关系,可以记录每门课程的成绩和学习时间,然后计算它们之间的相关性。如果发现学习时间越长,成绩也越高,或者学习时间越短,成绩也越低,那么可以说它们之间存在单调关系,即一个变量的增加或减少会导致另一个变量的相应增加或减少。但是,如果两个变量之间的关系不是单调的,例如学习时间很长或很短时成绩都很低,此时它们之间就不存在单调关系。

因此,顺序关系是指两个变量之间的相对大小关系,单调关系则是指一个变量的增加或减少导致另一个变量的相应增加或减少的关系。

相关内容