DavidSB commited on
Commit
3dd5df9
·
verified ·
1 Parent(s): d38bb16

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -22
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]), 3)
20
  elif scv == '1/x':
21
- df.iloc[:, col_index] = round(1 / df.iloc[:, col_index], 3)
22
  elif scv == 'x²':
23
- df.iloc[:, col_index] = round(df.iloc[:, col_index] ** 2, 3)
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):
@@ -131,26 +131,26 @@ def avaliacao_imovel(planilha, v_1, v_2, v_3, v_4, v_5, v_6, v_7, scv_d, scv_1,
131
 
132
  # Calculando Desvio Padrão dos Resíduos
133
  #desvio_padrao_residuos = round(np.std(resultado.resid), 4)
134
- desvio_padrao_residuos = round(np.std(residuos), 4)
135
  # Calculando Estatística F
136
- estatistica_F = round(resultado.fvalue, 4)
137
  # Obtendo Nível de Significância do Modelo
138
- nivel_significancia = round(resultado.f_pvalue, 4)
139
  # Calculando R²
140
- r_squared = round(resultado.rsquared, 4)
141
  # Calculando R² ajustado
142
- r_squared_adjusted = round(resultado.rsquared_adj, 4)
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), 4)
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, 4)
151
- p_value = round(p_value, 4)
152
- skewness = round(skewness, 4)
153
- kurtosis = round(kurtosis, 4)
154
  # Extrair os coeficientes da regressão
155
  coeficientes = resultado.params
156
  # Calcular a distância de Cook
@@ -201,7 +201,7 @@ def avaliacao_imovel(planilha, v_1, v_2, v_3, v_4, v_5, v_6, v_7, scv_d, scv_1,
201
  #--------------------df_final (adiciona o erro_padronizado)------------------#
202
 
203
  # Calculando o erro padronizado
204
- erro_padronizado = round(residuos / desvio_padrao_residuos, 3)
205
  # Adicionando a coluna de erro padronizado ao df_final
206
  df_final['Erro Padronizado'] = erro_padronizado
207
 
@@ -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, 2)
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']), 2)
225
- df_correl['Preços Observados'] = round(np.exp(df_correl['Preços Observados']), 2)
226
  elif scv_d == '1/x':
227
- df_correl['Valores Ajustados'] = round(1 / df_correl['Valores Ajustados'], 2)
228
- df_correl['Preços Observados'] = round(1 / df_correl['Preços Observados'], 2)
229
  elif scv_d == 'x²':
230
- df_correl['Valores Ajustados'] = round(np.sqrt(df_correl['Valores Ajustados']), 2)
231
- df_correl['Preços Observados'] = round(np.sqrt(df_correl['Preços Observados']), 2)
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, 2)
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]), 5)
20
  elif scv == '1/x':
21
+ df.iloc[:, col_index] = round(1 / df.iloc[:, col_index], 5)
22
  elif scv == 'x²':
23
+ df.iloc[:, col_index] = round(df.iloc[:, col_index] ** 2, 5)
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):
 
131
 
132
  # Calculando Desvio Padrão dos Resíduos
133
  #desvio_padrao_residuos = round(np.std(resultado.resid), 4)
134
+ desvio_padrao_residuos = round(np.std(residuos), 5)
135
  # Calculando Estatística F
136
+ estatistica_F = round(resultado.fvalue, 5)
137
  # Obtendo Nível de Significância do Modelo
138
+ nivel_significancia = round(resultado.f_pvalue, 5)
139
  # Calculando R²
140
+ r_squared = round(resultado.rsquared, 5)
141
  # Calculando R² ajustado
142
+ r_squared_adjusted = round(resultado.rsquared_adj, 5)
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), 5)
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, 5)
151
+ p_value = round(p_value, 5)
152
+ skewness = round(skewness, 5)
153
+ kurtosis = round(kurtosis, 5)
154
  # Extrair os coeficientes da regressão
155
  coeficientes = resultado.params
156
  # Calcular a distância de Cook
 
201
  #--------------------df_final (adiciona o erro_padronizado)------------------#
202
 
203
  # Calculando o erro padronizado
204
+ erro_padronizado = round(residuos / desvio_padrao_residuos, 5)
205
  # Adicionando a coluna de erro padronizado ao df_final
206
  df_final['Erro Padronizado'] = erro_padronizado
207
 
 
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, 5)
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']), 5)
225
+ df_correl['Preços Observados'] = round(np.exp(df_correl['Preços Observados']), 5)
226
  elif scv_d == '1/x':
227
+ df_correl['Valores Ajustados'] = round(1 / df_correl['Valores Ajustados'], 5)
228
+ df_correl['Preços Observados'] = round(1 / df_correl['Preços Observados'], 5)
229
  elif scv_d == 'x²':
230
+ df_correl['Valores Ajustados'] = round(np.sqrt(df_correl['Valores Ajustados']), 5)
231
+ df_correl['Preços Observados'] = round(np.sqrt(df_correl['Preços Observados']), 5)
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, 5)
236
 
237
  #------------Gráficos dos Valores Ajustados x Resíduos Padronizados e Histograma---------------#
238