rm(list = ls())
library(car)
library(MASS)
library(openxlsx)
A = read.xlsx("data141.xlsx")
head(A)

  

fm = lm(y~x1+x2+x3+x4 , data=A )
#判断多重共线性
vif(fm)

  

> vif(fm)
x1 x2 x3 x4
38.49621 254.42317 46.86839 282.51286 #具有多重共线性

  

#进行主成分回归
A.pr = princomp(~x1+x2+x3+x4 , data = A,cor=T)
summary(A.pr,loadings = T) #输出特征值和特征向量

  

> summary(A.pr,loadings = T) #输出特征值和特征向量
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 1.495227 1.2554147 0.43197934 0.0402957285
Proportion of Variance 0.558926 0.3940165 0.04665154 0.0004059364
Cumulative Proportion 0.558926 0.9529425 0.99959406 1.0000000000 Loadings:
Comp.1 Comp.2 Comp.3 Comp.4
x1 0.476 0.509 0.676 0.241
x2 0.564 -0.414 -0.314 0.642
x3 -0.394 -0.605 0.638 0.268
x4 -0.548 0.451 -0.195 0.677

  

pre = predict(A.pr)  #主成分,组合向量,无实际意义
A$z1 = pre[,1]
A$z2 = pre[,2] #根据累积贡献率,根据保留两个主成分变量

  

lm.sol = lm(y~z1 + z2,data = A) #与主成分预测变量线性回归
lm.sol
> lm.sol

Call:
lm(formula = y ~ z1 + z2, data = A) Coefficients:
(Intercept) z1 z2
95.4231 9.4954 -0.1201
> summary(lm.sol)      #模型详细

Call:
lm(formula = y ~ z1 + z2, data = A) Residuals:
Min 1Q Median 3Q Max
-3.3305 -2.1882 -0.9491 1.0998 4.4251 Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 95.4231 0.8548 111.635 < 2e-16 ***
z1 9.4954 0.5717 16.610 1.31e-08 ***
z2 -0.1201 0.6809 -0.176 0.864
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.082 on 10 degrees of freedom
Multiple R-squared: 0.965, Adjusted R-squared: 0.958
F-statistic: 138 on 2 and 10 DF, p-value: 5.233e-08

  

beta = coef(lm.sol)  #主成分分析的预测变量的系数
beta
> beta
(Intercept) z1 z2
95.4230769 9.4953702 -0.1200892

  

#预测变量还原
eigen_vec = loadings(A.pr) #特征向量
x.bar = A.pr$center #均值?
x.sd = A.pr$scale #标准误?
xishu_1 = (beta[2]*eigen_vec[,1])/x.sd
xishu_2 = (beta[3]*eigen_vec[,2])/x.sd
coef = xishu_1 + xishu_2
coef
beta0 = beta[1] - sum(x.bar*coef)
B = c(beta0,coef)
B #还原后的回归系数

  

#岭估计
esti_ling = lm.ridge(y~x1+x2+x3+x4 , data = A, lambda = seq(0,15,0.01))
plot(esti_ling)

  

#取k=5
k = 5
X = cbind(1,as.matrix(A[,2:5]))
y = A[,6]
B_ = solve((t(X)%*%X) + k*diag(5))%*%t(X)%*%y
B_

  

> B_
[,1]
0.06158362
x1 2.12614307
x2 1.16796919
x3 0.71043177
x4 0.49566883

  

