You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建相关矩阵展示各产品类别门店平均销售额的相关性

解决方案

直接按以下步骤生成对应产品类别的门店平均销售额相关矩阵即可:

  • 先确认数据粒度:从你给出的head(df2)输出看,当前df2每行对应一个唯一门店,各数值列已经是门店维度的统计值,如果已经是平均销售额口径可直接计算;如果是交易、日度等细粒度数据,先按门店维度聚合求均值再计算即可。

基础R实现(无需安装额外包)

  1. 提取目标列
    你指定的第10-18列刚好对应从promo_units到kingBars_units的9个产品类别字段,直接按列索引提取即可,避免手动输入列名出错:
# 提取10-18列的产品类别数据
product_data <- df2[, 10:18]
  1. 计算相关矩阵
# 默认计算皮尔逊相关系数,complete.obs参数自动剔除含缺失值的行,避免结果出现NA
cor_matrix <- cor(product_data, use = "complete.obs")
# 结果保留3位小数,方便查看
cor_matrix <- round(cor_matrix, 3)
  1. 结果使用
    直接运行print(cor_matrix)就能输出两两品类的相关系数:数值越接近1代表两个品类的门店销售额正相关性越强,越接近-1代表负相关性越强,接近0则说明没有明显线性相关关系。
    如果需要快速可视化,可以直接调用基础热图函数:
heatmap(cor_matrix)

可选:细粒度数据前置聚合代码

如果你的df2还没聚合到门店维度,先跑以下代码按门店计算各品类平均销售额,再生成相关矩阵:

# 没装dplyr的话先跑install.packages("dplyr")
library(dplyr)
store_avg <- df2 %>%
  group_by(store) %>%
  summarise(across(10:18, ~mean(.x, na.rm = TRUE)))
# 去掉第一列的store门店ID列,再计算相关矩阵
cor_matrix <- cor(store_avg[, -1], use = "complete.obs")

注意事项

  • 如果数据存在明显异常值、不满足正态分布,可以把相关系数计算方法改为斯皮尔曼等级相关,更稳健:cor(product_data, use = "complete.obs", method = "spearman")
  • 从你给出的dput结果看,第10-18列均为数值类型,不会出现类型报错,如果计算结果出现NA,优先检查对应列是否存在全量缺失的情况。

内容的提问来源于stack exchange,提问作者lhc0003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 20:48:34