library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
# Generate  data
set.seed(123)
x <- 1:100
y <- 2*x + rnorm(100, mean = 0, sd = 10)

# Fit linear regression model
model <- lm(y ~ x)
summary(model)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -24.5356  -5.5236  -0.3462   6.4850  20.9487 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.36404    1.84287  -0.198    0.844    
## x            2.02511    0.03168  63.920   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.145 on 98 degrees of freedom
## Multiple R-squared:  0.9766, Adjusted R-squared:  0.9763 
## F-statistic:  4086 on 1 and 98 DF,  p-value: < 2.2e-16
#replicate analysis with different sds, storing results

r_squareds <- c()

for (i in seq(0,500,5)) {
  x <- 1:100
  y <- 2*x + rnorm(100, mean = 0, sd = i)
  
  model <- lm(y ~ x)
  
  r_squareds <- c(r_squareds, summary(model)$r.squared)
}
## Warning in summary.lm(model): essentially perfect fit: summary may be unreliable
r_squareds
##   [1] 1.000000e+00 9.932750e-01 9.751926e-01 9.312317e-01 9.050833e-01
##   [6] 8.566849e-01 7.828089e-01 7.212733e-01 6.834446e-01 5.678064e-01
##  [11] 5.212257e-01 5.367560e-01 5.709531e-01 4.677363e-01 4.388137e-01
##  [16] 3.421040e-01 2.278222e-01 3.251693e-01 3.227787e-01 2.475043e-01
##  [21] 1.712641e-01 2.801417e-01 1.768074e-01 2.246631e-01 3.697265e-01
##  [26] 2.064830e-01 8.277143e-02 2.682401e-01 1.415271e-01 2.292600e-01
##  [31] 1.062759e-01 2.151623e-01 3.821266e-02 1.301177e-01 9.131591e-02
##  [36] 1.890561e-01 1.365018e-01 6.056116e-02 6.904981e-02 4.224143e-02
##  [41] 7.355857e-02 1.489604e-01 1.192786e-01 5.411190e-02 1.647019e-02
##  [46] 6.815408e-03 4.544389e-02 5.613483e-02 8.249907e-02 2.950900e-02
##  [51] 1.345620e-01 1.660982e-01 1.009977e-01 2.003916e-02 2.357444e-02
##  [56] 9.065340e-02 1.250861e-01 2.835720e-02 7.543849e-04 5.636529e-02
##  [61] 5.065079e-02 1.185631e-01 7.215814e-02 4.546512e-02 6.930654e-02
##  [66] 4.209305e-05 6.859910e-02 1.460355e-02 9.984071e-02 5.692870e-02
##  [71] 2.555148e-03 4.101175e-02 9.863264e-03 1.158119e-02 1.420880e-02
##  [76] 5.492373e-02 3.536268e-02 6.200743e-02 1.982468e-04 4.013544e-02
##  [81] 1.462085e-02 4.100179e-02 6.078263e-02 3.883594e-03 2.005871e-02
##  [86] 3.085489e-02 5.432229e-03 1.305054e-02 1.174290e-04 2.078766e-02
##  [91] 1.003277e-05 5.208005e-04 2.235935e-04 3.449013e-02 1.490635e-02
##  [96] 1.502988e-02 9.713989e-04 1.507965e-02 8.039234e-03 7.607484e-03
## [101] 4.963636e-04
plot(seq(0,500,5), r_squareds)