小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SAS學(xué)習(xí)筆記

 Becky_Spencer 2013-04-24
http://blog.csdn.net/chenyi8888/article/category/908775

分類(lèi): 數(shù)據(jù)分析與挖掘 227人閱讀 評(píng)論(0) 收藏 舉報(bào)

最近在做SAS轉(zhuǎn)換代碼,之前學(xué)過(guò),但時(shí)間長(zhǎng)了有所忘記,為了以后方便查找,所以再次進(jìn)行復(fù)習(xí)的時(shí)候,對(duì)SAS學(xué)習(xí)進(jìn)行了簡(jiǎn)單的記載。

 

SAS常用語(yǔ)法結(jié)構(gòu)

SAS的變量的基本類(lèi)型

第一:數(shù)值型

第二:字符型 變量名后必須使用$說(shuō)明符

其他數(shù)據(jù)類(lèi)型中,日期、時(shí)間等變量存為數(shù)值型,可以使任意的整數(shù),定點(diǎn)實(shí)數(shù)、浮點(diǎn)實(shí)數(shù)等,一般使用8個(gè)字節(jié)。字符變量默認(rèn)的長(zhǎng)度為8個(gè)字符,當(dāng)然也可以通過(guò)length語(yǔ)句指定其長(zhǎng)度。Length 字符型變量名 $ 長(zhǎng)度

 

對(duì)數(shù)據(jù)處理兩大步驟:數(shù)據(jù)步和過(guò)程步

數(shù)據(jù)步 以data語(yǔ)句開(kāi)始,以run語(yǔ)句結(jié)束;過(guò)程步以proc開(kāi)始,以run語(yǔ)句結(jié)束。

 

libname 庫(kù)標(biāo)記 '文件夾位置' 選項(xiàng);

假設(shè)C盤(pán)目錄下,有一個(gè)文件夾"user",該文件夾下有一個(gè)sas數(shù)據(jù)集為aa。
那么就是這樣執(zhí)行:
libname a 'c:\user';
proc print data=a.aa;
run;

數(shù)據(jù)庫(kù)分兩個(gè)永久庫(kù)和臨時(shí)庫(kù):臨時(shí)庫(kù)就只有一個(gè):名為WORK,永久庫(kù)有多個(gè)。
指定兩個(gè)庫(kù)標(biāo)記:
SASUSER:
WORK:

每個(gè)數(shù)據(jù)集都有一個(gè)兩級(jí)名,第一級(jí)為庫(kù)標(biāo)記,第二級(jí)是數(shù)據(jù)集名
格式如下: 庫(kù)標(biāo)記.數(shù)據(jù)集名


DATA語(yǔ)句用于創(chuàng)建和處理數(shù)據(jù)集。作用有二:
第一:標(biāo)志數(shù)據(jù)步調(diào)開(kāi)始
第二:命名將要?jiǎng)?chuàng)建的SAS數(shù)據(jù)集
格式: DATA 數(shù)據(jù)集名;的

INFILE 用于從外部文件讀入數(shù)據(jù),必須出現(xiàn)在INPUT語(yǔ)句之前,主要功能如下:
第一:確定一個(gè)包含原始數(shù)據(jù)的外部文本文件
格式:INFILE '外部文件的所在位置及名稱(chēng)' 選項(xiàng);


CARDS語(yǔ)句,用于直接輸入數(shù)據(jù),標(biāo)志著數(shù)據(jù)塊的開(kāi)始。
CARDS:
  數(shù)據(jù)塊
;

INPUT語(yǔ)句,用于向系統(tǒng)表明如何讀入每一條記錄,主要功能:
讀入由語(yǔ)句指定的數(shù)據(jù)列
為相應(yīng)的數(shù)據(jù)域定義變量名
確定變量讀入模式

格式:
INPUT 變量名 [變量類(lèi)型 起止列數(shù)] ....;


數(shù)據(jù)的兩種輸入方式:直接輸入和外部輸入

