<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
函數自帶的例子(R 中鍵入?lm
),lm(y ~ x)
迴歸y=kx + b
, lm( y ~ x -1 )
省略b,不對截距進行估計
:
require(graphics) ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". ## Page 9: Plant Weight Data. ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2, 10, 20, labels = c("Ctl","Trt")) weight <- c(ctl, trt) lm.D9 <- lm(weight ~ group) lm.D90 <- lm(weight ~ group - 1) # omitting intercept anova(lm.D9) summary(lm.D90) opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0)) plot(lm.D9, las = 1) # Residuals, Fitted, ... par(opar)
使用R中自帶的mtcars資料,可以得到截距和斜率,也可以得到解釋率R-square:
require(ggplot2) library(dplyr) #載入dplyr包 library(ggpmisc) #載入ggpmisc包 library(ggpubr) require(gridExtra) model=lm(mtcars$wt ~ mtcars$mpg) model ## 輸出: Call: lm(formula = mtcars$wt ~ mtcars$mpg) Coefficients: (Intercept) mtcars$mpg 6.047 -0.141 ``` ```handlebars summary(model) ## 輸出: Call: lm(formula = mtcars$wt ~ mtcars$mpg) Residuals: Min 1Q Median 3Q Max -0.652 -0.349 -0.138 0.319 1.368 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 6.0473 0.3087 19.59 < 2e-16 *** mtcars$mpg -0.1409 0.0147 -9.56 1.3e-10 *** --- Signif. codes: 0 ‘***' 0.001 ‘**' 0.01 ‘*' 0.05 ‘.' 0.1 ‘ ' 1 Residual standard error: 0.494 on 30 degrees of freedom Multiple R-squared: 0.753, Adjusted R-squared: 0.745 F-statistic: 91.4 on 1 and 30 DF, p-value: 1.29e-10
提取回歸R-square值:
通過summary提取: ## 上面的例子 ## mtcars例子 model=lm(mtcars$wt ~ mtcars$mpg) res=summary(model) str(res) ## 提取各個值: res$r.squared res$coefficients res$adj.r.squared ## df 矯正後的結果 res$coefficients[1,1] res$coefficients[2,1]
使用預設的plot繪製迴歸散點:
plot(mtcars$mpg, mtcars$wt, pch=20,cex=2) abline(model,col="red",lwd=2)
計算Confidence interval(95%):
test=mtcars[c("mpg","wt")] head(test) colnames(test)=c("x","y") model = lm(y ~ x, test) test$predicted = predict( object = model, newdata = test) test$CI = predict( object = model, newdata = test, se.fit = TRUE )$se.fit * qt(1 - (1-0.95)/2, nrow(test)) test$predicted = predict( object = model, newdata = test) test$CI_u=test$predicted+test$CI test$CI_l=test$predicted-test$CI plot(mtcars$mpg, mtcars$wt, pch=20,cex=1) ## have replicated x values abline(model,col="red",lwd=2) lines(x=test$x,y=test$CI_u,col="blue") lines(x=test$x,y=test$CI_l,col="blue")
上面的圖藍線有點奇怪,簡單繪製最初的plot:
plot(mtcars$mpg, mtcars$wt, pch=20,cex=1,type="b") ## have replicated x values
實際上面的計算方法沒問題,但是資料不合適,因為資料x含有重複值,所以要考慮這個。
ggplot2例子:
p <- ggplot(df, aes(x=yreal, y=ypred)) + geom_point(color = "grey20",size = 1, alpha = 0.8) #迴歸線 #新增迴歸曲線 p2 <- p + geom_smooth(formula = y ~ x, color = "red", fill = "blue", method = "lm",se = T, level=0.95) + theme_bw() + stat_poly_eq( aes(label = paste(..eq.label.., ..adj.rr.label.., sep = '~~~')), formula = y ~ x, parse = TRUE,color="blue", size = 5, #公式字型大小 label.x = 0.05, #位置 ,0-1之間的比例 label.y = 0.95) + labs(title="test",x="Real Value (Huang Huaihai 1777)" , y="Predicted Value (Correlation: 0.5029)") p2
ggplot版本的手動計算:
require(ggplot2) library(dplyr) #載入dplyr包 library(ggpmisc) #載入ggpmisc包 library(ggpubr) require(gridExtra) ggplot(data=df, aes(x=yreal, y=ypred)) + geom_smooth(formula = y ~ x, color = "blue", fill = "grey10", method = "lm") + geom_point() + stat_regline_equation(label.x=0.1, label.y=-1.5) + stat_cor(aes(label=..rr.label..), label.x=0.1, label.y=-2) test=df head(test) colnames(test)=c("x","y") model = lm(y ~ x, test) test$predicted = predict( object = model, newdata = test) test$CI = predict( object = model, newdata = test, se.fit = TRUE )$se.fit * qt(1 - (1-0.95)/2, nrow(test)) ggplot(test) + aes(x = x, y = y) + geom_point(size = 1,colour="grey40") + geom_smooth(formula =y ~ x,method = "lm", fullrange = TRUE, color = "black") + geom_line(aes(y = predicted + CI), color = "blue") + # upper geom_line(aes(y = predicted - CI), color = "red") + # lower theme_classic()
參考:
https://stackoverflow.com/questions/23519224/extract-r-square-value-with-r-in-linear-models (提取R2)
https://blog.csdn.net/LeaningR/article/details/118971000 (提取R2等)
https://stackoverflow.com/questions/45742987/how-is-level-used-to-generate-the-confidence-interval-in-geom-smooth (新增lm線)
https://zhuanlan.zhihu.com/p/131604431 (知乎)
到此這篇關於R語言在散點圖中新增lm線性迴歸公式的問題的文章就介紹到這了,更多相關R語言線性迴歸內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45