不等长两组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检验更适合方差不齐的情况)。
- 先检查数据是否符合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
相关产品推荐
相关产品推荐