SAS程序塊
程序總是以PROC開(kāi)頭,后面緊跟程序步名
常用步名如下:
SORT 將指定數(shù)據(jù)集按指定變量排序
PRINT 將數(shù)據(jù)集中的數(shù)據(jù)列表輸出
MEANS 對(duì)指定的數(shù)值變量進(jìn)行簡(jiǎn)單的統(tǒng)計(jì)描述
FREQ 對(duì)指定的分類(lèi)變量進(jìn)行簡(jiǎn)單的統(tǒng)計(jì)描述
TTEST 對(duì)指定的變量做t檢驗(yàn)
ANOVA 對(duì)指定的變量做方差分析
NPAR1WAY 對(duì)指定的變量做非參數(shù)校驗(yàn)
REG 對(duì)指定的變量做回歸分析
CORR 對(duì)指定的變量做相關(guān)分析
CHART 繪出低分辨率的統(tǒng)計(jì)圖
SQL 調(diào)用SQL語(yǔ)言

格式:
PROC 過(guò)程名 [data=數(shù)據(jù)集名] [選項(xiàng)];
   該過(guò)程的專(zhuān)用語(yǔ)句描述;
   [VAR 變量序列;]
   [WHERE 條件表達(dá)式....;]
   [BY 變量序列;]
RUN;

 

SAS各種常用隨機(jī)函數(shù)

隨機(jī)數(shù)函數(shù)名

作用

UNIFORMseed

產(chǎn)生(0,1)區(qū)域均勻分布隨機(jī)數(shù),乘同余發(fā)生器

RANUNI(seed)

產(chǎn)生(0,1)區(qū)域均勻分布隨機(jī)數(shù),素?cái)?shù)模發(fā)生器

NORMAL(seed)

產(chǎn)生標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù),利用中心極限定理近似公式

RANNOR(seed)

產(chǎn)生標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù),利用變換抽樣法

RANEXP(seed)

產(chǎn)生λ=1的指數(shù)分布隨機(jī)數(shù)

RANGAM(seed,alpha)

產(chǎn)生伽馬分布隨機(jī)數(shù),alpha>0,seed為任意數(shù)值

RANTRI(seed,h)

產(chǎn)生三角分布隨機(jī)數(shù),0<h<1,seed為任意數(shù)值

RANCAU(seed)

產(chǎn)生標(biāo)準(zhǔn)柯西分布隨機(jī)數(shù)

RANBIN(seed,n,p)

產(chǎn)生二項(xiàng)分布隨機(jī)數(shù),n>0的整數(shù),0<p<1,seed為任意數(shù)值

RANPOI(seed,lambda)

產(chǎn)生泊松分布隨機(jī)數(shù),lambda>0,seed為任意數(shù)值

RANTBL(seed,p1,…,p2,…pn)

產(chǎn)生離散分布隨機(jī)數(shù),0pi1,seed為任意數(shù)值

 

分支語(yǔ)句

if 條件 then 語(yǔ)句;

if 條件 then do 語(yǔ)句1;....語(yǔ)句n; end;

if 條件 then 語(yǔ)句; else 語(yǔ)句;

多分支結(jié)構(gòu):

select(選擇表達(dá)式);

when(值列表) 語(yǔ)句;

when(值列表) 語(yǔ)句;

.....

otherwise 語(yǔ)句;

end;

select;

when(條件) 語(yǔ)句;

when(條件) 語(yǔ)句;

.....

otherwise 語(yǔ)句;

end;

 

SAS過(guò)程步常用命令

title 指定標(biāo)題

var 指定分析變量

class 指定分類(lèi)變量

model 指定模型形式

means 產(chǎn)生簡(jiǎn)單統(tǒng)計(jì)量

plot 繪制散點(diǎn)圖

print 列出數(shù)據(jù)集內(nèi)容

sort 按變量值進(jìn)行排序

by 指定變量分組

output 指定輸出結(jié)果存放的數(shù)據(jù)集

Freq 指定一個(gè)重復(fù)變量

where 選擇數(shù)據(jù)集的子集

label 臨時(shí)標(biāo)簽

 

 

我們這里給出了RETAIN語(yǔ)句幾種常用的使用格式:

l Retain;

l Retain  T1  T2  T3;

l Retain  T1  T2  T3  100;

l Retain  T1  T2  T3  (100 );

l Retain  T1  T2  T3  (100  99  98 );

