1

これがその日の私の問題です:

現在、私は独学で計量経済学を学び、ロジスティック回帰を利用しています。私はいくつかの SAS コードを持っており、それを R に変換しようとする前に、まずそれをよく理解していることを確認したいと思います (SAS を持っていないし、SAS も知りません)。このコードでは、1 人が「失業者」になる確率をモデル化します。これは、15 歳から 64 歳までの「年齢」と、「タクト」=「無職」を意味します。性別、年齢、idnat (国籍番号) という変数を使用して、この結果を予測したいと思います。(他のものは等しい)。

SAS コード :

/* Unemployment rate : number of unemployment amongst the workforce */

proc logistic data=census;
class sex(ref="Man") age idnat(ref="spanish") / param=glm;
class tact (ref=first);
model tact = sex age idnat / link=logit;
where 15<=age<=64 and tact in ("Employee" "Jobless");
weight weight;
format age ageC. tact $activity. idnat $nat_dom. inat $nationalty. sex $M_W.;

lsmeans sex / obsmargins ilink;
lsmeans idnat / obsmargins ilink;
lsmeans age / obsmargins ilink;
run;

これは、データベースがどのように見えるかのサンプルです:

      idnat     sex     age  tact      
 [1,] "english" "Woman" "42" "Employee"
 [2,] "french"  "Woman" "31" "Jobless" 
 [3,] "spanish" "Woman" "19" "Employee"
 [4,] "english" "Man"   "45" "Jobless" 
 [5,] "english" "Man"   "34" "Employee"
 [6,] "spanish" "Woman" "25" "Employee"
 [7,] "spanish" "Man"   "39" "Jobless" 
 [8,] "spanish" "Woman" "44" "Jobless" 
 [9,] "spanish" "Man"   "29" "Employee"
[10,] "spanish" "Man"   "62" "Retired" 
[11,] "spanish" "Man"   "64" "Retired" 
[12,] "english" "Woman" "53" "Jobless" 
[13,] "english" "Man"   "43" "Jobless" 
[14,] "french"  "Man"   "61" "Retired" 
[15,] "french"  "Man"   "50" "Employee"

これは私が得たい結果の種類です:

Variable    Modality    Value   ChiSq   Indicator
Sex         Women       56.6%   0.00001 -8.9%
            Men         65.5%       
Nationality 
            1:Spanish   62.6%       
            2:French    51.2%   0.00001 -11.4%
            3:English   48.0%   0.00001 -14.6%
Age 
            <25yo       33.1%   0.00001 -44.9%
        Ref:26<x<54yo   78.0%       
            55yo=<      48.7%   0.00001 -29.3%

(私は上記を次のように解釈します: 他の条件が同じであれば、女性は男性に対して雇用される可能性が -8.9% であり、25 歳未満の女性は 26 歳から 54 歳の女性よりも雇用される可能性が -44.9% です)。

したがって、私がよく理解している場合、最良のアプローチは、二項ロジスティック回帰 (link=logit) を使用することです。これは、「男性対女性」(性別)、「従業員対無職」(「タクト」変数から)の参照を使用しています...「タクト」は、SASによってバイナリ(0-1)変数に自動的に変換されると思います。

これがRでの最初の試みです。まだチェックしていません(自分のPCが必要です):

### before using multinom function 
### change all predictors to factors and relevel 
recens$sex <- relevel(factor(recens$sex), ref = "Man")
recens$idnat <- relevel(factor(recens$idnat), ref = "spanish")  
recens$TACT <- relevel(factor(recens$TACT), ref = "employee")

### Calculations of the probabilities with function multinom, 
### formatted variables, and conditions with subset 
glm1 <- glm(TACT ~ sex + age + idnat, data=census, 
+ weights = weight, subset=age[(15<=recens$age|recens$age<=64)] & TACT %in% 
+ c("Employee","Jobless"), family=binomial())

私の質問:

今のところ、R ライクでロジスティック回帰を実行する関数が多くあり、これglmが適合すると思われます。

ただし、多くのフォーラムにアクセスした後、多くの人がSAS 、特に function functions を正確に再現しようとしないことを推奨しているようです。フランク・ハレル博士 (の著者) の 1 つです。PROC LOGISTICLSMEANSpackage:rms

そうは言っても、私の大きな問題はLSMEANS、そのオプションObsmarginsILINK. その説明を繰り返し読んでも、それがどのように機能するのかほとんど理解できません。

これまでのところ、私が理解しObsmarginていることは、データベースの総人口の構造を尊重するということです (つまり、計算は総人口の割合で行われます)。ILINK(指数) モデルによって検出された値ではなく、各予測因子 (たとえば、女性の次に男性) の予測確率値 (失業率、雇用率) を取得するために使用されているように見えますか?

要するに、R を介して、次のrmsような関数を使用してこれを行うにはどうすればよいlrmでしょうか。

私は本当にこれらすべてに迷っています。誰かが私にそれをよりよく説明し、私が正しい方向に進んでいるかどうかを教えてくれたら、それは私の一日になります.

あなたの助けに感謝し、私の英語は少し錆びているため、すべての間違いをお詫びします.

ビン

4

1 に答える 1