Подтвердить что ты не робот

Что означает формула R y ~ 1?

Я читал документацию на R Formula и пытался выяснить, как работать с depmix (из depmixS4 пакет).

Теперь, в документации depmixS4, образец формулы имеет тенденцию быть чем-то вроде y ~ 1. Для простого случая, такого как y ~ x, он определяет связь между входом x и выходом y, поэтому я понимаю, что он похож на y = a * x + b, где a - наклон, а b - это перехват.

Если вернуться к y ~ 1, формула отбрасывает меня. Это эквивалентно y = 1 (горизонтальная линия при y = 1)?

Чтобы добавить бит-контекст, если вы посмотрите документацию depmixs4, приведен пример ниже

depmix(list(rt~1,corr~1),data=speed,nstates=2,family=list(gaussian(),multinomial()))

Я думаю, что в целом формула, заканчивающаяся ~ 1, меня сбивает с толку. Может ли кто-нибудь объяснить, что означают ~ 1 или y ~ 1? Спасибо, куча!

4b9b3361

Ответ 1

Многие из операторов, используемых в формулах модели (asterix, plus, caret) в R, имеют специфический для модели смысл, и это один из них: символ "один" указывает на перехват.

Другими словами, это значение, которое ожидается зависящая переменная, когда независимые переменные равны нулю или не имеют никакого влияния. (Чтобы использовать более общий математический смысл терминов модели, вы завершаете их в I()). Обычно перехватываются так, что наиболее часто встречаются в контексте явного указания модели без перехвата.

Вот два способа указать одну и ту же модель для линейной регрессионной модели y на x. Первый имеет неявный термин перехвата, а второй - явный:

y ~ x
y ~ 1 + x

Вот способы дать линейную регрессию y по x через начало координат (то есть без термина перехвата):

y ~ 0 + x
y ~ -1 + x
y ~ x - 1

В конкретном случае вы указываете (y ~ 1), y не прогнозируется никакими другими переменными, поэтому естественное предсказание является средним значением y, как сказал Пол Хиемстра:

> data(city)
> r <- lm(x~1, data=city)
> r

Call:
lm(formula = x ~ 1, data = city)

Coefficients:
(Intercept)  
       97.3  

> mean(city$x)
[1] 97.3

И удаление перехвата с помощью -1 оставляет вас без ничего:

> r <- lm(x ~ -1, data=city)
> r

Call:
lm(formula = x ~ -1, data = city)

No coefficients

formula() - это функция для извлечения формулы из объектов, и ее файл справки не является лучшим местом для чтения о задании формул модели в R. Я предлагаю вам посмотреть this объяснение или глава 11 Введение в R.

Ответ 2

если ваша модель имеет форму y ~ x1 + x2 Это (грубо говоря) представляет:

 y = β0 + β1(x1) + β2(x2)

 Which is of course the same as 
 y = β0(1) + β1(x1) + β2(x2)

В приведенной выше формуле есть неявный +1. Так вот, приведенная выше формула y ~ 1 + x1 + x2

Мы могли бы иметь очень простую формулу, в которой y не зависит от какой-либо другой переменной. Это формула, на которую вы ссылаетесь, y ~ 1, который примерно равнялся бы

 y = β0(1) = β0

Как указывает @Paul, когда вы решаете простую модель, вы получаете β0 = mean (y)




Вот пример

  # Let make a small sample data frame
  dat <- data.frame(y= (-2):3, x=3:8)

  # Create the linear model as above
  simpleModel <- lm(y ~ 1, data=dat)

  ## COMPARE THE COEFFICIENTS OF THE MODEL TO THE MEAN(y)
  simpleModel$coef
    # (Intercept) 
    #         0.5 

  mean(dat$y)
    # [1] 0.5

Ответ 3

В целом такая формула описывает связь между зависимыми и независимыми переменными в виде линейной модели. Левая сторона - зависимые переменные, а правая сторона - независимая. Независимые переменные используются для вычисления компонента тренда линейной модели, тогда предполагается, что остатки имеют какое-то распределение. Когда независимые равны одному ~ 1, компонент тренда является единственным значением, например. среднее значение данных, то есть линейная модель имеет только перехват.