簡體   English   中英

在 R 中,您可以手動設置 lm() 或 Anova() 的自由度嗎?

[英]In R can you manually set degrees of freedom for lm() or Anova()?

我正在 R 中復制 SPSS 代碼,該代碼運行多個 3 類方差分析。 在 SPSS 中,您可以在 ANOVA 中指定特定的對比(例如,比較這個 5 級變量中的 2 級和 4 級)。 生成的 ANOVA 表返回自由度等於完整樣本的檢驗,而不是僅集中在這兩個水平上的樣本。

在 R 中,我使用以下命令運行 ANOVA 比較這兩個級別,但生成的殘差 DF 僅基於這兩個級別的子樣本,而不是完整樣本。 有沒有辦法可以在 lm() 或 Anova() function 中手動設置 DF 以避免此問題? 或者有沒有辦法指定使用完整樣本 DF 的對比?

Anova(lm(DV ~ FiveLevelFactor, data = data, type = 3, subset = FiveLevelFactor == "2" | FiveLevelFactor == "4"))

使用package car上的linearHypothesis() function怎么樣:

library(car)
data(Ornstein)

mod <- lm(interlocks ~ log(assets) + sector + nation, data=Ornstein)
linearHypothesis(mod, "nationUK = nationUS")
# Linear hypothesis test
# 
# Hypothesis:
#   nationUK - nationUS = 0
# 
# Model 1: restricted model
# Model 2: interlocks ~ log(assets) + sector + nation
# 
#   Res.Df   RSS Df Sum of Sq      F Pr(>F)
# 1    235 29829                           
# 2    234 29690  1    138.36 1.0904 0.2975

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM