Como avaliar resultados de regressão linear

8

Eu tenho um problema de regressão linear. Em resumo, eu tenho um conjunto de dados, eu o dividi em dois subconjuntos. Um subconjunto é usado para encontrar a regressão linear (subconjunto de treinamento), outro é usado para avaliá-la (subconjunto de avaliação). Minha pergunta é como avaliar o resultado dessa regressão linear após aplicá-la ao subconjunto de dados de avaliação?

Aqui estão os detalhes:

No subconjunto de treinamento, faço regressão linear: , onde é a verdade básica (também conhecida como destino), é uma variável independente. Então eu encontrei e . ( e são fornecidos no subconjunto de treinamento).y=umax+bx a b x yyxumabxy

Agora, usando e encontrado acima do subconjunto de treinamento, aplicá-los para o subconjunto de avaliação, achei . Em outras palavras, esses são encontrados na regressão linear com . Agora, além de , eu também tenho do conjunto de avaliação. Como avalio meu resultado (quanto difere de )? Algum modelo matemático geral para fazer isso? Precisa ser algum tipo de modelo / fórmula matemática. Posso pensar em diferentes maneiras de fazer isso, mas elas são meio ad-hoc ou simples, mas isso é para um trabalho científico, então coisas que soam ad-hoc não podem ser usadas aqui, infelizmente.b y = a x + b y x y y y yumaby=umax+byxyyyy

Qualquer ideia?

furgão
fonte
6
Eu não acho que esse tipo de avaliação seja geralmente usado com modelos de regressão simples. O que diria a você que você não descobriria usando o conjunto de dados inteiro para gerar seus parâmetros de regressão? Normalmente, o motivo para usar um conjunto de dados de avaliação é evitar o ajuste excessivo, mas isso não é um problema quando você já sabe que seu modelo vai conter apenas uma variável independente.
octern
Para deixar claro, @octern estava falando sobre regressão linear. A divisão de teste de treinamento é uma boa prática para fazer isso com regressão logística. Pode até fazer sentido na regressão linear se o conjunto de testes tiver uma distribuição diferente / não estacionária do treinamento, ou vier de um período de tempo diferente (por exemplo, campanha publicitária, comportamento de compra).
smci

Respostas:

11

Eu concordo com o @Octern que raramente vemos pessoas usando divisões de trem / teste (ou mesmo coisas como validação cruzada) para modelos lineares. Overfitting (quase) certamente não é um problema com um modelo muito simples como este.

Se você quiser ter uma noção da "qualidade" do seu modelo, informe os intervalos de confiança (ou seus equivalentes bayesianos) em torno dos seus coeficientes de regressão. Existem várias maneiras de fazer isso. Se você sabe / pode assumir que seus erros são normalmente distribuídos, existe uma fórmula simples (e os pacotes de análise de dados mais populares fornecerão esses valores). Outra alternativa popular é calculá-los por meio de reamostragem (por exemplo, bootstrapping ou jackknifing), o que faz menos suposições sobre a distribuição de erros. Nos dois casos, eu usaria o conjunto completo de dados para o cálculo.

Matt Krause
fonte
1
Você também deve fazer análises residuais plotando.
Kjetil b halvorsen
1

se você realmente está bem com seu modelo de treinamento linear e deseja saber quão bem ele preveria seus dados de teste, tudo o que você precisaria fazer seria usar a fórmula do modelo linear já existente e incluir os coeficientes estimados a (= interceptação) eb (coeficiente de regressão, também chamado de declive) resultante do primeiro modelo.

deve parecer com y = a + b * X aqui alguns números imaginários ... y = 2 + 0,5 * X

Qual software você está usando? Você está usando R? Nesse caso, você pode usar a função predict.lm () e aplicá-la no seu segundo conjunto de dados.

Jens
fonte
1

DD={(x1,y1),(x2,y2),,(xn,yn)}umab

MSEuma,b=1nEu=1n(yEu-(umaxEu+b))2.

umab

alto
fonte