正在摸索这个😵 简单地记记作业的操作流程
Q1:已知一组观测值
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi),现在希望:对x升序排序,得到x的等级向量orderx,对y亦然。
%具体有多少观测点,是在一开始建立workfile时就已经定下来的,这里以5个为例
data x %创建数组x,输入数据
stort x %对数组x进行升序排序
data orderx %创建x的等级向量,并输入1,2,3,4,5
data y %创建数组y,输入数据
stort y %对数组y进行升序排序
data ordery %创建y的等级向量,并输入1,2,3,4,5
%再把orderx 和 ordery 以group的方式打开,会神奇地发现,是与原观测点对应的等级数对
Q2:计算spearman等级相关系数
已知一组观测点
(
x
i
,
y
i
)
,
i
=
1
,
2
,
.
.
.
,
n
(x_{i},y_{i}) ,i=1,2,...,n
(xi,yi),i=1,2,...,n,做线性回归,计算得残差序列resid ,也就是
e
i
,
i
=
1
,
2
,
.
.
.
,
n
e_{i},i=1,2,...,n
ei,i=1,2,...,n.
现在需要对残差序列resid的绝对值取等级,对x的值取等级,接着求这两个等级序列的差,并对所得差序列的各个分量平方加和。
方法一:自己动手
data x %输入观测值(x,y),共29个
data y
ls y c x %初步建立线性回归,得到残差序列resid
sort x %对x的值进行排序
data orderx %创建x的等级序列orderx,在该序列中输入1、2、...、29。
sort abs(resid) %对残差序列resid,按照其绝对值进行排序,升序。
data orderesid %创建resid的等级序列orderesid,在该新建序列中输入1、2、...、29。
data d3 %创建新的数组d3
d3 = (orderesid-orderx)^2 %计算差的平方
scalar a = @sum(d3) %求和
计算得a,代入spearman等级相关系数的公式 r = 1 − 6 a n 3 − n r = 1-\frac{6a}{n^{3}-n} r=1−n3−n6a,即可。
方法二:
首先,创建新数组abse,用来存放残差序列resid的绝对值,点击workfile中的【genr】,输入abse=@abs(resid)
;
接着,以·group·的方式打开·x·和·abse·,点击【view】-[covariance analysis],打开对话框,选择method为【spearman rank…】,
即可,返回结果如下:
即为0.427586.