我有一个如下所示的数据集:
UserID App_open_Time(Hour_ofDay) Email_Open_Time(hour_ofDay)
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 2 1
7 2 1
8 3 1
9 3 1
10 3 1我想知道App_open_time是否与Email open time相关。我如何在python中进行这种分析。我本来打算用Numpy在Python中做一个pearson-correlation,这是最好的方法吗?
发布于 2018-04-09 10:46:45
我认为你不能使用Pearson的相关性,因为它是用于连续变量的。你的变量是有序的,所以像Spearman这样的测试会更合适。然而,我不认为序数变量的测试也是合适的,因为你的变量也是周期性的,也就是说Hour_ofDay=23和Hour_ofDay=1实际上只有两个小时的间隔,但是对于Spearman的测试,它们将被认为是22个小时间隔。
在这种情况下,我认为更合适的做法是研究这两个变量之间的距离(以小时为单位)的分布。在这种情况下,适当的距离度量定义如下(最初在接受的另一个问题答案中定义的距离)
import numpy as np
distance = np.sign(a1-a2)*(12 - abs(abs(a1 - a2) - 12))其中a1和a2是您的应用程序和电子邮件打开时间变量。注意,要使这个距离工作,变量必须在0到23之间。
计算每一行的此距离,将其作为列添加到数据中,并用直方图绘制它。这个直方图会告诉你很多关于这两个变量之间的“相关性”。
例如
这种可视化可以让你对应用程序和电子邮件打开时间之间的关系得出丰富的结论。
注意:如果您的变量还包括分钟和秒的日期格式,您必须将变量转换为数字。例如: 01:30 (小时1和30分钟)变成1.5。还要注意日期格式,以防你有12小时的时间(如下午6点,凌晨1点)。
发布于 2018-02-17 16:52:43
您可以使用以下代码片段:
from matplotlib import cm
cmap = cm.get_cmap('gnuplot')
scatter = pd.scatter_matrix(YOUR_TRAINING_DATA, c = YOUR_LABELS_OF_TRAINING, marker = 'o', s = 40, hist_kwds = {'bins':15}, figsize = (12, 12), cmap = cmap)它分别和一起绘制每个特征的散点图。它类似于相关矩阵。你可以看看这里。
发布于 2018-05-09 16:29:06
使用熊猫有效地处理python中的表。熊猫有一个工具来计算两个系列之间的相关性,或者计算数据栏之间的相关性。假设您的数据位于csv文件中,您可以这样读取数据并计算其相关性:
import pandas as pd
data = pd.read_csv("my_file.csv")
correlation = data["col1"].corr(data["col2"], method="pearson")您还可以选择用于计算以下内容之间相关性的方法:
-pearson
-kendall
-spearman
https://datascience.stackexchange.com/questions/27927
复制相似问题