# resample with replacement each row boot_slopes = [] boot_interc = [] n_boots = 100 plt.figure() for _ in range(n_boots): # sample the rows, same size, with replacement sample_df = data_df.sample(n=n_points, replace=True) # fit a linear regression ols_model_temp = sm.ols(formula = 'y ~ x', data=sample_df) results_temp = ols_model_temp.fit() # append coefficients boot_interc.append(results_temp.params[0]) boot_slopes.append(results_temp.params[1]) # plot a greyed out line y_pred_temp = ols_model_temp.fit().predict(sample_df['x']) plt.plot(sample_df['x'], y_pred_temp, color='grey', alpha=0.2)