第一種使用格式表示用INPUT語(yǔ)句或賦值語(yǔ)句創(chuàng)建的所有變量從DATA步的這次執(zhí)行到下一次重復(fù)時(shí)被保留。第二種使用格式規(guī)定了變量名字,變量列表或數(shù)組名,它們的值是用戶(hù)想保留的。第三種使用格式表示一個(gè)變量列表T1、T2、T3接受同一個(gè)初始值100。第四種使用格式是將初始值100用小括號(hào)括起來(lái),SAS系統(tǒng)將分配括號(hào)中的這個(gè)值給變量列表中的第一個(gè)變量,即T1=100,其它T2T3為缺失值。第五種使用格式給出了初始值列表,將依此分配初始值列表中的值給變量列表中各個(gè)變量,即T1=100T2=99,T3=98。

 IN=選項(xiàng)

格式:SAS-data-set(IN=variable)

一個(gè)臨時(shí)的數(shù)字類(lèi)型的變量,其值為0或1

IN選項(xiàng),當(dāng)讀入多個(gè)SAS數(shù)據(jù)集時(shí),用IN選項(xiàng)可以確定本觀測(cè)數(shù)據(jù)來(lái)自那個(gè)數(shù)據(jù)集。

variable=0表示觀測(cè)不是來(lái)自本數(shù)據(jù)集

variable=1表示觀測(cè)是來(lái)自本數(shù)據(jù)集

 

SAS聚類(lèi)分析
PROC CLUSTER <數(shù)據(jù)集名> METHOD=NAME <options>;//必須語(yǔ)句
VAR
COPY
RMSSTD
ID
BY
FREQ
以上是可選擇語(yǔ)句

if語(yǔ)句
data;
if x>y then
   put "x>y";
else
   if x<y then
      put "x<y";
   else
      put "x=y";
run;

for語(yǔ)句
do 計(jì)數(shù)變量=初始值 to 終止值 by 步長(zhǎng);
   ....;
end;


do while (循環(huán)條件表達(dá)式);
  .....;
end;

do until (循環(huán)條件表達(dá)式);
.....;
end;


= eq
< lt
> gt
< = le
> = ge
<> ne

set語(yǔ)句 表示從那個(gè)數(shù)據(jù)集里讀入數(shù)據(jù)
格式:set 數(shù)據(jù)集名;

刪除/增加變量或觀測(cè)值
data Car;
set SASUSER.Car;
drop ID;
run;

data Car;
set SASUSER.Car;
keep Q1 B1 B2;
run;

 

數(shù)據(jù)拆分

data SASUSER.Car_low SASUSER.Car_high;
set SASUSER.car;
select;
when (B1<=2) output SASUSER.Car_Low;
otherwise  output SASUSER.Car_high;
end;
run;

數(shù)據(jù)合并有兩種:縱向和橫向
data SASUSER.Car_total;
  set SASUSER.car_low SASUSER.car_high;
run;


proc sort=SASUSER.student_profile;
by ID;
run;
proc sort=SASUSER.student_score;
by ID;
run;
data SASUSER.student_total;
merge SASUSER.student_profile SASUSER.student_score;
by ID;
run;

proc print;run;

數(shù)據(jù)清洗
一般用proc sql的方式
數(shù)據(jù)修正
數(shù)據(jù)標(biāo)準(zhǔn)化
數(shù)據(jù)尺度變換 如:原始數(shù)據(jù)十分制變成百分制
數(shù)據(jù)更新 update

 

proc rank 其實(shí)最主要的是掌握那幾個(gè)選項(xiàng),該proc 的整體語(yǔ)法結(jié)構(gòu)如下:

           proc rank <選項(xiàng)>;
                var 變量;
                ranks 新變量名字;
                by 分組變量;
           run;

 這是一個(gè)整體的語(yǔ)法結(jié)構(gòu),舉例,比如說(shuō)我要對(duì)sashelp中的height排名次:

          proc rank data=sashelp.class out=result;
               var height;
          run;
很顯然就是這樣寫(xiě),用var來(lái)指定要排名次的變量,但是你運(yùn)行該程序后會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題,就是原來(lái)的height的值都被名次代替了。如果我想保留原來(lái)的height值,那就需要用ranks語(yǔ)句了:
         proc rank data=sashelp.class out=result;
              var height;
              ranks r_height;
         run;
這樣原來(lái)的height變量就不會(huì)動(dòng),生成名次變量r_height,這就是ranks的作用。

例子:

proc rank descending out=oE11;

