gpt4 book ai didi

python - Python 中的偏相关

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:12 26 4
gpt4 key购买 nike

我运行了一个相关矩阵:

sns.pairplot(data.dropna())
corr = data.dropna().corr()
corr.style.background_gradient(cmap='coolwarm').set_precision(2)

看起来 advisory_pctall_brokerage_pct 相当 (0.57) 负相关。据我所知,我可以声称我们相当确定“当顾问在其投资组合中的咨询占低百分比时,他在其投资组合中占所有经纪业务的高百分比”。

然而,这是“成对”相关性,我们没有控制其余可能变量的影响。

我搜索了 SO,但无法找到如何运行“部分相关”,其中相关矩阵可以提供每两个变量之间的相关性,同时控制其余变量。为此,假设 brokerage % + etf brokerage % + advisory % + all brokerage % = ~100占投资组合的百分比。

有这样的功能吗?

enter image description here enter image description here

-- 编辑--根据 https://stats.stackexchange.com/questions/288273/partial-correlation-in-panda-dataframe-python 运行数据:

dict = {'x1': [1, 2, 3, 4, 5], 'x2': [2, 2, 3, 4, 2], 'x3': [10, 9, 5, 4, 9], 'y' : [5.077, 32.330, 65.140, 47.270, 80.570]} 
data = pd.DataFrame(dict, columns=['x1', 'x2', 'x3', 'y'])

partial_corr_array = df.as_matrix()
data_int = np.hstack((np.ones((partial_corr_array.shape[0],1)), partial_corr_array))
print(data_int)
[[ 1. 1. 2. 10. 5.077]
[ 1. 2. 2. 9. 32.33 ]
[ 1. 3. 3. 5. 65.14 ]
[ 1. 4. 4. 4. 47.27 ]
[ 1. 5. 2. 9. 80.57 ]]
arr = np.round(partial_corr(partial_corr_array)[1:, 1:], decimals=2)
print(arr)
[[ 1. 0.99 0.99 1. ]
[ 0.99 1. -1. -0.99]
[ 0.99 -1. 1. -0.99]
[ 1. -0.99 -0.99 1. ]]
corr_df = pd.DataFrame(arr, columns = data.columns, index = data.columns)
print(corr_df)
x1 x2 x3 y
x1 1.00 0.99 0.99 1.00
x2 0.99 1.00 -1.00 -0.99
x3 0.99 -1.00 1.00 -0.99
y 1.00 -0.99 -0.99 1.00

这些相关性没有多大意义。使用我的真实数据,我得到了非常相似的结果,其中所有相关性都四舍五入为 -1..

最佳答案

要计算 pandas DataFrame 两列之间的相关性,同时控制一个或多个协变量(即数据框中的其他列),您可以使用 partial_corr Pingouin 的功能包(免责声明,我是其创建者):

from pingouin import partial_corr
partial_corr(data=df, x='X', y='Y', covar=['covar1', 'covar2'], method='pearson')

关于python - Python 中的偏相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com