
用R语言进行简单线性回归分析,数据出自何晓群--应用回归分析,语言如下所示:
x y
3.4 26.2
1.8 17.8
4.6 31.3
2.3 23.1
3.1 27.5
5.5 36
0.7 14.1
3 22.3
2.6 19.6
4.3 31.3
2.1 24
1.1 17.3
6.1 43.2
4.8 36.4
3.8 26.1
#-------------------------------------------------------------#数据准备
fire <- read.table('D:/fire.txt', head = T)
#-------------------------------------------------------------#回归分析
plot(fire$y ~ fire$x)
fire.reg <- lm(fire$y ~ fire$x, data = fire) #回归拟合
summary(fire.reg) #回归分析表
anova(fire.reg) #方差分析表
abline(fire.reg, col = 2, lty = 2) #拟合直线
#-------------------------------------------------------------#残差分析
fire.res <- residuals(fire.reg) #残差
fire.sre <- rstandard(fire.reg) #学生化残差
plot(fire.sre)
abline(h = 0)
text(11, fire.sre[11], label = 11, adj = (-0.3), col = 2) #标注点
#-------------------------------------------------------------#预测与控制
attach(fire) #连接
fire.reg <- lm(y ~ x) #这种回归拟合简单
fire.points <- data.frame(x = c(3.5, 4))
fire.pred <- predict(fire.reg, fire.points, interval = 'prediction', level = 0.95) #预测:置信区间
fire.pred
detach(fire) #取消连接
--------------------------------------------------------------------------------------------------
#附自编的过程程序:(R最大的好处是可以自己编想要的程序和函数,尤其没有内置函数的时候)
fire <- read.table('D:/fire.txt', head = T)
attach(fire)
--------------------------------------------
lxy <- function(x){
sum <- 0
sum0 <- 0
for(i in 1:length(x)){
sum0 <- (x[i] - mean(x)) * (y[i]-mean(y))
sum <- sum + sum0}
sum}
---------------------------------------------------------------------------------
#用这个就不需要循环了
lxy <- function(x){
mid <- (x - mean(x)) * (y-mean(y))
sum <- sum(mid)
sum}
#对于数据框、列表等数据对象要善用apply()函数。
---------------------------------------------------------------------------------
lxx <- function(x){
sum <- 0
sum0 <- 0
for(i in 1:length(x)){
sum0 <- (x[i] - mean(x))^2
sum <- sum + sum0}
sum}
Lxx <- lxx(x)
Lyy <- lxx(y)
Lxy <- lxy(x)
b1 <- Lxy / Lxx; b1 #回归系数斜率
b0 <- mean(y) - b1 * mean(x); b0 #回归系数截距
residu <- y - (b0 + b1*x); residu #残差
r <- Lxy / sqrt(Lxx * Lyy); r #相关系数
rsqure <- r^2; rsqure #决定系数
adrsqure <- 1 - ((length(x)-1)/(length(x)-2))*(1-r^2) #调整后的决定系数
----------------------------------------------------------------------------------
esrequre <- function(x){ #求标准差平方估计值
sum <- 0
sum0 <- 0
for(i in 1:length(x)){
sum0 <- residu[i]^2
sum <- sum + sum0}
residusqure <- sum/(length(x)-2)
residusqure}
esterreq <- esrequre(x); esterreq #标准差平方估计值(MSE)
ester <- sqrt(esrequre(x)); ester #标准差估计值(回归分析表给出的标准误差)
val_t <- b1*sqrt(Lxx) / ester; val_t #检验回归系数斜率b1的t值
SSe <- function(x){ #求残差平方和
sum <- 0
sum0 <- 0
for(i in 1:length(x)){
sum0 <- residu[i]^2
sum <- sum + sum0}
sum}
SSE <- SSe(x); SSE #残差平方和
MSE <- SSE/(length(x)-2); MSE #残差均方和
SSr <- function(x){
sum <- 0
sum0 <- 0
for(i in 1:length(x)){
sum0 <- ((b0 + b1*x[i]) - mean(y))^2
sum <- sum + sum0}
sum}
SSR <- SSr(x); SSR #回归平方和
MSR <- SSR/1; MSR #回归均方和
val_F <- SSR / MSE; val_F #检验回归方程F值
hi <- 1/length(x) + (x-mean(x))^2/Lxx #杠杆值
ZRE <- residu / ester; ZRE #标准化残差
SRE <- residu/(ester*sqrt(1-hi)); SRE #学生化残差
Y <- function(x){b0 + b1 * x} #点估计
Y(3.5)
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
SQL Server 中 CONVERT 函数的日期转换:从基础用法到实战优化 在 SQL Server 的数据处理中,日期格式转换是高频需求 —— 无论 ...
2025-09-18MySQL 大表拆分与关联查询效率:打破 “拆分必慢” 的认知误区 在 MySQL 数据库管理中,“大表” 始终是性能优化绕不开的话题。 ...
2025-09-18CDA 数据分析师:表结构数据 “获取 - 加工 - 使用” 全流程的赋能者 表结构数据(如数据库表、Excel 表、CSV 文件)是企业数字 ...
2025-09-18DSGE 模型中的 Et:理性预期算子的内涵、作用与应用解析 动态随机一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明确:TIF 中的地名有哪两种存在形式? 在开始提取前,需先判断 TIF 文件的类型 —— ...
2025-09-17CDA 数据分析师:解锁表结构数据特征价值的专业核心 表结构数据(以 “行 - 列” 规范存储的结构化数据,如数据库表、Excel 表、 ...
2025-09-17Excel 导入数据含缺失值?详解 dropna 函数的功能与实战应用 在用 Python(如 pandas 库)处理 Excel 数据时,“缺失值” 是高频 ...
2025-09-16深入解析卡方检验与 t 检验:差异、适用场景与实践应用 在数据分析与统计学领域,假设检验是验证研究假设、判断数据差异是否 “ ...
2025-09-16CDA 数据分析师:掌控表格结构数据全功能周期的专业操盘手 表格结构数据(以 “行 - 列” 存储的结构化数据,如 Excel 表、数据 ...
2025-09-16MySQL 执行计划中 rows 数量的准确性解析:原理、影响因素与优化 在 MySQL SQL 调优中,EXPLAIN执行计划是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 对象的 text 与 content:区别、场景与实践指南 在 Python 进行 HTTP 网络请求开发时(如使用requests ...
2025-09-15CDA 数据分析师:激活表格结构数据价值的核心操盘手 表格结构数据(如 Excel 表格、数据库表)是企业最基础、最核心的数据形态 ...
2025-09-15Python HTTP 请求工具对比:urllib.request 与 requests 的核心差异与选择指南 在 Python 处理 HTTP 请求(如接口调用、数据爬取 ...
2025-09-12解决 pd.read_csv 读取长浮点数据的科学计数法问题 为帮助 Python 数据从业者解决pd.read_csv读取长浮点数据时的科学计数法问题 ...
2025-09-12CDA 数据分析师:业务数据分析步骤的落地者与价值优化者 业务数据分析是企业解决日常运营问题、提升执行效率的核心手段,其价值 ...
2025-09-12用 SQL 验证业务逻辑:从规则拆解到数据把关的实战指南 在业务系统落地过程中,“业务逻辑” 是连接 “需求设计” 与 “用户体验 ...
2025-09-11塔吉特百货孕妇营销案例:数据驱动下的精准零售革命与启示 在零售行业 “流量红利见顶” 的当下,精准营销成为企业突围的核心方 ...
2025-09-11CDA 数据分析师与战略 / 业务数据分析:概念辨析与协同价值 在数据驱动决策的体系中,“战略数据分析”“业务数据分析” 是企业 ...
2025-09-11Excel 数据聚类分析:从操作实践到业务价值挖掘 在数据分析场景中,聚类分析作为 “无监督分组” 的核心工具,能从杂乱数据中挖 ...
2025-09-10统计模型的核心目的:从数据解读到决策支撑的价值导向 统计模型作为数据分析的核心工具,并非简单的 “公式堆砌”,而是围绕特定 ...
2025-09-10