index=1;_____
}
k=k+1
}
obj=fun(x);
list(root=_____,it=_____,index=index,FunVal=_____)
}
funs=function(x){
f=c(x[1]^2+x[2]^2-5,(x[1]+1)*x[2]-(3*x[1]+1))
J=matrix(c(2*x[1],2*x[2],x[2]-3,x[1]+1),
nrow=2,byrow=T)
list(f=f,J=J)
}
2.编写一个R程序(函数).输入一个整数n,如果
,则中止运算,并输出一句话:
“要求输入一个正整数”;否则,如果n是偶数,则将n除以2,并赋给n;否则,将3n+1赋给n.不断循环,只到n=1,才停止计算,并输出一句话:
“运算成功”.这个例子是为了检验数论中的一个简单的定理.请补全下列程序:
fn=function(n){
if(n<=0)
list(fail="要求输入一个正整数")
else{
i=0;
______{
if(n______2==0)
n=______
______
n=(3*n+1)
if(n==1)break
i=i+1
}
______(result="运算成功",n=n,iter=i)
}
}
##运行得到如下结果:
fn
(1)
$result
[1]"运算成功"
$n
[1]1
$iter
[1]2
第三章数据描述性分析
3.data_outline.R计算样本的各种描述性统计量。
请补全该程序。
data_outline=function(x){
n=length(x)
m=______(x)
v=______(x)
s=sd(x)
me=______(x)
cv=100*s/m
css=sum((x-m)^2)
uss=sum(x^2)
R=___________
R1=quantile(x,3/4)-quantile(x,1/4)
sm=______
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,row.names=1)
}
第四章参数估计
4.请写出正态均值、方差区间估计及假设检验,非正态均值区间估计的函数名(共23个程序)
正态均值区间估计及假设检验
单总
两总
Sigma已知
Sigma未知
Sigma1,sigma2已知
Sigma1,sigma2未知=
Sigma1,sigma2
未知!
=
区间估计
interval_estimate1(双)
√
√
interval_estimate2(双)
√
√
√
√
√
interval_estimate5(单、双)
√
√
√
t.test(单、双)
X
√
t.test(单、双、成对)
X
√
√
假设检验
√
√
mean.test2
√
√
√
interval_estimate4(区)
√
√
√
√
√
t.test(区)
X
√
t.test(区、成对)
X
√
√
正态方差区间估计及假设检验
单总
两总
Mu
已知
Mu
未知
mu1,mu2
已知
mu1,mu2
未知
区间估计
√
√
interval_var2(双)
√
√
interval_var3(单、双)
√
√
interval_var4(单、双)
√
√
var.test(单、双)
X
√
假设检验
var.test1
√
√
var.test2
√
√
interval_var3(区)
√
√
interval_var4(区)
√
√
X
√
非正态均值区间估计:
interval_estimate3(双)
5.单个正态总体均值
的区间估计函数是interval_estimate1.R,请补全此程序。
interval_estimate1=function(x,sigma=-1,alpha=0.05){
n=length(x);xb=mean(x)
if(_____________){
tmp=sigma/sqrt(n)*_____________;df=n
}
else{
tmp=_____________*qt(1-alpha/2,n-1);df=_____________
}
_____________(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
}
6.单个正态总体方差
的区间估计函数是interval_var1.R,请补全此程序。
interval_var1=function(x,___________,alpha=0.05){
n=length(x)
if(___________){
S2=___________;df=n
}
else{
S2=var(x);df=___________
}
a=df*S2/qchisq(1-alpha/2,df)
b=df*S2/qchisq(alpha/2,df)
data.frame(var=___________,df=df,a=a,b=b)
}
第五章假设检验
7.P_value.R为求P值的R程序,请补全它。
P_value=function(cdf,x,___________,side=0){
n=length(paramet)
P=___________(___________,
cdf(x),
cdf(x,paramet),
cdf(x,paramet[1],paramet[2]),
cdf(x,paramet[1],paramet[2],paramet[3])
)
if(___________)P
elseif(side>0)___________
else
if(P<1/2)2*P
else2*(1-P)
}
8.mean.test1.R是求单个正态总体均值检验的R程序,请补全它。
mean.test1=function(x,mu=0,__________,side=0){
source("__________")
n=length(x);xb=mean(x)
if(__________){
z=(xb-mu)/(sigma/sqrt(n))
P=P_value(__________,z,side=side)
data.frame(mean=xb,df=n,Z=z,P_value=P)
}
else{
t=(xb-mu)/(sd(x)/sqrt(n))
P=P_value(__________,t,paramet=n-1,side=side)
data.frame(mean=xb,df=n-1,T=t,P_value=P)
}
}
9.var.test1.R是求单个正态总体方差检验的R程序,请补全它。
var.test1=function(x,sigma2=1,_________,side=0){
source("P_value.R")
n=length(x)
if(_________){
S2=_________;df=n
}
else{
S2=var(x);df=n-1
}
chi2=df*S2/sigma2;
P=P_value(_________,chi2,paramet=_________,side=side)
data.frame(var=S2,df=df,chisq2=chi2,P_value=P)
}
第六章回归分析
12下面是利用R软件中的lm()求解回归参数的计算过程。
请补全结果,在横线上填统计量,而不是具体的数值。
>x=c(0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.23)
>y=c(42.0,43.5,45.0,45.5,45.0,47.5,49.0,53.0,50.0,55.0,55.0,60.0)
>lm.sol=lm(y~1+x)
>summary(lm.sol)
Call:
lm(formula=y~1+x)
Residuals:
Min1QMedian3QMax
-2.0431-0.70560.16940.66332.2653
Coefficients:
EstimateStd.ErrortvaluePr(>|t|)
(Intercept)__________________5.88e-09***
x130.8359.68313.519.50e-08***
---
Signif.codes:
0‘***’0.001‘**’0.01‘*’0.05‘.’0.1‘’1
Residualstandarderror:
______on10degreesoffreedom
MultipleR-Squared:
______,AdjustedR-squared:
0.9429
F-statistic:
182.6on1and10DF,p-value:
9.505e-08
第七章方差分析
14请补全单因素方差分析表。
因素Ar-1
MSA=_________F=__________p
误差n-r
MSE=_________
总和______________
第八章应用多元分析(I)
1.请补全以下程序。
discriminiant.distance=function
(TrnX1,TrnX2,_________=NULL,var.equal=FALSE){
if(is.null(TstX)==TRUE)TstX=rbind(TrnX1,TrnX2)
if(is.vector(TstX)==TRUE)TstX=______________
elseif(is.matrix(TstX)!
=TRUE)
TstX=as.matrix(TstX)
if(is.matrix(TrnX1)!
=TRUE)TrnX1=as.matrix(TrnX1)
if(is.matrix(TrnX2)!
=TRUE)TrnX2=as.matrix(TrnX2)
nx=nrow(TstX)
blong=matrix(rep(0,nx),nrow=1,byrow=TRUE,
dimnames=list("blong",1:
nx))
mu1=colMeans(TrnX1);mu2=colMeans(TrnX2)
if(______________){
S=_________(rbind(TrnX1,TrnX2))
w=mahalanobis(TstX,mu2,S)-mahalanobis(TstX,mu1,S)
}
else{
S1=var(TrnX1);S2=var(TrnX2)
w=mahalanobis(TstX,mu2,S2)-mahalanobis(TstX,mu1,S1)
}
for(iin1:
nx){
if(w[i]>0)
blong[i]=1
else
blong[i]=2
}
_________
}
2.请补全以下程序。
distinguish.distance=function
(TrnX,________,TstX=NULL,var.equal=FALSE){
if(___________==FALSE){
mx=nrow(TrnX);mg=nrow(TrnG)
TrnX=rbind(TrnX,TrnG)
TrnG=factor(rep(1:
2,c(mx,mg)))
}
if(is.null(TstX)==TRUE)TstX=TrnX
if(is.vector(TstX)==TRUE)TstX=t(as.matrix(TstX))
elseif(is.matrix(TstX)!
=TRUE)
TstX=as.matrix(TstX)
if(is.matrix(TrnX)!
=TRUE)TrnX=as.matrix(TrnX)
nx=nrow(TstX)
blong=matrix(rep(0,nx),nrow=1,dimnames=list("blong",1:
nx))
g=length(levels(TrnG))
mu=matrix(0,nrow=g,ncol=ncol(TrnX))
for(iin1:
g)
mu[i,]=colMeans(TrnX[TrnG==i,])
D=matrix(0,nrow=g,ncol=nx)
if(____________________){
for(iin1:
g)
D[i,]=_________________________
}
else{
for(iin1:
g)
D[i,]=mahalanobis(TstX,mu[i,],var(TrnX[TrnG==i,]))
}
for(jin1:
nx){
______________
for(iin1:
g)
if(D[i,j]dmin=D[i,j];blong[j]=i
}
}
blong
}
3.请补全以下程序。
discriminiant.bayes=function
(TrnX1,TrnX2,__________,TstX=NULL,var.equal=FALSE){
if(is.null(TstX)==TRUE)TstX=rbind(TrnX1,TrnX2)
if(is.vector(TstX)==TRUE)TstX=t(as.matrix(TstX))
elseif(is.matrix(TstX)!
=TRUE)
TstX=as.matrix(TstX)
if(is.matrix(TrnX1)!
=TRUE)TrnX1=as.matrix(TrnX1)
if(is.matrix(TrnX2)!
=TRUE)TrnX2=as.matrix(TrnX2)
nx=nrow(TstX)
blong=matrix(rep(0,nx),nrow=1,byrow=TRUE,
dimnames=list("blong",1:
nx))
mu1=colMeans(TrnX1);mu2=colMeans(TrnX2)
if(__________){
S=var(rbind(TrnX1,TrnX2));beta=__________
w=_____________________________________
}
else{
S1=var(TrnX1);S2=var(TrnX2)
beta=2*log(rate)+log(det(S1)/det(S2))
w=mahalanobis(TstX,mu2,S2)-mahalanobis(TstX,mu1,S1)
}
for(iin1:
nx){
if(__________)
blong[i]=1
else
blong[i]=2
}
blong
}
第九章应用多元分析(II)
4.下面是主成分法的R程序,请补全它。
factor.analy1=function(S,m){
p=nrow(S);diag_S=diag(S);sum_rank=sum(diag_S)
rowname=paste("X",1:
p,sep="")
colname=paste("Factor",1:
m,sep="")
A=matrix(0,nrow=p,ncol=m,
dimnames=list(rowname,colname))
eig=______________
for(iin1:
m)
A[,i]=__________________*eig$vectors[,i]
h=diag(______________)
rowname=c("SSloadings","ProportionVar","CumulativeVar")
B=matrix(0,nrow=3,ncol=m,
dimnames=list(rowname,colname))
for(iin1:
m){
B[1,i]=______________
B[2,i]=B[1,i]/sum_rank
B[3,i]=sum(B[1,1:
i])/sum_rank
}
method=c("PrincipalComponentMethod")
list(method=method,loadings=A,
var=__________(common=h,spcific=diag_S-h),B=B)
}
5.下面是主因子法的R程序,请补全它。
factor.analy2=function(_____________){
p=nrow(R);diag_R=diag(R);sum_rank=sum(diag_R)
rowname=paste("X",1:
p,sep="")
colname=paste("Factor",1:
m,sep="")
A=matrix(0,nrow=p,ncol=m,
dimnames=list(rowname,colname))
kmax=20;k=1;h=_________
_________{
diag(R)=h;h1=h;eig=eigen(R)
for(iin1:
m)
A[,i]=sqrt(eig$values[i])*eig$vectors[,i]
h=diag(A%*%t(A))
if((___________________<1e-4)|k==kmax)break
k=k+1
}
rowname=c("SSloadings","ProportionVar","CumulativeVar")
B=matrix(0,nrow=3,ncol=m,
dimnames=list(rowname,colname))
for(iin1:
m){
B[1,i]=sum(A[,i]^2)
B[2,i]=B[1,i]/sum_rank
B[3,i]=sum(B[1,1:
i])/sum_rank
}
_________=c("PrincipalFactorMethod")
list(method=method,loadings=A,
var=cbind(common=h,spcific=diag_R-h),B=B,iterative=k)
}
6.下面是将因子分析的三种估计方法结合在一起的R程序,请补全它。
factor.analy=function(S,m=0,
d=______________,method="___________"){
if(___________){
p=nrow(S);eig=eigen(S)
sum_eig=sum(diag(S))
for(iin1:
p){
if(________________/sum_eig>0.70){
m=i;break
}
}
}
source("factor.analy1.R")
source("factor.analy2.R")
source("factor.analy3.R")
___________(method,
princomp=factor.analy1(S,m),
factor=factor.analy2(S,m,d),
likelihood=factor.analy3(S,m,d)
)
}
程序填空题题库答案
第二章R软件的使用
1.求解非线性方程组一般用Newton法。
Newton法的迭代格式为:
其中J(x)为函数f(x)的Jacobi矩阵。
请补