楼主: ReneeBK
1067 0

[问答] Proportionate sampling without replacement using SPSS Syntax [推广有奖]

  • 1关注
  • 62粉丝

VIP

已卖:4897份资源

学术权威

14%

还不是VIP/贵宾

-

TA的文库  其他...

R资源总汇

Panel Data Analysis

Experimental Design

威望
1
论坛币
49635 个
通用积分
55.7537
学术水平
370 点
热心指数
273 点
信用等级
335 点
经验
57805 点
帖子
4005
精华
21
在线时间
582 小时
注册时间
2005-5-8
最后登录
2023-11-26

楼主
ReneeBK 发表于 2014-4-30 13:10:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
*Generate a file of 1000 cases for illustration purposes.
*************************************************************.
NEW file.
input program.
loop block=1 to 1000.
leave block.
compute pop=RND(uniform(10000)).
FORMATS block pop (F8.0).
end case.
end loop.
end file.
end input program.
execute.

SET MPRINT=ON.


*/////////////////////////// BEG OF MACRO//////////////////////////////.

DEFINE !SAMPLE (draw=!TOKENS(1) /keep=!TOKENS(1))

COMPUTE case# =$casenum.
CREATE t_weight=CSUM(pop).
SORT CASES BY case#(D).
CREATE c_weight= CSUM(pop).
SORT CASES BY case#.
IF $casenum=1 #tot_pop=c_weight.

VECTOR rva rvb (!draw F8.0).
!DO !cnt = 1 !TO !draw
        DO IF $casenum=1.
                COMPUTE !CONCAT(rva,!cnt)=UNIFORM(#tot_pop).                               
                LEAVE !CONCAT(rva,!cnt).
                COMPUTE !CONCAT(rvb,!cnt)=!CONCAT(rva,!cnt)<t_weight.
        ELSE.
                COMPUTE !CONCAT(rvb,!cnt)=(!CONCAT(rva,!cnt)<t_weight) AND (!CONCAT(rva,!cnt)>lag(t_weight)).
        END IF.
!DOEND

COMPUTE flag=MAX(rvb1 TO !CONCAT('rvb',!draw)).
SAVE OUTFILE='draw file1.sav' /COMPRESSED.
SELECT IF (flag=1).
EXECUTE.
SAVE OUTFILE='draw file2.sav' /COMPRESSED.

VECTOR rvb=rvb1 TO !CONCAT(rvb,!draw).

* the same block may have been selected more than once but only the first occurence is kept.
COMPUTE done=0.
LOOP cnt=1 TO !draw.
        DO IF rvb(cnt)=1 AND done=0.
        XSAVE OUTFILE='draw file3.sav' /KEEP block cnt.
        COMPUTE done=1.
        END IF.
END LOOP.
EXECUTE.

GET
  FILE='draw file3.sav'.
SORT CASES BY cnt.
SELECT IF ($casenum<=!keep).
EXECUTE.

!ENDDEFINE.
*/////////////////////////// END OF MACRO//////////////////////////////.


* In this example, we want 120 blocks,
we select 150 (with replacement)
we delete blocks which were selected more than once
we keep the first 120 remaining blocks.

!SAMPLE draw=150 keep=120.


二维码

扫码加我 拉你入群

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

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

关键词:replacement Proportion placement Sampling without purposes without file

已有 1 人评分经验 热心指数 收起 理由
xddlovejiao1314 + 10 + 1 精彩帖子

总评分: 经验 + 10  热心指数 + 1   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 06:38