更改要求的對比度會更改模型的自由度。如果一個模型要求線性和二次對比,而第二個模型只需要指定線性對比度,那麼第二個模型具有額外的自由度:這將增加測試線性假設的能力(以防止模型擬合二次趨勢)。
使用完整的(「nlevels-1」)對比度集創建了一組正交對比度,探索整套(獨立)響應配置。削減到只有一個防止模型與二次成分,我們的數據實際上具備安裝一個配置(在這種情況下。
要看到這是如何工作的,使用內置的數據集mtcars
,並測試(混淆)的齒輪加侖的關係,我們將假設越齒輪的更好(至少到某一點)
df = mtcars # copy the dataset
df$gear = as.ordered(df$gear) # make an ordered factor
有序因素默認爲多項式對比,但是我們在這裏將它們設置要明確。:
contrasts(df$gear) <- contr.poly(nlevels(df$gear))
然後我們可以建立關係的模型。
m1 = lm(mpg ~ gear, data = df);
summary.lm(m1)
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 20.6733 0.9284 22.267 < 2e-16 ***
# gear.L 3.7288 1.7191 2.169 0.03842 *
# gear.Q -4.7275 1.4888 -3.175 0.00353 **
#
# Multiple R-squared: 0.4292, Adjusted R-squared: 0.3898
# F-statistic: 10.9 on 2 and 29 DF, p-value: 0.0002948
注意,我們有F(2,29)= 10.9總體模型和p = 0.038我們估計有額外的3.7英里/齒輪線性效應。
現在我們只需要線性對比度,然後運行「相同」分析。
contrasts(df$gear, how.many = 1) <- contr.poly(nlevels(df$gear))
m1 = lm(mpg ~ gear, data = df)
summary.lm(m1)
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 21.317 1.034 20.612 <2e-16 ***
# gear.L 5.548 1.850 2.999 0.0054 **
# Multiple R-squared: 0.2307, Adjusted R-squared: 0.205
# F-statistic: 8.995 on 1 and 30 DF, p-value: 0.005401
齒輪的線性效應現在更大(5.5英里)和p < < 0.05 - 甲贏?除了整體模型適合現在顯着更糟糕:方差佔現在只有23%(是43%)!如果我們繪製的關係爲什麼是明確的:
plot(mpg ~ gear, data = df) # view the relationship
所以,如果你有興趣的線性趨勢,但也希望(或者是不清楚)複雜的附加層,你也應該測試這些更高級的多項式。二次方(或者總體上趨向於-1級)。
請注意,在這個例子中,物理機制是混亂的:我們已經忘記了齒輪的數量與自動變速器和手動變速器以及重量,轎車與跑車混淆。
如果有人想測試4檔優於3的假設,他們可以回答this問題:-)