import numpy as np import pandas as pd import statsmodels.api as sm import matplotlib.pyplot as plt # Sample data data = { 'neg_reviews': [4, 2, 3, 1, 5], 'risk_perception': [2, 3, 1, 4, 2], 'consumption_behavior': [5, 4, 3, 2, 1] } df = pd.DataFrame(data) # Prepare the data X = df[['neg_reviews', 'risk_perception']] X = sm.add_constant(X) # Add a constant term for the intercept y = df['consumption_behavior'] # Fit the linear regression model model = sm.OLS(y, X) results = model.fit() # Print the regression summary print(results.summary()) # Visualize the regression results fig, ax = plt.subplots(figsize=(8, 6)) ax.scatter(df['neg_reviews'], y, label='Actual Consumption Behavior') ax.plot(df['neg_reviews'], results.fittedvalues, 'r', label='Fitted Regression Line') ax.set_xlabel('Negative Reviews') ax.set_ylabel('Consumption Behavior') ax.set_title('Stimuli-Organism-Response Model') ax.legend() plt.show() # Interpretation of the results print("Intercept:", results.params['const']) print("Coefficient for 'neg_reviews':", results.params['neg_reviews']) print("Coefficient for 'risk_perception':", results.params['risk_perception']) print("R-squared:", results.rsquared)