皮尔逊多重相关 Scipy
Pearson multiple correlation with Scipy
我正在尝试做一些非常简单的事情来计算几个变量的 Pearson 相关矩阵,这些变量作为 DataFrame 的列给出。我希望它忽略 nans 并提供 p 值。 scipy.stats.pearsonr
是不够的,因为它只适用于两个变量,不能解释 nans。应该有比这更好的东西...
例如,
df = pd.DataFrame([[1,2,3],[6,5,4],[1,None,9]])
0 1 2
0 1 2.0 3
1 6 5.0 4
2 1 NaN 9
df 的列是变量,行是观察值。我想要一个 returns 3x3 相关矩阵以及相应 p 值的 3x3 矩阵的命令。我希望它省略 None。即[1,6,1],[2,5,NaN]之间的相关性应该是[1,6]和[2,5]之间的相关性。
必须有一个很好的 Pythonic 方法来做到这一点,有人可以建议吗?
如果您的数据在 pandas DataFrame 中,您可以简单地使用 df.corr()
.
来自docs:
DataFrame.corr(method='pearson', min_periods=1)
Compute pairwise correlation of columns, excluding NA/null values
我正在尝试做一些非常简单的事情来计算几个变量的 Pearson 相关矩阵,这些变量作为 DataFrame 的列给出。我希望它忽略 nans 并提供 p 值。 scipy.stats.pearsonr
是不够的,因为它只适用于两个变量,不能解释 nans。应该有比这更好的东西...
例如,
df = pd.DataFrame([[1,2,3],[6,5,4],[1,None,9]])
0 1 2
0 1 2.0 3
1 6 5.0 4
2 1 NaN 9
df 的列是变量,行是观察值。我想要一个 returns 3x3 相关矩阵以及相应 p 值的 3x3 矩阵的命令。我希望它省略 None。即[1,6,1],[2,5,NaN]之间的相关性应该是[1,6]和[2,5]之间的相关性。
必须有一个很好的 Pythonic 方法来做到这一点,有人可以建议吗?
如果您的数据在 pandas DataFrame 中,您可以简单地使用 df.corr()
.
来自docs:
DataFrame.corr(method='pearson', min_periods=1)
Compute pairwise correlation of columns, excluding NA/null values