失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > R语言 线性回归分析实例

R语言 线性回归分析实例

时间:2022-12-23 07:26:08

相关推荐

R语言 线性回归分析实例

y,X1,X2,X3 分别表示第 t 年各项税收收入(亿元),某国生产总值GDP(亿元),财政支出(亿元)和商品零售价格指数(%).

(1) 建立线性模型

① 自己编写函数:

> library(openxlsx)> data = read.xlsx("22_data.xlsx",sheet = 1)> x = data[,-c(1,2)]> x = cbind(rep(1,17),x)> x_mat = as.matrix(x)> y =matrix(data[,2],ncol = 1)> res = solve(t(x_mat)%*%x_mat)%*%t(x_mat)%*%y> res[,1]rep(1, 17) 19412.8597818X1 0.2679605X2 -0.2874013X3-297.3653736

所以各参数的估计值分别为

② lm函数

> lm(y~x_mat)Call:lm(formula = y ~ x_mat)Coefficients:(Intercept) x_matrep(1, 17)x_matX1 19412.859781545NA0.267960511 x_matX2x_matX3 -0.287401287 -297.365373557

于是各参数的估计值分别为

这两个方法的结果是一样的。

(2)要求实验报告中画出矩阵散点图,给出参数的点估计、区间估计、t检验值、判定系数和模型F检验的方差分析表

绘制矩阵散点图。

library(graphics)pairs(data[,-1]pch = 21,bg = c('red','green3','blue'))# pch参数是控制点的形状,bg是控制点的颜色

下面代码给出参数的点估计,t检验值,判定系数

> summary(lm(y~x_mat+1))Call:lm(formula = y ~ x_mat + 1) #调用Residuals:#残差统计量,残差第一四分位数(1Q)和第三分位数(3Q)有大约相同的幅度,意味着有较对称的钟形分布Min1Q Median3QMax -4397.9 -1102.4 153.8 1184.4 2934.6 Coefficients: (1 not defined because of singularities) Estimate Std. Error t value Pr(>|t|) (Intercept)1.941e+04 3.524e+04 0.551 0.591 x_matrep(1, 17) NA NANA NA x_matX12.680e-01 4.466e-02 6.000 4.45e-05 ***x_matX2 -2.874e-01 1.668e-01 -1.723 0.109 x_matX3 -2.974e+02 3.688e+02 -0.806 0.435 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#标记为Estimate的列包含由最小二乘法计算出来的估计回归系数。

#标记为Std.Error的列是估计的回归系数的标准误差。

#从理论上说,如果一个变量的系数是0,那么该变量将毫无贡献。然而,这里显示的系数只是估计,它们不会正好为0.

#因此,我们不禁会问:从统计的角度而言,真正的系数为0的可能性有多大?这是t统计量和P值的目的,在汇总中被标记为t value和Pr(>|t|)#P值估计系数不显著的可能性,有较大P值的变量是可以从模型中移除的候选变量

Residual standard error: on 13 degrees of freedomMultiple R-squared: 0.9982,Adjusted R-squared: 0.9977 F-statistic: 2348 on 3 and 13 DF, p-value: < 2.2e-16

#Residual standard error 表示残差的标准差,F-statistic 表示F的统计量

区间估计?方差分析表?

(3)保留模型中线性关系显著的预测变量确定最后的模型,并利用R软件中的"predict"语句预测的税收收入

根据回归分析结果,只有变量X1具有显著性。所以模型中仅保留变量X1。

构造模型:

x_mat = cbind(rep(1,17),data[,3]) y = data[,2]res = lm(y~x_mat)res> resCall:lm(formula = y ~ x_mat)Coefficients:(Intercept) x_mat1 x_mat2 -6213.0189 NA 0.1915

该模型为:Y = -6213.0189 + 0.1915 X1

接下来预测的税收收入,先根据数据data对 t 和 y 之间的关系进行回归分析

t = data[,1]y = data[,2]res = lm(y~t)res> resCall:lm(formula = y ~ t)Coefficients:(Intercept) t -16428607 8213

所以 t 与 y 的关系为:y = -16428607 + 8213 t

预测 年的税收收入:

> newdata = data.frame(t = )> pre = predict(res,newdata,interval = "prediction",level = 0.95)> prefitlwrupr1 136337.8 116018.1 156657.4

如果觉得《R语言 线性回归分析实例》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。