Este não é um problema específico de R. R usa uma exibição convencional de coeficientes.
Ao ler essa saída de regressão (em um artigo, livro ou software estatístico), você precisa saber quais variáveis são "contínuas" e quais são "categóricas":
Os "contínuos" são explicitamente numéricos e seus valores numéricos foram usados como estão no ajuste de regressão.
As variáveis "categóricas" podem ser de qualquer tipo, incluindo aquelas que são numéricas! O que os torna categóricos é que o software os tratou como "fatores": ou seja, cada valor distinto encontrado é considerado um indicador de algo distinto.
A maioria dos softwares tratará valores não numéricos (como seqüências de caracteres) como fatores. A maioria dos softwares pode ser persuadida a tratar valores numéricos também como fatores. Por exemplo, um código de serviço postal (CEP nos EUA) se parece com um número, mas na verdade é apenas um código para um conjunto de caixas de correio; não faria sentido adicionar, subtrair e multiplicar códigos postais por outros números! (Essa flexibilidade é a fonte de um erro comum: se você não for cuidadoso ou inconsciente, seu software poderá tratar uma variável que você considera categórica como contínua ou vice-versa. Cuidado!)
No entanto, variáveis categóricas precisam ser representadas de alguma forma como números, a fim de aplicar os algoritmos de ajuste. Existem muitas maneiras de codificá- las. Os códigos são criados usando "variáveis fictícias". Saiba mais sobre a codificação de variáveis fictícias pesquisando neste site; os detalhes não importam aqui.
Na pergunta, somos informados disso h
e f
são valores categóricos ("discretos"). Por padrão, log(d)
e a
são contínuos. É tudo o que precisamos saber. O modelo é
y= - 0,679695+ 1,791294 log ( d)+ 0.870735- 0,447570+ 0,542033+ 0,037362 a - 0,588362+ 0.816825+ 0,534440- 0,085658 a - 0,034970 a - 0,040637 a se h = h1 1 se h = h2 se h = h3 se f= f1 1 se f= f2 se f= f3 se h = h1 1 se h = h2 se h = h3
As regras aplicadas aqui são:
O termo "interceptação", se aparecer, é uma constante aditiva (primeira linha).
As variáveis contínuas são multiplicados por seus coeficientes, mesmo em "interações" como o h1:a
, h2:a
e h3:a
termos. (Isso responde à pergunta original.)
Qualquer variável categórica (ou fator) é incluída apenas nos casos em que o valor desse fator aparece.
Por exemplo, suponha que , , , e . O valor ajustado neste modelo éregistro( d) = 2h = h3a = - 1f= f2
y^= - 0,6797 + 1,7913 × ( 2 ) + 0,5420 + 0,0374 × ( - 1 ) + 0,8168 - 0,0406 × ( - 1 ) .
Observe como a maioria dos coeficientes do modelo simplesmente não aparece no cálculo, pois h
pode assumir exatamente um dos três valores , , e, portanto, apenas um dos três coeficientes se aplica a e apenas um dos três coeficientes se multiplicará na interação; Da mesma forma, apenas um coeficiente se aplica a qualquer caso particular.h 2 h 3 ( 0.870735h1 1h2h3( - 0,085658 , - 0,034970 , - 0,040637 )( 0,870735 , - 0,447570 , 0,542033 )h
( - 0,085658 , - 0,034970 , - 0,040637 )a
h:a
f
g1
c
pode ser confusa nesse caso em particular, porque escolho duas letras para representam os níveis g1, mas geralmente é bastante intuitivo - e isso é puro tex, para que possamos editar o arquivo de origem posteriormente). Em anexo está outro resumo em que alterei,g1
para que agora seja um fator de quatro níveis. No entanto, com rótulos 0/1 que podem ser mais confusos .Você pode verificar se seus "contrastes" são o padrão
options()
e procurando:Se seus contrastes não ordenados estiverem definidos como
contr.treatment
(como deveriam ser, a menos que você os tenha alterado), o primeiro nível de cada um de seus fatores será definido como linha de base. Você receberá apenas estimativas para os coeficientes na frente das variáveis fictícias criadas para outros níveis do fator. De fato, esses coeficientes serão "quão diferentes, em média, é a variável de resposta nesse nível do fator, em comparação com o nível de linha de base do fator, tendo controlado para tudo o mais no modelo".Suponho que, a partir da sua saída, exista um
h0
ef0
quais são os níveis de linha de base para he ef (a menos que você tenha uma opção não padrão para contrastes; nesse caso, existem várias possibilidades; tente?contr.treatment
alguma ajuda).É semelhante à interação. Se meu parágrafo anterior estiver correto, a estimativa fornecida
a
será realmente a inclinação dea
quandoh=h0
. As estimativas fornecidas no resumo que se aplicam às interações são o quanto essa inclinação muda para diferentes níveis deh
.Portanto, no seu exemplo em que h = h1 ef = f2, tente:
Ah, e você também pode
predict()
fazer muitas coisas úteis ... se realmente deseja prever algo (em vez de escrever a equação para um relatório). Tente?predict.lm
ver o quepredict()
faz com um objeto criado porlm
.fonte
options()
. Você precisará rolar muito lixo para encontrar o que precisa. Você pode tentaroptions()$contrasts
, o que produzirá apenas o que você deseja.