Pergunta

Estou recebendo diferentes valores de r^2 (coeficiente de determinação) quando eu tento OLS se encaixa com essas duas bibliotecas e eu não consigo descobrir o porquê.(Alguns espaçamento removidos para a sua conveniência)

In [1]: import pandas as pd       
In [2]: import numpy as np
In [3]: import statsmodels.api as sm
In [4]: import scipy.stats
In [5]: np.random.seed(100)
In [6]: x = np.linspace(0, 10, 100) + 5*np.random.randn(100)
In [7]: y = np.arange(100)

In [8]: slope, intercept, r, p, std_err = scipy.stats.linregress(x, y)

In [9]: r**2
Out[9]: 0.22045988449873671

In [10]: model = sm.OLS(y, x)
In [11]: est = model.fit()

In [12]: est.rsquared
Out[12]: 0.5327910685035413

O que está acontecendo aqui?Eu não consigo entender!Há um erro em algum lugar?

Foi útil?

Solução

O 0.2205 é proveniente de um modelo que também tem uma interseção prazo--a 0.5328 valor é o resultado, se você remover o interceptar.

Basicamente, é um pacote de modelagem y = bx enquanto que o outro (útil) pressupõe que você iria também como uma interseção prazo (i.e. y = a + bx).[Nota:A vantagem deste pressuposto é o de que caso contrário, você teria de tomar x e a vincular a uma coluna de para-lo cada vez que você queria executar uma regressão (ou outra coisa que você deseja acabar com um tendenciosa o modelo)]

Confira este post para uma discussão mais longa.

Boa sorte!

Outras dicas

Esta não é uma resposta para a pergunta que foi respondida.

Cerca de R-quadrado em uma regressão sem constante.

Um problema é que uma regressão sem uma interseção não tem uma definição padrão do R^2.

Essencialmente, o R-quadrado como uma medida de qualidade do ajuste de um modelo com uma interseção, compara-se o modelo completo com o modelo que possui apenas uma interseção.Se o modelo completo não tem uma interseção, em seguida, a definição padrão de R^2 pode produzir resultados estranhos como o negativo de R^2.

A definição convencional de regressão sem constante divide-se pelo total da soma dos quadrados da variável dependente, em vez de o menosprezou.O R^2 entre uma regressão com constante e sem realmente não pode ser comparado, de forma significativa.

ver, por exemplo, o problema que provocou a mudança na statsmodels para lidar com R^2 "corretamente" no não-constante de regressão: https://github.com/statsmodels/statsmodels/issues/785

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top