R 《回归分析与线性统计模型》page141,5.2的更多相关文章

  1. R语言 线性回归分析实例 《回归分析与线性统计模型》page72

    y,X1,X2,X3 分别表示第 t 年各项税收收入(亿元),某国生产总值GDP(亿元),财政支出(亿元)和商品零售价格指数(%). (1) 建立线性模型: ① 自己编写函数: > librar ...

  2. R WLS矫正方差非齐《回归分析与线性统计模型》page115

    rm(list = ls()) A = read.csv("data115.csv") fm = lm(y~x1+x2,data = A) coef(fm) A.cooks = c ...

  3. R 《回归分析与线性统计模型》page93.6

    rm(list = ls()) #数据处理 library(openxlsx) library(car) library(lmtest) data = read.xlsx("xiti4.xl ...

  4. R 《回归分析与线性统计模型》page164 单变量、多变量多项式模型

    --多项式回归模型 --单变量多项式模型 --多变量多项式模型 rm(list = ls()) library(openxlsx) library(leaps) #单变量多项式模型# data = r ...

  5. R 《回归分析与线性统计模型》page140,5.1

    rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data140.xlsx") ...

  6. R 《回归分析与线性统计模型》page121,4.4

    rm(list = ls()) A = read.xlsx("xiti_4.xlsx",sheet = 4) names(A) = c("ord"," ...

  7. R 《回归分析与线性统计模型》page120,4.3

    #P120习题4.3 rm(list = ls()) A = read.xlsx("xiti_4.xlsx",sheet = 3) names(A) = c("ord&q ...

  8. R 《回归分析与线性统计模型》page119,4.2

    rm(list = ls()) library(openxlsx) library(MASS) data = read.xlsx("xiti_4.xlsx",sheet = 2) ...

  9. R 对数变换 《回归分析与线性统计模型》page103

    BG:在box-cox变换中,当λ = 0时即为对数变换. 当所分析变量的标准差相对于均值而言比较大时,这种变换特别有用.对数据作对数变换常常起到降低数据波动性和减少不对称性的作用..这一变换也能有效 ...

随机推荐

  1. UIScrollView学习指南

    --前言 笔者结合自己的工作经验,梳理关于UIScrollView究竟需要掌握哪些知识才算是一个好手.至于具体的实施方案,网上资源很多,自行了解吧. --正文 1.涉及到滚动和放大的功能,优先考虑使用 ...

  2. HTML5中改变了哪些东西?

    HTML5 推出的理由 想要把目前web上存在的各种问题一并解决 Web浏览器之间的兼容性很低 文档结构不够明确 Web应用程序的功能受到了限制 HTML5重新定义了浏览器的统一标准 HTML5 与 ...

  3. Struts笔记一

    Struts 概念: 是一个MVC框架: Servlet的缺点 1.在web.xml中文件中需要配置很多行代码,维护起来很不方便呢,不利于团队合作. 2.一个servlet的入口只有一个doPost或 ...

  4. RedHat OpenShift QuickStart 1.2

    一.在容器中传入/出文件 1. 创建一个初始化项目 oc login -u developer -p developer oc new-project myproject 2. 在容器中下载文件 先通 ...

  5. Java基础 -2.2

    整形数据 保存的范围由小到大:byte.short.int.long 在java中任何的一个整型常量 那么其默认的类型都是int型(只要是整数就是int类型的数据). public class ex1 ...

  6. The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest - F.Sequence(打表+线段树)

    题意:给你一个长度为$n$的数组,定义函数$f(l,r)=a_{l} \oplus a_{l+1} \oplus...\oplus a_{r}$,$F(l,r)=f(l,l)\oplus f(l,l+ ...

  7. 58按之字形顺序打印二叉树 +队列访问使用front和back,栈才是top

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推.   思路:最暴力的方法就是使用队列进行层次遍 ...

  8. SpringBoot 集成Spring JDBC

    (1)在pom.xml中添加依赖 <!--spring-jdbc的依赖--> <dependency> <groupId>org.springframework.b ...

  9. uchome后台系统配置分析

    uchome后台系统配置分析 时间:2012-09-06 17:14来源:www.chinab4c.com 作者:uchome专家 uchome后台系统设置,和ecshop后台系统设置不大一样.uch ...

  10. [多校联考]SLON!!!

    题目描述 $SLON$是一个调皮的学生,为了让他静下心来,老师给他出了一道数学题:给定表达式$A$,$A$中含有变量$x$和$+,-,*,(,)$这些符号,括号成对出现,一个算术运算符均对应两个操作数 ...