sumit400's picture
Update app.py
6a0add5 verified
raw
history blame
1.48 kB
import gradio as gr
import numpy as np
def calculate_correlation(x_values, y_values):
try:
x_values = list(map(float, x_values.split('\n')))
y_values = list(map(float, y_values.split('\n')))
except ValueError:
return "Error: All values must be numbers."
if len(x_values) != len(y_values):
return "Error: The number of X and Y values must be the same."
n = len(x_values)
sum_x = sum(x_values)
sum_y = sum(y_values)
sum_xy = sum(x * y for x, y in zip(x_values, y_values))
sum_x_squared = sum(x * x for x in x_values)
sum_y_squared = sum(y * y for y in y_values)
numerator = n * sum_xy - sum_x * sum_y
denominator = np.sqrt((n * sum_x_squared - sum_x ** 2) * (n * sum_y_squared - sum_y ** 2))
if denominator == 0:
return "Error: Cannot calculate correlation coefficient. Check your data."
correlation = numerator / denominator
return f"The Karl Pearson correlation coefficient is: {correlation:.10f}"
iface = gr.Interface(
fn=calculate_correlation,
inputs=[
gr.components.Textbox(lines=10, placeholder="Enter X values (one per line)"),
gr.components.Textbox(lines=10, placeholder="Enter Y values (one per line)")
],
outputs="text",
title="Karl Pearson Correlation Coefficient Calculator",
description="Enter your X and Y values (one per line) to calculate the Karl Pearson correlation coefficient.",
theme="compact"
)
iface.launch()