r语言实验报告总结.docx
《r语言实验报告总结.docx》由会员分享,可在线阅读,更多相关《r语言实验报告总结.docx(6页珍藏版)》请在冰豆网上搜索。
r语言实验报告总结
竭诚为您提供优质文档/双击可除
r语言实验报告总结
篇一:
R语言实验心得模板
实验心得
姓名:
杨辉
学号:
132085124
接触R语言不久,一开始以为R语言很简单,很多时候只是一句代码的问题。
但学起来才知道,不是那么一回事。
看到不少同学问一些基础的问题,结合自己犯过的错,总结以下几条关于数据类型的学习心得:
(1)R语言中向量和矩阵的是不同的。
一般人会认为向量就是一维(:
r语言实验报告总结)的矩阵,但R语言不是这样操作,不同类型对应不同的操作。
如dim()函数可返回矩阵的行、列数,但是dim()作用域一个向量,则会返回nuLL;同时,若将向量强制转化为矩阵,不是像显示向量时的行矩阵,而是一个列矩阵;
(2)R中矩阵提取行、列存在意外将维的问题。
这其实和第一条有密切联系,进而导致些意外的错误。
具体而言,若从矩阵中提取某一行出来,R会默认的将改行用向量存储,而不再是矩阵,而言导致涉及矩阵的操作出错。
一个明显的例子就是apply(),该函数的第二个参数需要制定数据操作的维度,但若矩阵已不再是矩阵(转成向量),那么指定1、2都没有意义了。
因此,矩阵提取时要注意,不要改变数据维度,常用的做法是设置drop=FALse,如从3*2的矩阵中提取第二行,应该为m[2,,drop=FALse];
(3)因子和数值的转化。
这是个有趣的问题。
假如c=(1,3,5)是个数值向量,将之转为因子类型是没有问题的,对应的水平也为1,3,5,但是若再次将因子转为数值时,转化后的结果不再是数据向量(1,3,5),而是(1,2,3),也就是说对因子转数值,默认的操作应该是对因子排序,然后依次转为连续的数值,而不是直接将显示的因子转为数值,此处需要格外注意。
篇二:
R语言判别分析实验报告
R语言判别分析实验报告
班级:
应数1201
学号:
12404108姓名:
麦琼辉
时间:
20XX年11月28号
1实验目的及要求
1)了解判别分析的目的和意义;
2)熟悉R语言中有关判别分析的算法基础。
2实验设备(环境)及要求
个人计算机一台,装有R语言以及Rstudio并且带有mAss包。
3实验内容
企业财务状况的判别分析
4实验主要步骤
1)数据管理:
实验对21个破产的企业收集它们在前两年的财务数据,对25个财务良好的企业也收集同一时期的数据。
数据涉及四个变量:
cF_TD(现金/总债务);nI_TA(净收入/总资产);cA_cL(流动资产/流动债务);cA_ns(流动资产/净销售额),一个分组变量:
企业现状(1:
非破产企业,2:
破产企业)。
2)调入数据:
对数据复制,然后在Rstudio编辑器中执行如下命令。
case5=read.table(‘clipboard’,head=T)
head(case5)
3)Fisher判别效果(等方差,线性判别lda):
采用bayes方式,即先验概率为样本例数,相关的Rstudio程序命令如下所示。
library(mAss)
ld=lda(g~.,data=case5);ld#线性判别
ZId=predict(ld)
addmargins(table(case5$g,ZId$class))
4)Fisher判别效果(异方差,非线性判别--二次判别qda):
再次采用bayes
方式,相关的Rstudio程序命令如下所示。
library(mAss)
qd=qda(g~.,data=case5);qd#二次判别
Zqd=predict(qd)
addmargins(table(case5$g,Zqd$class))
5实验结果
表1线性判别lda效果
新分类原分类12合计
124125
231821
合计271946
符合率91.30%
表2二次判别qda效果新分类原分类12合计124125221921合计262046符合率93.50%
由表1和表2可知,qda(二次判别---非线性判别)的效果比lda(一次判别)要好。
6实验小结
通过本次实验了解了判别分析的目的和意义,并熟悉R语言中有关判别分析的算法基础。
篇三:
R语言学习总结
R语言学习总结
经过接近一个学期的学习,从对R语言的完全陌生,到现在对其有了一些粗浅的认识,其中经历了遇到困难苦思冥想的艰辛,也有解决问题以后豁然开朗的畅快。
在学习的过程中,以前掌握的数理基础给我带来了不少便利,而认真地态度和踏实的性格也使我获益匪浅。
在这个学期中,我学会了R语言的基本操作和语法,以及针对具体的统计学问题相应的解决方法。
并按时完成老师布置的课后作业,以达到学以致用的目的,也加强了对R语言操作的熟练度。
一、初识R软件
R软件是一套完整的数据处理、计算和制图软件系统。
其功能包括:
据存储和处理,数组运算,完整连贯的统计分析工具,优秀的统计制图功能已及简便而强大编程语言。
接触R语言以后,我的第一感觉就是方便和强大。
R语言中有非常多的函数和包,我们几乎不用自己去编一些复杂的算法,而往往只需要短短几行代码就能解决很复杂的问题,这给我们的使用带来了极大地方便;于此同时,它又可操纵数据的输入输出,实习分支、循环,使用者可以自定义功能,这就意味着当找不到合适的函数或包来解决所遇的问题时,我们又可以自己编程去实现各种具体功能,这也正是R语言的强大之处。
二、学习心得
在学习该书的过程中,我不仅加深了对统计学方法的理解,同时也掌握了R软件的编程方法和基本技巧,了解了各种函数的意义和用法,并能把两者结合起来,解决实际中的统计问题。
1、R语言的基本语法及技巧
R语言不仅可以进行基础的数字、字符以及向量的运算,内置了许多与向量
运算有关的函数。
而且还提供了十分灵活的访问向量元素和子集的功能。
R语言中经常出现数组,它可以看作是定义了维数(dim属性)的向量。
因此数组同样可以进行各种运算,以及访问数组元素和子集。
二维数组(矩阵)是比较重要和特殊的一类数组,R可以对矩阵进行内积、外积、乘法、求解、奇异值分解及最小二乘拟合等运算,以及进行矩阵的合并、拉直等。
apply()函数可以在对矩阵的一维或若干维进行某种计算,例如apply(A,1,mean)表示对A按行求和。
R语言允许将不同类型的元素放在一个集合中,这个集合叫做一个列表,列表元素总可以用“列表名[[下标]]”的格式引用。
而“列表名[下标]”表示的是一个子列表,这是一个很容易混淆的地方。
R语言中非常重要的一种数据结构是data.frame(数据框),它通常是矩阵形式的数据,但每列可以是不同类型,数据框每列是一个变量,每行是一个观测,要注意的是每一列必须有相同的长度。
数据框元素可以使用下标或者下标向量引用。
用一个非常简单的例子来说明向量、矩阵和数据框的简单运用。
输入:
A x[1:
2,seq(1,5,2)]#输出x的第1、2行和1、3、5列结果为:
V1V3V5
1135
27911
输入:
attach(x);R [1]0.20000000.6363636
与此同时R语言中也提供了其它高级程序语言共有的分支、循环等程序控制结构。
比如if/else语句,for循环等。
因此R语言也可以很容易的根据情况编写自己所需要的函数。
以习题2.7为例:
编写一个R程序,输入一个整数n,如果n小于等于0,中止运算,并输出:
“要求输入一个正整数”;否则,如果n是偶数,则将n除2赋值给n;否则将3n+1赋给n。
不断循环,直到n=1停止,并输出:
“运算成功”
解:
新建一个程序脚本,名为chapter2.R”,写入代码:
f if(n else{repeat{
if(n==1)break#n=1时终止elseif(n/2==as.integer(n/2))n }
list("运算成功")
}
}
在R窗口中输入:
source(“chapter2.R”);f(32)
输出:
[1]"运算成功"
输入:
f(-5)
输出:
[1]"要求输入一个正整数"
2、R在统计描述中的应用
使用R软件可以方便直观的对数据进行描述性分析。
如使用均值、中位数、顺序统计量等度量位置;用方差、标准差、变异系数等度量分散程度;以及用峰度系数、偏度系数度量分布形状。
例如在窗口中输入:
x length(x);mean(x);var(x);sd(x);median(x);100*sd(x)/mean(x)
[1]197#长度
[1]295#均值
[1]29254.5#方差
[1]171.0395#标准差
[1]295#中位数
[1]57.97948#样本标准差
n n/((n-1)*(n-2))*sum((x-m)^3)/s^3;((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4-(3*(n-1)^2)/((n-2)*(n-3)))
[1]0#偏度系数
[1]-1.2#峰度系数
R软件可以检验样本是不是来自某种分布总体,以正态分布为例,我们可以通过shapiro.test()函数提供w统计量和相应的p值,并通过p值的大小判断样本是否来自正态分布的总体。
经验分布的K-s检验方法的应用范围则更加广泛,不仅可以判断样本是否来自正态总体,也能判断是否来自其它类型的分布总体。
以习题3.3为例:
分别用w检验方法和Kolmogorov-smirnov检验方法检验习题3.1的数据是否服从正态分布;
首先将一百个数据存入”data.txt”中(此文件要放在工作空间目录中)x shapiro-wilknormalitytest
data:
x
w=0.9901,p-value=0.6708可见该样本来自正态总体
ks.test(x,pnorm,mean(x),sd(x))
one-sampleKolmogorov-smirnovtest
data:
x
D=0.073,p-value=0.6611
alternativehypothesis:
two-sided结果与w检验相同
除此之外,R语言还有强大的画图功能,例如我们可以通过作直方图、茎叶图和总体分
析来描述数据的分布。
R中的高水平作图函数有:
plot()、pairs()、coplot()、qqnorm()、hist()等等。
当高水平作图函数并不能完全达到作图的指标时,需要低水平的作图函数予以补充。
低水平作图函数有:
points()、lines()、text()、polygon()、legend()、title()和axis()等。
需要注意的是低水平作图函数必须是在高水平作图函数所绘图形的基础之上增加新的图形。
hist()函数可以做出已知数据的直方图,stem()函数可以作茎叶图,boxplot()函数可用作箱线图,qqline()和qqmorm()可以做出正态QQ图和相应的直线。
R语言同时还能对两组数据进行相关性检验,cor.test()函数提供了pearson相关性
检验,spearman秩检验和Kendall秩检验。
其原假设为两组数据不相关,通过p值的大小来判断是否拒绝原假设。
我们还能用stars()函数作出星图,来表示多元数据,以上用法都非常简单易用,这里就不再赘述。
3、R语言在统计推断中的应用
首先,R语言可以用来进行参数估计;
统计学中我们应用矩估计和极大似然估计来进行点估计,矩估计是通过解正规方程组得到参数估计的值;极大似然估计通过解极大似然函数的极值点得到参数估计的值。
在R中我们可以使用newton迭代法求解正规方程组,获得矩估计;用optimize()函数求解极大似然函数,获得最大似然估计;由此可见,R语言能够很方便的解决参数点估计问题。
点估计给出未知参数的近似值以后,并不能知道这种估计的精确性如何,可信程度如何,为了解决这些问题,就需要用到区间估计,在学习用R语言解决区间估计问题的过程中,我最大的体会就是R软件中内置的一些函数极大地方便了我们处理具体问题。
比如t.test()函数。
对单个正态总体,向量x包含了来自该总体的一个样本,我们可以直接用t.test(x)指令得到均值u的点估计和区间估计;对于两个正态总体,向量y包含了来自第二个总体的一个样本,我们可以用t.test(x,y)来得到均值差u1-u2的点估计和区间估计,其中当两个总体方差相同时,只需要加上var.equal=T(缺省值为F,即默认两个总体的方差是不