rm(list = ls())
library(ggplot2)
file_path<-file.choose()
mydata<-read.csv(file_path,header = T,stringsAsFactors=FALSE)
#mydata<-read.csv("figure2b1.csv",stringsAsFactors=FALSE)
这个命令是手动拾取文件,能够机动灵活,将文件放在自己指定的文件夹内,下面通过注释可以指出文件位置。
linemodel<-lm(y~x,data=mydata)
summary(linemodel)$r.squared
f<-summary(linemodel)$fstatistic
pf(f[1], f[2], f[3], lower.tail=F)
linemodel
mydata$predicted <- predict(linemodel) # Save the predicted values
mydata$residuals <- residuals(linemodel) # Save the residual values
mydata$Abs_Residuals<-abs(mydata$residuals) #
这个是输出线性拟合和残差,类似的还有对数拟合;
lnmodel<-lm(y~log(x),data=mydata)
summary(lnmodel)$r.squared
f<-summary(lnmodel)$fstatistic
pf(f[1], f[2], f[3], lower.tail=F)
lnmodel
mydata$predicted2 <- predict(lnmodel) # Save the predicted values
mydata$residuals2 <- residuals(lnmodel) # Save the residual values
mydata$Abs_Residuals2<-abs(mydata$residuals2) #
指数拟合和乘幂拟合比较难做,我现在理解到lm输出架构是y~ax+b;如果x是lnx,则模式变为y~aln(x)+b,这些都是正常的模型表达式,但对于指数和乘幂y~ae^x和y~ax^b,这两个表达式用r语言建模我自己探索感