# 读取数据

  data=read.csv("artificial-cover.csv")

  # 查看部分数据

  head(data)

  ## tree.cover shurb.grass.cover

  ## 1 13.2 16.8

  ## 2 17.2 21.8

  ## 3 45.4 48.8

  ## 4 53.6 58.7

  ## 5 58.5 55.5

  ## 6 63.3 47.2

  #######先调用spline包

  library ( splines )

  ###########用lm拟合,主要注意部分是bs(age,knots=c(...))这部分把自变量分成不同部分

  fit =lm(tree.cover~bs(shurb.grass.cover ,knots =c(25 ,40 ,60) ),data=data )

  ############进行预测,预测数据也要分区

  pred= predict (fit , newdata =list(shurb.grass.cover =data$shurb.grass.cover),se=T)

  #############然后画图

  plot(fit)

  # 可以构造一个相对复杂的 LOWESS 模型(span参数取小一些),然后和一个简单的模型比较,如:

  ## `geom_smooth()` using method = 'loess'

  # 其他数据

  data=data[,1:4]

  head(data)

  ## year Soil vegetation SEM

  ## 1 1999 -3.483724 -2.528836 2.681003

  ## 2 1999 -3.452582 -2.418049 2.348640

  ## 3 1999 -3.350827 -2.590552 2.696037

  ## 4 1999 -3.740395 -2.933848 3.627112

  ## 5 1999 -3.465906 -2.694211 2.333755

  ## 6 1999 -3.381802 -2.788154 2.656276

  #####因变量 Soil

  #######先调用spline包

  library ( splines )

  ###########用lm拟合,主要注意部分是bs(age,knots=c(...))这部分把自变量分成不同部分

  #############然后画图

  plot(fit)无锡×××医院 https://yyk.familydoctor.com.cn/20612/

  # 可以构造一个相对复杂的 LOWESS 模型(span参数取小一些),然后和一个简单的模型比较,如:

  library(ggplot2)

  ## `geom_smooth()` using method = 'loess'

  # 总趋势

  # 按0前后分组

  #####因变量 SEM

  #######先调用spline包

  library ( splines )

  ###########用lm拟合,主要注意部分是bs(age,knots=c(...))这部分把自变量分成不同部分

  fit =lm(SEM~bs(vegetation ,knots =c(-2 ,0 ,1) ),data=data )

  ############进行预测,预测数据也要分区

  pred= predict (fit , newdata =list(vegetation =data$vegetation),se=T)

  #############然后画图

  plot(fit)

  # 可以构造一个相对复杂的 LOWESS 模型(span参数取小一些),然后和一个简单的模型比较,如:

  x<-data$vegetation

  y<-data$SEM

  # 总趋势

  ## `geom_smooth()` using method = 'loess'