8541 19

[问答] 求高人指导SAS总主成分分析综合得分程序 [推广有奖]

  • 0关注
  • 0粉丝

大专生

21%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
1 点
经验
418 点
帖子
37
精华
0
在线时间
25 小时
注册时间
2011-9-7
最后登录
2013-5-2

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

以下是我写的SAS综合得分排名程序,但是运行不出来综合得分排名结果,求好心人指导。

data gs2;

input name & x1-x11;

cards;

兰州市 1.43 1.02 1.36 1.04 2.92 5.90 5.50 1.11 1.01 4.90 0.70

嘉峪关 3.84 1.73 0.47 2.40 0.22 0.55 0.26 1.32 0.92 0.29 0.02

金昌市 1.90 1.65 0.46 2.09 0.42 0.47 0.37 1.40 0.96 0.38 0.11

白银市 0.83 1.21 0.88 1.33 0.74 0.76 0.88 1.11 0.92 0.73 1.06

天水市 0.42 0.84 1.16 0.63 0.98 1.01 1.29 0.91 1.00 1.21 1.81

武威市 0.57 0.89 0.93 0.67 0.96 0.34 0.76 0.93 1.09 0.88 0.88

张掖市 0.81 0.79 0.97 0.68 0.49 0.42 0.69 0.87 0.85 0.67 0.48

平凉市 0.51 1.02 0.87 0.98 0.97 0.61 0.89 0.93 1.07 0.80 0.93

酒泉市 1.66 1.10 0.99 1.00 1.81 1.01 0.90 1.20 0.88 1.05 0.58

庆阳市 0.78 1.34 0.67 1.57 1.73 1.78 0.96 1.00 0.93 0.92 1.39

定西市 0.26 0.58 1.23 0.26 0.91 0.30 0.54 0.86 0.93 0.70 1.68

陇南市 0.29 0.65 1.23 0.48 0.97 0.46 0.42 0.85 1.20 0.73 1.81

临夏州 0.25 0.65 1.35 0.37 0.47 0.23 0.35 0.68 1.24 0.50 1.89

甘南州 0.45 0.53 1.44 0.38 0.41 0.16 0.20 0.82 0.99 0.24 0.68

;

proc princomp data=gs2 prefix=z n=11;

var x1-x11;

run;

proc print data=gsz;

var z1-z11;

run;

data gszjia;

set z;

y=0.4765z1+0.0.3528z2+0.0741z3+0.0478z4+0.0190z5+0.0149z6+0.0098z7+0.0044z8+0.0007z9+0.0001z10;

run;

proc sort data=gszjia;

by y;

run;

proc print data=gszjia;

var z1-z11;

id name;

run;

求改进,只有4论坛币了,谁要能帮我解决问题就拿去吧。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:主成分分析 综合得分 主成分 princomp print 程序 指导 主成分分析法 spss主成分分析 逐步回归分析 多元回归分析 因子分析法 应用时间序列分析

回帖推荐

zhengbo8 发表于17楼  查看完整内容

