安装AIC准则使用前进法后退法和逐步回归法进行变量选择的r语言代码

安装AIC准则使用前进法后退法和逐步回归法进行变量选择的r语言代码setwd(“C:/Users/IBM/Desktop/研一课程/2.2回归分析/回归作业”) #设定当前的工作目录shuju=read.table(“shuju.txt”,header=T)shuju #读取数据#采用AIC原则自动选择模型-前进法shuju.reg1shuju.regforward2summary(shuju.regforward2)#采用A

大家好,又见面了,我是你们的朋友全栈君。setwd(“C:/Users/IBM/Desktop/研一课程/2.2回归分析/回归作业”)  #设定当前的工作目录

shuju=read.table(“shuju.txt”,header=T)

shuju   #读取数据

#采用AIC原则自动选择模型-前进法

shuju.reg1<- lm(y~.,data=shuju[,-1])

shuju.regforward2 <- step(shuju.reg1,direction=”forward”)#按照AIC原则自动选择模型

summary(shuju.regforward2)

#采用AIC原则自动选择模型-后退法

shuju.reg2<- lm(y~.,data=shuju[,-1])

shuju.regbackward2 <- step(shuju.reg2,direction=”backward”)#按照AIC原则自动选择模型

summary(shuju.regbackward2)

#采用AIC原则自动选择模型-逐步回归法

shuju.reg3<- lm(y~.,data=shuju[,-1])

shuju.regboth <- step(shuju.reg3,direction=”both”)#按照AIC原则自动选择模型

summary(shuju.regboth)

#计算方差扩大因子VIF

shuju.reg=lm(y~x1+x2+x3+x4+x5+x6+x7,data=shuju)

library(car)

vif(shuju.reg)#计算得方差扩大因子

#计算条件数condition index

X3<-cbind(shuju$x1,shuju$x2,shuju$x3,shuju$x4,shuju$x5,shuju$x6,shuju$x7)

CX<-cor(X3)#变换后所得的X’X其实就是相关系数阵

sqrt(kappa(CX,exact=T))#与SPSS的结果略有区别

eigen(CX)#求特征根和特征向量

#剔除一些不重要的解释变量

#先剔除x4

drop1(shuju.reg,scope=”x4″,test=’F’)

shuju.reg2 <- update(shuju.reg,~.-x4)

vif(shuju.reg2)

#再剔除x5

drop1(shuju.reg2,scope=”x5″,test=’F’)

shuju.reg3 <- update(shuju.reg2,~.-x5)

vif(shuju.reg3)

summary(lm(y~x1+x2+x3+x6+x7,data=shuju))

附录,数据如下、years y x1 x2 x3 x4 x5 x6 x7
1974 172.9 11246 681 105.9 10183 4110 11242 9
1975 352.94 10335 791 107.4 10414 3996 12693 6.5
1976 447.67 13156 607 114.4 13134 4689 16681 6
1977 404.02 6127 714 110.8 15033 6876 22131 4.75
1978 409.51 27419 911 99.4 17389 8636 31353 4.75
1979 619.71 25633 1231 91.4 21715 12339 43528 9.5
1980 1121.17 95684 2760 90.8 27075 16623 70752 10
1981 1506.94 105987 2651 86.3 31827 19937 125989 16
1982 1105.79 46230 2105 125.3 35393 24787 99468 10.5
1983 933.03 37165 3030 107.4 38823 25112 82478 10.5
1984 1008.54 48787 2810 106.6 46079 24414 54936 8.5
1985 1567.56 75808 2649 115.7 47871 22970 87135 6
1986 1960.06 123128 3031 110.1 54372 24403 129884 6.5
1987 2884.88 371406 3644 105.8 65602 30531 153044 5
1988 2556.72 198569 3690 101.6 74917 37861 215033 5.25

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142381.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Git 换行符检查 CRLF 与 LF

    Git 换行符检查 CRLF 与 LF

    2021年11月7日
    38
  • vc6.0控件工具栏_mfc控件隐藏

    vc6.0控件工具栏_mfc控件隐藏DevExpressVCLControls是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序DevExpressVCLv21.1.6最新版下载具体更新内容如下:此列表包括v21.1.6中已解决的所有问题。所有VCL产品T1035535–如果VCL设计器的DPI值不同于96,DevExpress在RADStud…

    2022年9月24日
    6
  • 机器人系统设计(五)[通俗易懂]

    机器人系统设计1、机器人的定义与组成——机器人是如何组成的各部分的功能:2、机器人系统构建机器人系统构建——执行机构的实现机器人系统构建——驱动系统的实现机器人系统构建——内部传感器系统的实现机器人系统构建——控制系统的实现机器人系统构建——外部传感器系统的实现3、机器人系统构建——连接摄像头       …

    2022年4月13日
    159
  • 反转每对括号间的子串java_利用栈判断字符串括号是否匹配

    反转每对括号间的子串java_利用栈判断字符串括号是否匹配给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:”dcba”示例 2:输入:s = “(u(love)i)”输出:”iloveu”示例 3:输入:s = “(ed(et(oc))el)”输出:”leetcode”示例 4:输入:s = “a(bcdefghijkl(mno)p)q”输出:”apmnolkjihgf

    2022年8月9日
    7
  • 查看文件句柄数 linux_linux文件句柄数量怎么看

    查看文件句柄数 linux_linux文件句柄数量怎么看查看系统的最大文件句柄数和文件句柄的使用者PIDulimit-n查看当前系统的最大句柄数显示如下ulimit-HSnx设置当前系统的文件句柄数为x以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修…

    2022年10月17日
    2
  • 初次了解ListNode,针对ListNode的理解「建议收藏」

    初次了解ListNode,针对ListNode的理解「建议收藏」关于ListNodepublicclassListNode{intval;ListNodenext;//链表指向的下一个值的指针ListNode(intx){val=x;}//这个方式赋值}我想到的几点事项定义链表ListNode时,链表的首个值不能为0,当首个参数为0时,代表着链表为空。 只需要定义一个List…

    2025年7月12日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号