当前位置:文档之家› 2020年整理R软件期末考试复习提纲.pdf

2020年整理R软件期末考试复习提纲.pdf

学海无涯
#期末考试专项复习 #一、矩阵与数据框 #1.生成特定的矩阵与数据框 #矩阵 #方法一 a=array(1:10,dim=c(2,5))
rownames(a)=1:2 colnames(a)=c("one","two","three","four","five") a
dimnames(a)=list(1:2,c("one","two","three","four","five"))
学海无涯
lines(density(x),col="blue") #添加正态分布分布函数 y=seq(-4,3,0.2) lines(y,dnorm(y,mean(x),sd(x)),col="red") #画随机数的经验分布函数 z=rnorm(50,0,1) plot(ecdf(z),do.p=F,verticals=T) d=seq(-3,2,0.2) lines(d,pnorm(d,mean(z),sd(z)),col="red") y=rpois(100,2) plot(ecdf(y),col="red",verticals=T,do.p=F) x=0:8 lines(x,ppois(x,mean(y)),col="blue") w=c(75,64,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0 ,56.9,50.0,72.0) hist(w,freq=F) lines(density(w),col="blue") x=44:76 lines(x,dnorm(x,mean(w),sd(w)),col="red") plot(ecdf(w),do.p=F,verticals=T) lines(x,pnorm(x,mean(w),sd(w)),col="red") #编写函数求随机数的各种描述统计量 data_outline=function(x){ n=length(x) m=mean(x) v=var(x) s=sd(x) me=median(x) cv=100*s/m css=sum((x-m)^2) uss=sum(x^2) R=max(x)-min(x)#样本极差 R1=quantile(x,3/4)-quantile(x,1/4)#四分位差 sm=s/sqrt(n)#样本标准误 g1=n/(n-1)/(n-2)*sum((x-m)^3)/s^3 g2=n*(n+1)/(n-1)/(n-2)/(n-3)*sum((x-m)^4)/s^4 -3*(n-1)^2/(n-2)/(n-3) data.frame(N=n,Mean=m,Var=v,std_dev=s, Median=me,std_mean=sm,CV=cv,CSS=css,USS=uss, R=R,R1=R1,Skewness=g1,Kurtosis=g2,s=1) } x=rnorm(100) data_outline(x)
Hale Waihona Puke 学海无涯crossprod(a,b)#t(a)%*%b tcrossprod(a,b)#a%*%t(b) #矩阵的逆 solve(a) b=1:3 solve(a,b)#ax=b 的解 #矩阵的特征值与特征向量 sm=eigen(a) sm e=diag(1:3) svde=svd(e) svde attach(svde) u%*%diag(d)%*%t(v) #与矩阵运算有关的函数 #取维数 a=diag(1:4) nrow(a) ncol(a) #矩阵的合并 x1=rbind(c(1,2),c(3,4)) x2=x1+10 x3=cbind(x1,x2) x3 x4=rbind(x1,x2) x4 cbind(1,x1) #矩阵的拉直 a=matrix(1:6,ncol=2, dimnames=list(c("one","two","three"), c("first","second")),byrow=T) as.vector(a) #apply 函数 apply(a,1,mean) apply(a,2,sum) tapply(1:5,factor(c("f","f","m","m","m")),mean) #第二题 #产生随机数 x=rnorm(100,0,1) x #画随机数的直方图 hist(x,freq=F) #核密度曲线 density(x)
学海无涯
#第三题 #r,p,q,d rnorm(100,0,1) pnorm(1:5,0,1) dnorm(-3:3,0,1) qnorm(seq(0,1,0.25),0,1) rbeta(100,2,2) rbinom(100,100,0.5) pbinom(1:100,100,0.5) dbinom(1:5,100,0.5) qbinom(seq(0,1,0.1),100,0.5) rchisq(100,1) qchisq(seq(0,1,0.2),10) pchisq(1:10,10) dchisq(1:10,10) rexp(100,0.5) rpois(100,2) ppois(1:1000,2) dpois(1:100,2) runif(100,0,1) qunif(c(0,0.2,0.8),0,1) punif(seq(0,1,0.2),0,1) dunif(seq(0,1,0.01),0,1) rt(100,2) qt(0.8,2) pt(-3:3,2) dt(-3:3,2) rf(100,1,2) qf(0.8,1,2)
学海无涯
df=as.data.frame(Lst) df x=array(1:6,dim=c(2,3)) as.data.frame(x) #数据框的引用 df[1:2,3:5] df[["Height"]] df$Weight names(df)#此属性一定非空 rownames(df)=c("one","two","three","four","five") df attach(df) r=Height/Weight r df$r=r names(df) detach() r=Height/Weight #2.矩阵的运算 a=diag(1:3) a[2][1]=1 a #1 转置运算 t(a) #2 行列式 det(a) #3 向量内积 x=1:5 y=2*1:5 x%*%y t(x)%*%y crossprod(x,y) #4 向量的外积 x%*%t(y) tcrossprod(x,y) outer(x,y) x%o%y #矩阵的乘法 a=array(1:9,dim=c(3,3)) b=array(9:1,dim=c(3,3)) x=1:3 a*b a%*%b x%*%a%*%x
#四置信区间 #1 #(1)sigma 已知 interval_estimate1=function(x,side=0,sigma=1,alpha=0.05){ xb=mean(x);n=length(x) if(side<0){ tmp=sigma/sqrt(n)*qnorm(1-alpha) a=-Inf;b=xb+tmp } else if(side>0){ tmp=sigma/sqrt(n)*qnorm(1-alpha) a=xb-tmp;b=Inf} else{
学海无涯
t.test(x,y) -0.03643479 - 0.98699097 #第五题假设检验 #(1)sigam 已知,双侧,检验 mu=mu0 mean.test1=function(x,mu=0,sigma=1){ xb=mean(x);n=length(x) z=(xb-mu)/sigma*sqrt(n) p=pnorm(z) if(p<=1/2) P=2*p else P=2*(1-p) data.frame(mean=xb,Z=z,p_value=P) } x=rnorm(100,0,2) mean.test1(x,mu=0,sigma=2) #(2)sigma 未知,双侧,检验 mu=mu0 mean.test2=function(x,mu=0){ xb=mean(x);n=length(x) z=(xb-mu)/sd(x)*sqrt(n) p=pt(z,n-1) if(p<=1/2) P=2*p else P=2*(1-p) data.frame(mean=xb,Z=z,p_value=P) } x=rnorm(100) mean.test2(x,mu=0) t.test(x,mu=0,alt="two.side") #两个总体 sigma1=sigma2 但未知,检验 mu1=mu2 mean.test3=function(x,y,mu=0){ xb=mean(x);yb=mean(y) n1=length(x);n2=length(y) sw=((n1-1)*var(x)+(n2-1)*var(y))/(n1+n2-2) t=(xb-yb-mu)/sqrt(sw*(1/n1+1/n2)) p=pt(t,n1+n2-1) if(p<=1/2) P=2*p else P=2*(1-p) data.frame(mean=xb-yb,T=t,p_value=P) } x=rnorm(100,0,1)
学海无涯
tmp=sigma/sqrt(n)*qnorm(1-alpha/2) a=xb-tmp;b=xb+tmp} data.frame(mean=xb,a=a,b=b) } x=rnorm(100,0,4) interval_estimate1(x,sigma=4,side=0) interval_estimate1(x,sigma=4,side=-1) interval_estimate1(x,sigma=4,side=1) #(2)sigma 未知 interval_estimate2=function(x,side=0,alpha=0.05){ xb=mean(x);n=length(x) if(side<0){ tmp=sd(x)/sqrt(n)*qt(1-alpha,n-1) a=-Inf;b=xb+tmp } else if(side>0){ tmp=sd(x)/sqrt(n)*qt(1-alpha,n-1) a=xb-tmp;b=Inf } else{ tmp=sd(x)/sqrt(n)*qt(1-alpha/2,n-1) a=xb-tmp;b=xb+tmp } data.frame(mean=xb,a=a,b=b) } x=rnorm(100,0,1) interval_estimate2(x,side=-1) interval_estimate2(x,side=0) interval_estimate2(x,side=1) t.test(x,side=-1) t.test(x,side=0) t.test(x,side=1) #两个总体 sigma1=sigma2 但未知 interval_estimate3=function(x,y,alpha=0.05){ xb=mean(x);yb=mean(y) n1=length(x);n2=length(y) sw=((n1-1)*var(x)+(n2-1)*var(y))/(n1+n1-2) tmp=sqrt((1/n1+1/n2)*sw)*qt(1-alpha/2,n1+n2-2) a=xb-yb-tmp;b=xb-yb+tmp data.frame(mean=xb-yb,a=a,b=b) } x=rnorm(100,0,1) y=rnorm(100,1,1) interval_estimate3(x,y)
相关主题