var compsit;

ranks rankcompsit;

proc sort; by rankcompist;

proc print data=oE11;

run; 

 

均值
data;
x=mean(89,90,78,98,87,76,69,90,92,88);
put '均值=' x;
run;

均值統(tǒng)計(jì)里有兩個(gè)概念:截尾均值和縮尾均值
前者是去掉最大N個(gè)和最小N值后的平均值
后者是最小的N個(gè)值用第N+1小的那個(gè)數(shù)值替換,同時(shí)也把最大的N個(gè)值用第N+1大的那個(gè)數(shù)值替換,然后計(jì)算均值
用univariate過(guò)程計(jì)算上述兩種均值
data null;
input score@@;
cards;
89 90 78 98 87 76 69 90 92 88
;
proc univariate data=null trimmed=2 winsorized=2;
var score;
run;


中位數(shù)
如果數(shù)據(jù)個(gè)數(shù)是奇數(shù),中位數(shù)是處于正中心位置的數(shù)值;如果數(shù)據(jù)個(gè)數(shù)是偶數(shù),中位數(shù)則是處于正中心位置的兩項(xiàng)數(shù)據(jù)的平均數(shù)
data;
x=median(89,90,78,98,87,76,69,90,92,88);
put '中位數(shù)=' x;
run;


分位數(shù)
就是分等分。在實(shí)際應(yīng)用中四分位應(yīng)用最為廣泛。
在SAS中 Q1表示處于25%,Q3表示處于75%
data null;
input score@@;
cards;
89 90 78 98 87 76 69 90 92 88
;
proc means data=null q3 q1;
var score;
run;


眾數(shù)
指數(shù)據(jù)中出現(xiàn)次數(shù)最多的數(shù)值。
data null;
input score@@;
cards;
190 188 188 185 183 183 180 180
180 180 177 175 175 174 173
;
proc univariate data=null modes;
var score;
run;


離散程度
集中趨勢(shì)概括數(shù)據(jù)可以使人們?cè)诖篌w上對(duì)數(shù)據(jù)產(chǎn)生初步的印象,但是這些指標(biāo)對(duì)數(shù)據(jù)進(jìn)行高度抽象的同時(shí),也忽略了一些必要的數(shù)據(jù)信息,使得
人們?cè)谀承┣闆r下只能看到數(shù)據(jù)呈現(xiàn)出來(lái)的假象,而不能讀懂其真正的內(nèi)在涵義。
指標(biāo)有級(jí)差、平均差、四分位差、異眾比率、方差、標(biāo)準(zhǔn)差、標(biāo)準(zhǔn)誤差及離散系數(shù)

級(jí)差
是數(shù)據(jù)最大值減去最小值所得的差
data;
x=range(89,90,78,98,87,76,69,90,92,88);
put '級(jí)差=' x;
run;

四分位差
具體指第3個(gè)四分位數(shù)減去地1個(gè)四分位數(shù)得到的差
其值越小,說(shuō)明中間的數(shù)據(jù)越集中
data null;
input score@@;
cards;
190 188 188 185 183 183 180 180
180 180 178 177 175 175 174 173
;
proc means data=null qrange;
var score;
run;

 

方差

用全體數(shù)據(jù)進(jìn)行計(jì)算的,因此它反映了所有數(shù)據(jù)相對(duì)于數(shù)據(jù)中心發(fā)散的平均程度。方差的算術(shù)平方根就是標(biāo)準(zhǔn)差。
data;

x=var(89,90,78,98,87,76,69,90,92,88);

y=std(89,90,78,98,87,76,69,90,92,88);

put '方差=' x '標(biāo)準(zhǔn)差=' y;

run;

 

標(biāo)準(zhǔn)誤差
它的樣本均值的標(biāo)準(zhǔn)差。在進(jìn)行數(shù)據(jù)抽樣中,由于隨機(jī)性的存在,采用同一種抽樣方法在不同的時(shí)間、地點(diǎn)、環(huán)境等條件下進(jìn)行多次抽樣,可能得到多個(gè)不同的樣本數(shù)據(jù)。

