# -*- coding: utf-8 -*-
"""
Created on Sat Oct  4 07:40:26 2025

@author: Moritz Romeike
"""

# ------------------------------------------------------------------------
# Programmcode 24 (Python): Distanz Neptun-Uranus vs. SAP-Aktienkurs
# ------------------------------------------------------------------------
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import pearsonr

# Daten definieren
array_1 = np.array([
    12.3947,12.8119,13.2579,13.7275,14.218,14.727,15.2532,15.7925,16.3438,16.906,
    17.4791,18.0597,18.6476,19.2423,19.8443,20.4507,21.0616,21.6768,22.2973,22.9204,
    23.5465,24.1757
])
array_2 = np.array([
    32.45,20.22,42.75,44.56,45.61,53.7,51.79,35.65,47.23,50.66,54.28,82.05,84.97,
    69.79,76.74,86.25,111.23,98.57,135.42,131.66,140.32,104.04
])

array_1_name = "Distanz Neptun-Uranus (AU)"
array_2_name = "SAP Aktienkurs (USD)"

# Berechnung der Pearson-Korrelation
corr, p_value = pearsonr(array_1, array_2)
r_squared = corr**2

print(f"Korrelationskoeffizient: {corr:.3f}")
print(f"R-Quadrat: {r_squared:.3f}")
print(f"p-Wert: {p_value:.5e}")

# DataFrame für Plot
df = pd.DataFrame({array_1_name: array_1, array_2_name: array_2})

# Scatterplot mit Regressionsgerade
plt.figure(figsize=(8,6))
plt.scatter(df[array_1_name], df[array_2_name], alpha=0.7, color="blue", label="Daten")

# Lineare Regression (einfacher Fit)
m, b = np.polyfit(array_1, array_2, 1)
plt.plot(array_1, m*array_1 + b, color="red", linewidth=2, label="Lineare Regression")

# Annotation
plt.text(
    x=min(array_1)+1,
    y=max(array_2)-10,
    s=f"Korrelationskoeffizient: {corr:.3f}\nR²: {r_squared:.3f}\np-Wert: {p_value:.2e}",
    fontsize=10, color="black"
)

plt.title("Scatterplot: Distanz Neptun-Uranus vs. SAP Aktienkurs")
plt.xlabel(array_1_name)
plt.ylabel(array_2_name)
plt.legend()
plt.grid(True, linestyle="--", alpha=0.6)
plt.tight_layout()
plt.show()
# ------------------------------------------------------------------------
