Por que a interceptação é digitada como 1 nos pacotes de estatísticas (R, python)

7

Ao usar o software estatístico, Ao definir seus modelos lineares, por que a interceptação é digitada como 1, em vez de "const" ou "interceptar" ou algo assim. Que significado eu tenho?

Existe alguma razão histórica? Ou isso é lógico, de alguma maneira, que estou deixando de entender? A interceptação poderia muito bem ser qualquer número.

Exemplo da biblioteca statsmodels em python:

model = smf.ols('Height ~ 1', data = height_sample_data)

Eu sei que o pacote Lmer para R é muito semelhante.

Adam B
fonte
5
A interceptação é o coeficiente (que de fato poderia ter algum valor), mas o que você entra no programa de regressão quando ajusta o modelo não são os coeficientes, mas o que você multiplica os coeficientes na equação de regressão ( ) . O que você multiplica o intercepto por na equação de regressão? (Note que .)xβ0×1=β0
Glen_b -Reinstala Monica

Respostas:

16

É lógico, depois de considerar a notação da matriz em que sua fórmula será traduzida internamente. Na matriz, os preditores não constantes serão traduzidos em (uma ou mais) colunas e a interceptação será traduzida em uma coluna composta inteiramente por uma.

Por exemplo, em R você escreveria um OLS muito simples como:

lm(z~1+x+y)

Na notação matricial, isso seria traduzido em um modelo

(z1z2zn)=(1x1y11x2y21xnyn)(β0βxβz)+(ϵ1ϵ2ϵn),

e agora você vê de onde vem o .1


Na verdade, você pode deixar de 1+fora, pois R sempre presume que você deseja incluir uma interceptação, portanto isso é completamente equivalente a

lm(z~x+y).

No entanto, se você deseja suprimir a interceptação, escreva algo como

lm(z~x+y-1),

que seria traduzido em uma matriz sem uma coluna 1:

(z1z2zn)=(x1y1x2y2xnyn)(βxβz)+(ϵ1ϵ2ϵn),

Stephan Kolassa
fonte