Update app.py
Browse files
app.py
CHANGED
|
@@ -16,11 +16,11 @@ def aplicar_operacao(df, scv, col_index):
|
|
| 16 |
if scv == 'x':
|
| 17 |
pass
|
| 18 |
elif scv == 'lnx':
|
| 19 |
-
df.iloc[:, col_index] = round(np.log(df.iloc[:, col_index]),
|
| 20 |
elif scv == '1/x':
|
| 21 |
-
df.iloc[:, col_index] = round(1 / df.iloc[:, col_index],
|
| 22 |
elif scv == 'x²':
|
| 23 |
-
df.iloc[:, col_index] = round(df.iloc[:, col_index] ** 2,
|
| 24 |
|
| 25 |
# função para plotagem dos gráficos de dispersão:
|
| 26 |
def criar_grafico_dispersao(df, x_column, y_column, hover_name, trendline_color):
|
|
@@ -130,27 +130,27 @@ def avaliacao_imovel(planilha, v_1, v_2, v_3, v_4, v_5, v_6, v_7, scv_d, scv_1,
|
|
| 130 |
residuos = resultado.resid
|
| 131 |
|
| 132 |
# Calculando Desvio Padrão dos Resíduos
|
| 133 |
-
#desvio_padrao_residuos = round(np.std(resultado.resid),
|
| 134 |
-
desvio_padrao_residuos = round(np.std(residuos),
|
| 135 |
# Calculando Estatística F
|
| 136 |
-
estatistica_F = round(resultado.fvalue,
|
| 137 |
# Obtendo Nível de Significância do Modelo
|
| 138 |
-
nivel_significancia = round(resultado.f_pvalue,
|
| 139 |
# Calculando R²
|
| 140 |
-
r_squared = round(resultado.rsquared,
|
| 141 |
# Calculando R² ajustado
|
| 142 |
-
r_squared_adjusted = round(resultado.rsquared_adj,
|
| 143 |
# Obtendo Número de Observações
|
| 144 |
num_observacoes = round(resultado.nobs, 0)
|
| 145 |
# Calculando Coeficiente de Correlação
|
| 146 |
-
coef_correlacao = round(np.sqrt(r_squared),
|
| 147 |
# Calculando o teste de Jarque-Bera para os resíduos
|
| 148 |
jarque_bera_test, p_value, skewness, kurtosis = jarque_bera(residuos)
|
| 149 |
# Formatando os resultados com 4 casas decimais
|
| 150 |
-
jarque_bera_test = round(jarque_bera_test,
|
| 151 |
-
p_value = round(p_value,
|
| 152 |
-
skewness = round(skewness,
|
| 153 |
-
kurtosis = round(kurtosis,
|
| 154 |
# Extrair os coeficientes da regressão
|
| 155 |
coeficientes = resultado.params
|
| 156 |
# Calcular a distância de Cook
|
|
@@ -215,24 +215,24 @@ def avaliacao_imovel(planilha, v_1, v_2, v_3, v_4, v_5, v_6, v_7, scv_d, scv_1,
|
|
| 215 |
# Obtendo os valores previstos
|
| 216 |
valores_previstos = resultado.predict(X)
|
| 217 |
# Adicionando os valores previstos como uma nova coluna ao df_final
|
| 218 |
-
df_final['Valores Ajustados'] = round(valores_previstos,
|
| 219 |
# Criando uma dataframe para os Valores Ajustados x Preços Observados
|
| 220 |
df_correl = df_final[[df_filtrado.columns[0], df_filtrado.columns[1], 'Valores Ajustados']]
|
| 221 |
df_correl = df_correl.rename(columns={df_filtrado.columns[1]: 'Preços Observados'})
|
| 222 |
# Desfazendo a conversão da escala
|
| 223 |
if scv_d == 'lnx':
|
| 224 |
-
df_correl['Valores Ajustados'] = round(np.exp(df_correl['Valores Ajustados']),
|
| 225 |
-
df_correl['Preços Observados'] = round(np.exp(df_correl['Preços Observados']),
|
| 226 |
elif scv_d == '1/x':
|
| 227 |
-
df_correl['Valores Ajustados'] = round(1 / df_correl['Valores Ajustados'],
|
| 228 |
-
df_correl['Preços Observados'] = round(1 / df_correl['Preços Observados'],
|
| 229 |
elif scv_d == 'x²':
|
| 230 |
-
df_correl['Valores Ajustados'] = round(np.sqrt(df_correl['Valores Ajustados']),
|
| 231 |
-
df_correl['Preços Observados'] = round(np.sqrt(df_correl['Preços Observados']),
|
| 232 |
else:
|
| 233 |
pass # Nenhuma transformação é necessária
|
| 234 |
|
| 235 |
-
df_correl['Diferença %'] = round(((df_correl['Valores Ajustados']/df_correl['Preços Observados'])-1)*100,
|
| 236 |
|
| 237 |
#------------Gráficos dos Valores Ajustados x Resíduos Padronizados e Histograma---------------#
|
| 238 |
|
|
|
|
| 16 |
if scv == 'x':
|
| 17 |
pass
|
| 18 |
elif scv == 'lnx':
|
| 19 |
+
df.iloc[:, col_index] = round(np.log(df.iloc[:, col_index]), 8)
|
| 20 |
elif scv == '1/x':
|
| 21 |
+
df.iloc[:, col_index] = round(1 / df.iloc[:, col_index], 8)
|
| 22 |
elif scv == 'x²':
|
| 23 |
+
df.iloc[:, col_index] = round(df.iloc[:, col_index] ** 2, 8)
|
| 24 |
|
| 25 |
# função para plotagem dos gráficos de dispersão:
|
| 26 |
def criar_grafico_dispersao(df, x_column, y_column, hover_name, trendline_color):
|
|
|
|
| 130 |
residuos = resultado.resid
|
| 131 |
|
| 132 |
# Calculando Desvio Padrão dos Resíduos
|
| 133 |
+
#desvio_padrao_residuos = round(np.std(resultado.resid), 8)
|
| 134 |
+
desvio_padrao_residuos = round(np.std(residuos), 8)
|
| 135 |
# Calculando Estatística F
|
| 136 |
+
estatistica_F = round(resultado.fvalue, 8)
|
| 137 |
# Obtendo Nível de Significância do Modelo
|
| 138 |
+
nivel_significancia = round(resultado.f_pvalue, 8)
|
| 139 |
# Calculando R²
|
| 140 |
+
r_squared = round(resultado.rsquared, 8)
|
| 141 |
# Calculando R² ajustado
|
| 142 |
+
r_squared_adjusted = round(resultado.rsquared_adj, 8)
|
| 143 |
# Obtendo Número de Observações
|
| 144 |
num_observacoes = round(resultado.nobs, 0)
|
| 145 |
# Calculando Coeficiente de Correlação
|
| 146 |
+
coef_correlacao = round(np.sqrt(r_squared), 8)
|
| 147 |
# Calculando o teste de Jarque-Bera para os resíduos
|
| 148 |
jarque_bera_test, p_value, skewness, kurtosis = jarque_bera(residuos)
|
| 149 |
# Formatando os resultados com 4 casas decimais
|
| 150 |
+
jarque_bera_test = round(jarque_bera_test, 8)
|
| 151 |
+
p_value = round(p_value, 8)
|
| 152 |
+
skewness = round(skewness, 8)
|
| 153 |
+
kurtosis = round(kurtosis, 8)
|
| 154 |
# Extrair os coeficientes da regressão
|
| 155 |
coeficientes = resultado.params
|
| 156 |
# Calcular a distância de Cook
|
|
|
|
| 215 |
# Obtendo os valores previstos
|
| 216 |
valores_previstos = resultado.predict(X)
|
| 217 |
# Adicionando os valores previstos como uma nova coluna ao df_final
|
| 218 |
+
df_final['Valores Ajustados'] = round(valores_previstos, 8)
|
| 219 |
# Criando uma dataframe para os Valores Ajustados x Preços Observados
|
| 220 |
df_correl = df_final[[df_filtrado.columns[0], df_filtrado.columns[1], 'Valores Ajustados']]
|
| 221 |
df_correl = df_correl.rename(columns={df_filtrado.columns[1]: 'Preços Observados'})
|
| 222 |
# Desfazendo a conversão da escala
|
| 223 |
if scv_d == 'lnx':
|
| 224 |
+
df_correl['Valores Ajustados'] = round(np.exp(df_correl['Valores Ajustados']), 8)
|
| 225 |
+
df_correl['Preços Observados'] = round(np.exp(df_correl['Preços Observados']), 8)
|
| 226 |
elif scv_d == '1/x':
|
| 227 |
+
df_correl['Valores Ajustados'] = round(1 / df_correl['Valores Ajustados'], 8)
|
| 228 |
+
df_correl['Preços Observados'] = round(1 / df_correl['Preços Observados'], 8)
|
| 229 |
elif scv_d == 'x²':
|
| 230 |
+
df_correl['Valores Ajustados'] = round(np.sqrt(df_correl['Valores Ajustados']), 8)
|
| 231 |
+
df_correl['Preços Observados'] = round(np.sqrt(df_correl['Preços Observados']), 8)
|
| 232 |
else:
|
| 233 |
pass # Nenhuma transformação é necessária
|
| 234 |
|
| 235 |
+
df_correl['Diferença %'] = round(((df_correl['Valores Ajustados']/df_correl['Preços Observados'])-1)*100, 8)
|
| 236 |
|
| 237 |
#------------Gráficos dos Valores Ajustados x Resíduos Padronizados e Histograma---------------#
|
| 238 |
|