input: 
  def simple_linear_regression(data: pd.DataFrame) -> None:
      """ Perform simple linear regression on the given data and visualize the results.
      The data should contain two columns: 'X' for the independent variable and 'Y' for the dependent variable.
      The function will train a linear regression model, predict values, and plot the original data points along with 
      the regression line.
  
      >>> data = pd.DataFrame({'X': [1, 2, 3, 4, 5], 'Y': [2, 4, 5, 4, 5]})
      >>> simple_linear_regression(data)
      # Visualization of the plot will be shown, with the original data points and the regression line in red.
      """
      
      # Set X and Y
      X = data['X'].values.reshape(-1, 1)
      Y = data['Y'].values.reshape(-1, 1)
  
      # Create linear regression model
      model = linear_model.LinearRegression()
  
      # Train the model
      model.fit(X, Y)
  
      # Make predictions
      Y_pred = model.predict(X)
  
      # Visualize the results
      plt.scatter(X, Y)
      plt.plot(X, Y_pred, color='red')
      plt.show()
  
output:     
      # Calculate the R-squared value
      r_squared = model.score(X, Y)
  
      # Print the model coefficients and R-squared value
      print(f"Intercept: {model.intercept_[0]}")
      print(f"Slope: {model.coef_[0][0]}")
      print(f"R-squared: {r_squared}")
  