[問題] 類別變數和虛擬變數
先說聲抱歉,文章有點長
這陣子在跑logit model
但因為自變數有重複測量的問題
所以學長建議用GEE model
但是目前卡在一個地方
應變數為(0,1)變數
自變數當中有3個是類別變數
地區別,行業別,教育程度
地區別在資料中顯示的方式為
1.北部
2.中部
3.南部
我的作法是
when 地區別為北部時,X1=1,otherwise X1=0
when 地區別為中部時,X2=1,otherwise X2=0
所以設完虛擬變數後會有下列表示法
X1 X2
(1 0 ) 表北部
(0 1 ) 表中部
(0 0 ) 表南部
迴歸時,丟X1當自變數去跑
並且在 proc genmod 的class選項中丟X1=0當對照組
解釋"北部地區(X1=1)"相對於"非北部地區(X1=0)"
對應變數發生的odds ratio為何
proc genmod descending data=a;
class 重複測量的變數 X1/param=ref ref=first ;
model 應變數(為0,1變數)=一堆自變數 X1 /dist=b link=logit;
repeated subject=重複測量的變數/type=un;
run;
我覺得作法應該沒錯
可是學長認為應該要2個地區別都出來對照某個地區別
可是....我覺得很怪
X1是一個自變數,而X2是另一個自變數
X1和X2怎麼可能放在一起後,再以X1=0做為對照組
因為X1=1的ref為X1=0,所以解釋上以"非北部地區"做為對照組
應該是不可能將X1和X2放在一起後去抓對照組
語法也寫不出來才對
所以...我在想
學長的意思是不是說...
不要create虛擬變數
而以當初的地區別做自變數
地區別=1 (北部)
地區別=2 (中部)
地區別=3 (南部)
然後變成
proc genmod descending data=a;
class 重複測量的自變數 地區別/param=ref ref=first ;
model (0,1)應變數=一堆自變數 地區別 /dist=b link=logit;
repeated subject=重複測量的變數/type=un;
run;
也就是將X1換成地區別這樣....
可是.....
這樣不是變得更怪嗎??
因為地區別是類別變數
其代表的1,2,3並沒有數值上的意義
這樣子跑出來的貝他係數應該是不能用來解釋應變數才對吧~~~
另外在行業別這個自變項學長也是持相同看法
就是所有行業別都出來對照某個行業別
問題是....行業別的代號更是沒有數值上的意義啊
如果不用虛擬變數分組,跑出來的係數應該是有問題的
如果係數都有問題了,odds ratio應該也不能用吧
但用了虛擬變數,就只能有0和1兩個組別而已
不可能出現所有行業別做為組別才對啊~~
因為這個問題我跟學長爭論一個下午
感覺是在雞同鴨講
但當時又沒有機會指出學長不對的地方
(也是有可能我誤會學長的意思)
所以想問一下版友
我的想法和做法問題出在哪裡?
再次說聲抱歉,內容很多
還請版友指點
感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.227.127.193
→
10/01 00:47, , 1F
10/01 00:47, 1F
→
10/01 00:48, , 2F
10/01 00:48, 2F
嗯~~
今天我回去看了一下SAS OUTPUT的東西了
之前真的沒發現一件事情
即使將類別變數分組
例如
地區 族群
1 3
1 1
2 2
3 1
其中地區和族群的分組數字都不具數學意義時
例如地區1和地區2以及族群1和族群3
當中的1,2,3並沒有數學上的對應關係
SAS在跑GEE時
會自動將其分組成虛擬變數的樣態
變成
地區1 1 0 0
地區2 0 1 0
地區3 0 0 1
所以.....
我錯了~~~~~~~~
今天也跑去跟學長道歉了~~~唉
不過學長還是有一件事情沒有解決
不知道有沒有版友願意開導~~~~
就是GEE的OUTPUT中
在 goodness to fit的結果當中
每一個變數的DF(自由度)都沒有出來
導致我沒有辦法用卡方值去判斷模型到底是好還是壞
希望有版友指點
感恩
※ 編輯: dofu1943 來自: 36.227.123.122 (10/01 21:21)