简单线性回归_R语言
从某工业部门抽取10个生产单位进行调查,得到以下数据:
序号 | 年产量 万吨 | 人数 千人 |
---|---|---|
1 | 210.8 | 7.062 |
2 | 210.1 | 7.031 |
3 | 211.5 | 7.018 |
4 | 208.9 | 6.991 |
5 | 207.4 | 6.974 |
6 | 205.3 | 7.953 |
7 | 198.8 | 6.927 |
8 | 192.1 | 6.302 |
9 | 183.2 | 6.021 |
10 | 176.8 | 5.310 |
假设年产量与工作人数存在线性关系,用简单线性回归估计生产函数及边际劳动生产率。
# 读入数据
data = readxl::read_xlsx('文件路径', skip = 0)
data = data.frame(data)
No 年产量万吨 工作人员数千人
1 1 210.8 7.062
2 2 210.1 7.031
3 3 211.5 7.018
4 4 208.9 6.991
5 5 207.4 6.974
6 6 205.3 7.953
7 7 198.8 6.927
8 8 192.1 6.302
9 9 183.2 6.021
10 10 176.8 5.310
# 提取变量
Y = data$年产量万吨
X = data$工作人员数千人
# 训练模型
result = lm( Y ~ X )
# 调用回归结果
summary(result)
Call:
lm(formula = Y ~ X)
Residuals:
Min 1Q Median 3Q Max
-12.795 -3.708 1.042 5.446 7.190
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 100.842 21.916 4.601 0.00175 **
X 14.743 3.226 4.570 0.00183 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 6.949 on 8 degrees of freedom
Multiple R-squared: 0.723, Adjusted R-squared: 0.6884
F-statistic: 20.88 on 1 and 8 DF, p-value: 0.001826
cat('该线性生产函数为:','\n', '年产量(万吨) = ', result$coefficients[1], '+', result$coefficients[2],'*工作人数(千人) ')
该线性生产函数为:
年产量(万吨) = 100.8424 + 14.74317 *工作人数(千人)
paste("边际劳动生产率为:", round(result$coefficients[2],3), "万吨/千人")
[1] "边际劳动生产率为: 14.743 万吨/千人"