апостериорные сравнения на линейной модели

Я использую линейную модель и хочу сравнить набор точек на склоне с оценками при 0. Мой код соответствует макету ответа здесь. Выходные данные имеют одно и то же значение p. Я ожидал, что значения, близкие к 0, будут иметь высокие значения p, а значения, далекие от 0, будут иметь небольшие значения p. Я определенно не ожидал, что во всех сравнениях будут одинаковые значения p. Какие-либо предложения?

Набор данных игрушек:

library(ggplot2)
library(tidyr)
library(emmeans)

df <- structure(list(Distance = c(0, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5), 
                    Mean = c(139, 119.8, 121, 130.4, 115.9, 134.7, 134.7, 122.2, 118.8, 116.9, 114.4, 
                            109.6, 103.9, 113.2, 103.5, 113.3, 122.1, 105.9, 115.2)), row.names = c(NA, -19L), 
                class = c("tbl_df", "tbl", "data.frame"))

m <- lm(Mean ~ Distance, data = df)
df$Pred <- predict(m)

# data and predictions look ok
ggplot(df) +
    geom_point(aes(x = Distance, y = Mean)) +
    geom_line(aes(x = Distance, y = Pred)) 

# create a fake grid for emmeans
fake.df <- data.frame(Distance = 0:10)

# run a treatment vs control, where control is value at 0 and "treatment" are values
# stepping away from 0
emm <- emmeans(m, trt.vs.ctrl1 ~ Distance, data = fake.df,  
            cov.reduce = FALSE, covnest = TRUE)
emm             

person user2602640    schedule 28.11.2019    source источник


Ответы (1)


В этой модели Distance - числовой предиктор с линейным эффектом. Таким образом, любой тест, сравнивающий оценки модели на двух Distances, является просто тестом наклона Distance тренда, и все такие тесты, таким образом, имеют одинаковое значение P.

Дополнение

Этот вопрос показывает, насколько легко спутать оценку и прогноз.

Оценка касается параметров; в этом примере наклон линии - это единственный параметр, оцениваемый по всем данным, и любое сравнение оценок на двух расстояниях эквивалентно проверке значимости наклона.

Прогноз - это то, что произойдет с данными в будущем. Чтобы предсказать эти данные, мы должны учитывать не только вариации в оценке наклона (в данном случае), но и вариации, присущие будущим данным (по оценке RMSE). Если мы действительно верим, что распределение ошибок является нормальным, мы можем получить интервалы прогноза следующим образом:

> emm <- emmeans(m, "Distance", at = list(Distance = c(0,2,4,6,8,10)))

> predict(emm, interval = "pred", sigma = sigma(m))
 Distance prediction   SE df lower.PL upper.PL
        0        131 8.61 17    112.5      149
        2        126 8.22 17    108.5      143
        4        121 8.02 17    104.1      138
        6        116 8.02 17     99.3      133
        8        111 8.23 17     94.0      129
       10        107 8.62 17     88.3      125

Prediction intervals and SEs are based on an error SD of 7.7904 
Confidence level used: 0.95 

Теперь предположим, что мы хотим сравнить два независимых будущих наблюдения Y0 (сделанные в Distance = 0 и Y2 (сделанные в Distance = 2). Прогноз для Y0 - Y2 оценивается как 131 - 126 = 5, а SE прогноза sqrt (8,61 ^ 2 + 8,22 ^ 2) = 11,90. Таким образом, Y0 - Y2 будет примерно 5 +/- 2 * 11,9 или (-18,8, 28,8) - интервал, содержащий ноль.

Однако, если мы хотим сравнить будущие значения Y0 и Y10 (взятых с Distance = 10), мы прогнозируем (131-107) +/- 2 * sqrt (8,61 ^ 2 + 8,62 ^ 2) -> (-0,4, 48,4) . Этот интервал по-прежнему включает ноль, но едва ли; поэтому гораздо более вероятно, что Y10 будет меньше Y0, чем Y2 будет меньше Y0.

Надеюсь, это поможет прояснить ситуацию.

person Russ Lenth    schedule 29.11.2019
comment
Мне было интересно, так ли это. Может быть, сравнивать две точки на одном и том же склоне просто потому, что не представляет интереса? - person user2602640; 29.11.2019
comment
Статистика не считает; люди делают. См. Мое приложение к ответу. - person Russ Lenth; 30.11.2019
comment
Спасибо за дополнение, это именно то, что мне было нужно. - person user2602640; 02.12.2019