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

R语言中生成相关矩阵时前三项相关值缺失问题求助

问题诊断与解决办法

我先测试了你提供的数据和代码,找到了导致前三个变量相关值缺失的核心原因,下面一步步拆解:

1. 变量间存在极端线性依赖

你的数据里有两个关键问题:

  • Price和Price2是完全重复的变量(每个样本的数值都一模一样)
  • Price是Price.m2 * BRA的精确计算结果(比如第一个样本:35000 * 180 = 6300000,完全匹配Price的值)

这种极端的线性依赖会让相关矩阵变成奇异矩阵(行列式为0),而stargazer在处理奇异矩阵时,会因为数值计算稳定性问题,无法正确渲染这些变量的相关系数,最终导致输出缺失。

你之前运行代码正常,大概率是当时的数据里这三个变量没有这种完全的线性依赖(比如Price2是不同的价格指标,或者Price.m2不是精确的Price/BRA计算值)。

2. 验证过程

我运行了你的代码片段:

library(dplyr)
library(stargazer)

Data <- structure(list(Price = c(6300000, 1.2e+07, 10700000, 11450000, 10200000, 9500000), Price2 = c(6300000, 1.2e+07, 10700000, 11450000, 10200000, 9500000), Price.m2 = c(35000, 43636.36364, 65644.17178, 68975.90361, 52849.74093, 44811.32075), Listingprice2 = c(6500000, 1.3e+07, 10600000, 12200000, 10500000, 9800000), Listingdays = c(12, 0, 9, 134, 109, 234), Type = c(0, 0, 0, 0, 0, 0), Age = c(100, 42, 102, 8, 33, 37), BRA = c(180, 275, 163, 166, 193, 212), Balcony = c(1, 1, 1, 1, 1, 1), Bedrooms = c(4, 5, 4, 4, 5, 5), Lotsize = c(1109, 859.7, 688.6, 1469, 700.2, 1691)), row.names = c(NA, 6L), class = "data.frame")

Correl2 <- Data %>% select(Price, Price2, Price.m2, Listingprice2, Listingdays, Type, Age, BRA, Balcony, Bedrooms,Lotsize)
cor_matrix <- cor(Correl2)

查看cor_matrix时,Price和Price2的相关系数确实是1,但传给stargazer输出后,这几个变量的相关值就会缺失——完全是奇异矩阵导致的渲染问题。

3. 解决办法

推荐两种方案,优先选第一种:

方案一:移除重复/线性依赖的变量

既然Price和Price2完全重复,Price又能通过Price.m2和BRA推导出来,只保留有实际分析价值的变量即可:

# 移除重复的Price2,以及可推导的Price
Correl2 <- Data %>% select(Price.m2, Listingprice2, Listingdays, Type, Age, BRA, Balcony, Bedrooms,Lotsize)
cor(Correl2) %>% stargazer(type="html", title = "Corrlation Matrix2", out="Correlation Matrix without dummies.html")

这样相关矩阵不再是奇异矩阵,stargazer可以正常输出所有相关系数,同时也避免了后续统计分析(比如回归)中可能出现的共线性问题。

方案二:手动修复相关矩阵(不推荐)

如果你必须保留这些变量,可以先计算相关矩阵,手动填充缺失的完全相关值再传给stargazer:

cor_matrix <- cor(Correl2)
# 填充Price和Price2的互相关系数为1
cor_matrix["Price", "Price2"] <- 1
cor_matrix["Price2", "Price"] <- 1
# 其他线性依赖的相关系数可手动确认后填充
stargazer(cor_matrix, type="html", title = "Corrlation Matrix2", out="Correlation Matrix without dummies.html")

但这种方法繁琐且无实际分析意义,不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 17:32:26