6.2 KiB
6.2 KiB
数学函数 / 主成分分析 / 中间函数
rotatedComponentMatrix(cm)
声明:function
对载荷矩阵执行方差最大正交旋转
| 参数 | 类型 | 说明 |
|---|---|---|
cm |
array | 载荷矩阵 |
返回:array
示例
范例01:旋转单位载荷矩阵
cm := array((1.0, 0.0), (0.0, 1.0));
return rotatedComponentMatrix(cm);
// 输出:array((1.0,0.0),(0.0,1.0))
componentMatrix(eigen_value, eigen_vector, max_eigen_value)
声明:function
载荷矩阵
| 参数 | 类型 | 说明 |
|---|---|---|
eigen_value |
array | 一维数字数组类型,特征根 |
eigen_vector |
array | 二维数字数组类型,特征向量 |
max_eigen_value |
array | 一维数字数组类型,主因子对应的特征根 |
返回:array
示例
// 设置样本矩阵
zt := array((0.7592, 1.7593, 21.9279, 48.5626, 55.1679),
(0.0490, 0.4457, 2.2255, 82.2658, 192.4348),
(-2.2313, -1.3096, -59.8883, 3.9922, -80.2419),
(0.1364, 0.539, 4.3910, 55.1438, 46.0612),
(0.7233, 1.9467, 15.6127, 111.3018, 58.3969));
z_t_s := Standarize_II(z_t); // 标准化
mt_Transposition(z_t_s, z); // 转置
r := correlationMatrix(z); // 相关系数矩阵
Eigen_Jacobi(r, eigen_value, eigen_vector); // 特征值&特征向量
return componentMatrix(eigen_value, eigen_vector, max_eigen_value);
componentScoreMatrix(cm, r)
声明:function
因子得分系数矩阵
| 参数 | 类型 | 说明 |
|---|---|---|
cm |
array | 二维数字数组类型,载荷矩阵 |
r |
array | 二维数字数组类型,相关系数矩阵 |
返回:array
示例
// 设置样本矩阵
zt := array((0.7592, 1.7593, 21.9279, 48.5626, 55.1679),
(0.0490, 0.4457, 2.2255, 82.2658, 192.4348),
(-2.2313, -1.3096, -59.8883, 3.9922, -80.2419),
(0.1364, 0.539, 4.3910, 55.1438, 46.0612),
(0.7233, 1.9467, 15.6127, 111.3018, 58.3969));
z_t_s := Standarize_II(z_t); // 标准化
mt_Transposition(z_t_s, z); // 转置
r := correlationMatrix(z); // 相关系数矩阵
Eigen_Jacobi(r, eigen_value, eigen_vector); // 特征值&特征向量
cm := componentMatrix(eigen_value, eigen_vector, max_eigen_value); // 载荷矩阵
return componentScoreMatrix(cm, r);
eastrq(b, c, q)
声明:function
返回 Eastrq 对应的数据
| 参数 | 类型 | 说明 |
|---|---|---|
b |
array | 二维数字数组类型 |
c |
array | 二维数字数组类型 |
q |
array | 二维数字数组类型 |
返回:int
示例
b := array((1.0, 2.0, 3.0), (2.0, 3.0, 4.0), (3.0, 4.0, 5.0));
c := array((1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0));
q := array((1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0));
return eastrq(b, c, q);
// 输出:0
factorScoreMatrix(cs, z)
声明:function
主因子得分
| 参数 | 类型 | 说明 |
|---|---|---|
cs |
array | 二维数字数组类型,因子得分矩阵 |
z |
array | 二维数字数组类型,原始数据矩阵 |
返回:array
示例
// 设置样本矩阵
zt := array((0.7592, 1.7593, 21.9279, 48.5626, 55.1679),
(0.0490, 0.4457, 2.2255, 82.2658, 192.4348),
(-2.2313, -1.3096, -59.8883, 3.9922, -80.2419),
(0.1364, 0.539, 4.3910, 55.1438, 46.0612),
(0.7233, 1.9467, 15.6127, 111.3018, 58.3969));
z_t_s := Standarize_II(z_t); // 标准化
mt_Transposition(z_t_s, z); // 转置
r := correlationMatrix(z); // 相关系数矩阵
Eigen_Jacobi(r, eigen_value, eigen_vector); // 特征值&特征向量
cm := componentMatrix(eigen_value, eigen_vector, max_eigen_value); // 载荷矩阵
cs := componentScoreMatrix(cm, r); // 因子得分矩阵
return factorScoreMatrix(cs, zt);
fScoreResult(factor_arr, max_eigen_value)
声明:function
获取主因子得分
| 参数 | 类型 | 说明 |
|---|---|---|
factor_arr |
array | 二维数字数组类型,因子得分矩阵 |
max_eigen_value |
array | 二维数字数组类型,主因子对应的特征根 |
返回:array
示例
// 设置样本矩阵
zt := array((0.7592, 1.7593, 21.9279, 48.5626, 55.1679),
(0.0490, 0.4457, 2.2255, 82.2658, 192.4348),
(-2.2313, -1.3096, -59.8883, 3.9922, -80.2419),
(0.1364, 0.539, 4.3910, 55.1438, 46.0612),
(0.7233, 1.9467, 15.6127, 111.3018, 58.3969));
z_t_s := Standarize_II(z_t); // 标准化
mt_Transposition(z_t_s, z); // 转置
r := correlationMatrix(z); // 相关系数矩阵
Eigen_Jacobi(r, eigen_value, eigen_vector); // 特征值&特征向量
cm := componentMatrix(eigen_value, eigen_vector, max_eigen_value); // 载荷矩阵
cs := componentScoreMatrix(cm, r); // 因子得分系数矩阵
f_arr := factorScoreMatrix(cs, z_t_s); // 样本公共因子得分
return fScoreResult(f_arr, max_eigen_value);
getEigenValue(a, eigen_value)
声明:function
通过赋值得到EigenValue
| 参数 | 类型 | 说明 |
|---|---|---|
a |
array | 二维数字数组类型 |
eigen_value |
array | 一维数字数组类型 |
返回:any
示例
matrix := array((2.0, 1.0), (1.0, 3.0));
eigen_value := array();
getEigenValue(matrix, eigen_value);
return eigen_value;
// 输出:返回包含 2 个元素的特征值数组
mbbub(p, z)
声明:function
排序,对数组P按照从小到大的顺序排序,把数组排序的顺序对应的下标值返回到数组Z中
| 参数 | 类型 | 说明 |
|---|---|---|
p |
array | 一维数字数组类型 |
z |
array | 一维数字数组类型 |
返回:array
示例
p := array(2.72, 1.24, 1.31, 0.02, 0.88, 2.18);
return mbbub(p, z);