標(biāo)準(zhǔn)誤差不是觀測(cè)值的實(shí)際誤差,也不是誤差范圍,它只是對(duì)一組觀測(cè)數(shù)據(jù)可靠性的估計(jì)。標(biāo)準(zhǔn)誤差越小,則觀測(cè)到可靠性大,反之則不大可靠。多數(shù)應(yīng)用都用標(biāo)準(zhǔn)誤差來(lái)評(píng)價(jià)數(shù)據(jù)的測(cè)量精度。

data;

x=stderr(89,90,78,98,87,76,69,90,92,88);

put '標(biāo)準(zhǔn)誤差=' x;

run;

 

變異系數(shù)

變異系數(shù)是衡量相對(duì)離散程度的一個(gè)重要指標(biāo)。具體是指一組數(shù)據(jù)的標(biāo)準(zhǔn)差與其相應(yīng)的均值之比,變異系數(shù)越小,說(shuō)明數(shù)據(jù)的離散程度越小。

舉例說(shuō)明,身高和體重差異如何進(jìn)行對(duì)比?直接采用標(biāo)準(zhǔn)差是無(wú)法進(jìn)行對(duì)比的,因?yàn)闃?biāo)準(zhǔn)差是帶有單位的,身高的單位是厘米,體重的單位是千克,不同的單位的統(tǒng)計(jì)量對(duì)比起來(lái)是沒(méi)有任何意義的。為此,采用變異系數(shù)來(lái)消除量綱即計(jì)量單位的影響,進(jìn)行對(duì)比。

 

 data;

height=cv(157,170,161,184,184,168,166,158,174,166,173,189,188,163,161,189,183,186,188,155);

weight=cv(61,71,74,59,71,55,73,66,50,57,48,68,73,52,60,56,53,67,73,64);

put '身高的變異系數(shù)=' height '體重的變異系數(shù)=' weight;

if height>weight then

      put '身高比體重的差異大';

else

      if height<weight then

           put '身高比體重的差異小';

      else

           put '身高比體重的差異相當(dāng)';

run;

 

分布形狀

在對(duì)數(shù)據(jù)進(jìn)行概括性的分析時(shí),考察集中趨勢(shì)和離散程度是兩個(gè)重要方面,但并非僅此而已。就像對(duì)一個(gè)人進(jìn)行評(píng)價(jià)一樣,不僅要考察人的高矮情況,也考考察胖瘦情況,更要看看一個(gè)人是否站有站相,坐有坐相。對(duì)于數(shù)據(jù)的分布狀況,也要進(jìn)行概括性的分析,才能掌握數(shù)據(jù)的全貌。

數(shù)據(jù)分布的測(cè)度主要考察數(shù)據(jù)分布的偏斜程度、扁平程度,以及數(shù)據(jù)分布是否對(duì)稱(chēng),其指標(biāo)主要有偏度和峰度兩類(lèi)。

 

偏度

是對(duì)數(shù)據(jù)分布對(duì)稱(chēng)性的測(cè)度。通常采用三階中心矩的計(jì)算方法,其主要考察離差三次方之和與標(biāo)準(zhǔn)差的三次方的比例。

如果數(shù)據(jù)是對(duì)稱(chēng)的,則偏度等于0;如果偏度明顯不等于0,則表明數(shù)據(jù)分布是非對(duì)稱(chēng)的,具體地說(shuō),偏度大于0時(shí),均值右邊的數(shù)據(jù)更為分散,表明數(shù)據(jù)右偏;偏度小于0時(shí),均值左邊的數(shù)據(jù)更為分散,表明數(shù)據(jù)左偏。

data;
x=skewness(190,188,188,185,183,183,180,180,180,180,178,177,175,175,174,173);
put '偏度=' x;
run;

 

峰度

用來(lái)反映數(shù)據(jù)分布曲線頂端陡峭或偏平程度的指標(biāo)。這里所說(shuō)的陡峭或偏平是針對(duì)標(biāo)準(zhǔn)正態(tài)分布而言的。

data;
x=kurtosis(190,188,188,185,183,183,180,180,180,180,178,177,175,175,174,173);
put '峰度=' x;
run;

 

sas利用FREQ、MEANS、UNIVARIATE過(guò)程進(jìn)行描述統(tǒng)計(jì)分析。

proc freq <選項(xiàng)>;

by 變量/變量列表;

exact 統(tǒng)計(jì)選項(xiàng)</計(jì)算選項(xiàng)>;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多