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

不等长两组LST数据的差异显著性检验方法问询(LULC场景)

不等长独立样本的LST差异显著性检验方案

为什么你之前的代码报错?

你用的t.test(compact_midrise_1990$LST1990 ~ compact_midrise_2010$LST2010)是配对数据的写法,但你的1990和2010年LST数据是完全独立的两组样本(样本量还不一样),公式里的两个向量长度不匹配,自然报错。

解决办法

1. 直接用独立样本t检验(优先选,前提满足的话)

针对独立的不等长样本,直接把两个向量传给t.test()的x和y参数就行,不用公式:

t.test(x = compact_midrise_1990$LST1990, y = compact_midrise_2010$LST2010)
  • 注意事项:
    • 先检查数据是否符合t检验要求:用shapiro.test()看两组数据是否服从正态分布,var.test()看方差是否齐。
    • 如果方差不齐,不用额外操作,t.test()默认会用Welch检验(比传统t检验更适合方差不齐的情况)。

2. 非参数检验(数据不满足正态性时用)

要是两组数据都不服从正态分布,就用Wilcoxon秩和检验(也就是Mann-Whitney U检验),同样支持不等长样本:

wilcox.test(x = compact_midrise_1990$LST1990, y = compact_midrise_2010$LST2010)

可选:把数据转成长格式(方便后续分析)

如果之后还要做可视化或者批量检验,把两组数据合并成一个长格式数据框会更方便,这时也能用公式形式的检验:

library(dplyr)
library(tidyr)

# 整理1990年数据
df_1990 <- compact_midrise_1990 %>%
  select(LST1990) %>%
  rename(LST = LST1990) %>%
  mutate(Year = 1990)

# 整理2010年数据
df_2010 <- compact_midrise_2010 %>%
  select(LST2010) %>%
  rename(LST = LST2010) %>%
  mutate(Year = 2010)

# 合并成一个数据框
combined_df <- rbind(df_1990, df_2010)

# 用公式形式做检验
t.test(LST ~ Year, data = combined_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 14:27:22