SAS が提供するロジスティック回帰モデリング コースで、次のコードを見つけました。
data dataset(drop=i);
set data;
array mi{*} mi_Ag mi_Inc
mi_WR;
array x{*} Ag Inc WR;
do i=1 to dim(mi);
mi{i}=(x{i}=.);
end;
run;
次の 2 つのことを理解する必要があります。
1.) このデータ ステップが実行されると、「i」というタイトルの列が作成されます。それは何を意味し、なぜそこにあるのか。ドロップ「i」は基本的にドロップしますが、ドロップオプションを使用しない場合、列はデータセットに残ります
2.) この do ステップは、すべての欠損値を 1 に置き換え、残りを 0 に置き換えます。何をする必要があるかについて do ステップで何も明確に指定されていない場合、どのように起こるのでしょうか。私の目には、「do i=1 to dim(mi); mi{i}=(x{i}=.);」x(i) でドットが見つかった場合は、mi(i) にドットを配置する必要があります。
パート2:
カテゴリ変数を折りたたむ際に、次のコードが使用されています。
proc freq data=example1 noprint;
tables CLUSTER_CODE*TARGET_B / chisq;
output out=out_chi(keep=_pchi_) chisq;
run;
data ex_cutoff;
if _n_=1 then set out_chi;
set ex_cluster;
chisquare=_pchi_*rsquared;
degfree=numberofclusters-1;
logpvalue=logsdf('CHISQ',chisquare,degfree);
run;
n =1は何をしているの?また、なぜ chisquare=_pchi*rsquared を作成しているのか。pchiはすでにカイ二乗なので、R 二乗を掛ける意味は何ですか?
ありがとう
PSコードは、SAS学習コースの1つからのものです。ディスカッション/学習目的でここで共有できることを願っています。