沙发
zhengbo8 发表于 2013-4-6 12:25:06 |只看作者 |坛友微信交流群
以后要多注意细节。

  1. data gs2;
  2.     input name $ x1-x11;
  3. cards;

  4. 兰州市 1.43 1.02 1.36 1.04 2.92 5.90 5.50 1.11 1.01 4.90 0.70
  5. 嘉峪关 3.84 1.73 0.47 2.40 0.22 0.55 0.26 1.32 0.92 0.29 0.02
  6. 金昌市 1.90 1.65 0.46 2.09 0.42 0.47 0.37 1.40 0.96 0.38 0.11
  7. 白银市 0.83 1.21 0.88 1.33 0.74 0.76 0.88 1.11 0.92 0.73 1.06
  8. 天水市 0.42 0.84 1.16 0.63 0.98 1.01 1.29 0.91 1.00 1.21 1.81
  9. 武威市 0.57 0.89 0.93 0.67 0.96 0.34 0.76 0.93 1.09 0.88 0.88
  10. 张掖市 0.81 0.79 0.97 0.68 0.49 0.42 0.69 0.87 0.85 0.67 0.48
  11. 平凉市 0.51 1.02 0.87 0.98 0.97 0.61 0.89 0.93 1.07 0.80 0.93
  12. 酒泉市 1.66 1.10 0.99 1.00 1.81 1.01 0.90 1.20 0.88 1.05 0.58
  13. 庆阳市 0.78 1.34 0.67 1.57 1.73 1.78 0.96 1.00 0.93 0.92 1.39
  14. 定西市 0.26 0.58 1.23 0.26 0.91 0.30 0.54 0.86 0.93 0.70 1.68
  15. 陇南市 0.29 0.65 1.23 0.48 0.97 0.46 0.42 0.85 1.20 0.73 1.81
  16. 临夏州 0.25 0.65 1.35 0.37 0.47 0.23 0.35 0.68 1.24 0.50 1.89
  17. 甘南州 0.45 0.53 1.44 0.38 0.41 0.16 0.20 0.82 0.99 0.24 0.68
  18. ;

  19. proc princomp data=gs2 prefix=z n=11 out=result;
  20.     var x1-x11;
  21. run;

  22. data z;
  23.     set result(drop=name x1-x11);
  24. run;

  25. proc print data=z;
  26.     var z1-z11;
  27. run;

  28. data gszjia;
  29.     set gs2(keep=name);
  30.     set z;
  31.     y=0.4765*z1+0.3528*z2+0.0741*z3+0.0478*z4+0.0190*z5+0.0149*z6+0.0098*z7+0.0044*z8+0.0007*z9+0.0001*z10;
  32. run;

  33. proc sort data=gszjia;
  34.     by y;
  35. run;

  36. proc print data=gszjia;
  37.     var name y z1-z11;
  38. run;

  39. proc datasets lib=work;
  40.     delete result z;
  41. quit;
复制代码

2013-04-06_113129.gif



已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
webgu + 10 + 10 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
明月独醉清风 在职认证  发表于 2013-4-6 15:45:25 |只看作者 |坛友微信交流群
非常感谢!

使用道具

板凳
明月独醉清风 在职认证  发表于 2013-4-6 16:16:48 |只看作者 |坛友微信交流群
这样做的综合得分有负数。如何才能不出现负数。

使用道具

报纸
明月独醉清风 在职认证  发表于 2013-4-6 21:38:03 |只看作者 |坛友微信交流群
是不是那里不合适啊,我想要综合得分的排名,正确的结果应该是兰州排第一,可是你的结果却颠倒了,求解释!
大其心,容天下之物;虚其心,受天下之善;平其心,论天下之事;潜其心,观天下之理;定其心,应天下之变。

使用道具

地板
zhengbo8 发表于 2013-4-6 21:55:02 |只看作者 |坛友微信交流群
明月独醉清风 发表于 2013-4-6 21:38
是不是那里不合适啊,我想要综合得分的排名,正确的结果应该是兰州排第一,可是你的结果却颠倒了,求解释!
是兰州第一啊,它分数最大。
在数据集Gszjia中,兰州y=2.4765361292

上面的程序中,应该去掉
  1. proc sort data=gszjia;
  2.     by y;
  3. run;
复制代码
这个BY语句排序是按字符升序排序,不是数值。
你可能是这里误会了,看到兰州在最后面。

使用道具

7
zhengbo8 发表于 2013-4-6 22:04:16 |只看作者 |坛友微信交流群
明月独醉清风 发表于 2013-4-6 21:38
是不是那里不合适啊,我想要综合得分的排名,正确的结果应该是兰州排第一,可是你的结果却颠倒了,求解释!
2013-04-06_215625.gif
2013-04-06_215612.gif

使用道具

8
Kalet 在职认证  发表于 2013-4-7 00:13:03 |只看作者 |坛友微信交流群
y=0.4765z1+0.0.3528z2+0.0741z3+0.0478z4+0.0190z5+0.0149z6+0.0098z7+0.0044z8+0.0007z9+0.0001z10;

这步是干吗用的?

使用道具

9
zhengbo8 发表于 2013-4-7 00:16:37 |只看作者 |坛友微信交流群
Kalet 发表于 2013-4-7 00:13
y=0.4765z1+0.0.3528z2+0.0741z3+0.0478z4+0.0190z5+0.0149z6+0.0098z7+0.0044z8+0.0007z9+0.0001z10;

这 ...
应该是由特征根计算出来的吧,没细研究楼主给的数。

使用道具

10
Kalet 在职认证  发表于 2013-4-7 00:24:12 |只看作者 |坛友微信交流群
应该不是特征根。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 03:07