Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

modelo_statsmodels = sm.OLS ...

Bom dia! o código abaixo dá erro.

modelo_statsmodels = sm.OLS(y_train, X_train_com_constante, hasconst = True).fit()

Aparece "ValueError: The indices for endog and exog are not aligned".

8 respostas

Boas Bruno, tudo bem? Espero que sim!

Aparentemente, não há o mesmo número de variáveis para y_train e Xtraincom constante.

Você pode verificar isso pelo tamanho dessas colunas. Fazendo:

print(y_train.shape)

print(X_train_com_constante.shape)

Ambos devem apresentar o mesmo valor. Fico no aguardo caso não seja esse o problema.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Boa tarde, estou bem e você?

Coloquei o comando acima que me indicou, porém não mudou nada.

Não sei se precisa colocar algum outro comando adicional ou instalar algo através de um outro comando.

Na mensagem de erro fala-se do "endog" e "exog", não sei do que se trata.

Att.

Oi Bruno.

As variáveis endog e exog referem-se ao nome técnico dados às variáveis do sistema.

A variável endógena (endog) refere-se àquela que se deseja prever, em outras palavras, o y;

As varriáveis exógenas (exog) são aquelas que você usará para fazer a previsão, também chamadas de variáveis explicativas ou x.

O erro parece se referir a uma falta de alinhamento entre o X e o Y.

Ambos os vetores devem ter o mesmo tamanho, por isso eu passei as linhas

print(y_train.shape)

print(X_train_com_constante.shape)

Elas verificam o tamanho de X e Y. Pelo erro, eles não parecem ser do mesmo tamanho.

De qualquer forma, se puder compartilhar o link do seu notebook, fica mais fácil encontrar o erro.

Entendi.

http://localhost:8888/notebooks/Downloads/data-science/reg-linear-II/Projeto/Regress%C3%A3o%20Linear.ipynb

Vê se você consegue acessar por aqui.

Olá Bruno. Esse é o endereço do seu notebook dentro do seu computador. Para conseguir compartilhá-lo comigo você precisa upar o arquivo do notebook na nuvem (Google Drive por exemplo) e gerar um link de acesso para ele.

https://colab.research.google.com/drive/1c9MfCCuuiG0Oe-Fi1H-BL4NM0eQrOF5e

Bom dia, vê se você consegue acessar.

Tudo bem Bruno? Achei o problema.

É realmente ali onde eu suspeitava.

Na função train_test_split(), a ordem do retorno está errada. Está:

X_train, y_train, X_test, y_test = train_test_split(X, y, test_size=0.2, random_state = 2811)

E deve ser:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state = 2811) 

Você pode ver alguns exemplos dessa ordem na documentação oficial da função, que infelizmente só está disponívem em inglês.

solução!

Ah sim, um erro de digitação meu.

Obrigado Pedro!