[公告] 痞客邦「應用市集」新 App 上架-iFontCloud Professional[公告] 痞客邦後台發表文章提供插入多張圖片新功能[公告]痞客邦新服務上線 部落客商店聚集就在《痞市集》[公告] 部落格「快捷功能BAR」改版介紹[公告] 痞客邦「快捷功能BAR」6月4日改版通知

SPSS 

迴歸分析筆記 虛擬變數 Dummy Variable

虛擬變數在迴歸分析裡算是個蠻重要的概念
但是光看它名字其實不太知道這是要幹嘛用的
所以就從為什麼要有這東西開始講吧!
(Dummy: 假的、啞的)

話說這東西其實如果常寫程式的話應該會很習慣
不過跟虛擬碼Pseudo Code是無關的兩回事就是了

 

一樣舉拉麵為例子......
如果說我們想要知道一間拉麵店的當天營業額
想說用一個方程式來預測
包括湯的鹹度(鈉含量)、麵的軟硬度(蛋白質含量)、當天氣溫等等
(當然是假想的~煮麵當然不只有這些啦!!)
比方說設計出一個像這樣的方程式來估算當天營業額
(數字我亂打的──27000就是常數項,後面的2000、4000那些則是係數)

當天營業額 = 27000 + 2000 x 湯鹹度 + 4000 x 麵硬度 - 300 x 當天氣溫

像這樣就是一個線性迴歸方程式
來幫助我們預測營業額的數目
而湯鹹度、麵硬度、氣溫這些是採用連續的數值
比方鹹度硬度固定
氣溫每多一度
則營業額就會跌300塊錢的意思
畢竟熱的時候吃不太下

 

 

但是
如果想要用類別(不是連續)的變數來估測看看當天營業額呢?

比方說茂虎流麵店有賣豚骨拉麵、揚州炒麵、鍋燒烏龍麵三種麵
看看三種麵營業額的差異
(為方便起見假設這三種麵都賣一樣價錢好了)

一開始的想法大概就是把這三個分別用數字來代換
比方:豚=1、炒=2、鍋=3
那就把當天營業額的迴歸寫成這樣 (B1是係數)

營業額 = 常數 + B1 x 麵類

問題是店裡當日麵點
雖然用數字來代換
可是他的1、2、3並沒有分高低
而是單純的類別而已
這樣就沒有辦法像前面那種連續變數的解釋(若...增加多少,則營業額增加多少)
那這樣那個係數B1 也就不知道如何有意義的解釋他了!!
那要怎辦!!!???

 

所以這時我們就要把這個特價麵類的變數拆開
原本不是想成說「賣出哪一種麵」嗎?
那其實我們換個角度想
是不是就可以想成賣出的是:
豚骨拉麵?
揚州炒麵?
鍋燒烏龍?

然後這三個問題答案也就是「有賣出」跟「沒有賣出」這兩個差別
那就把「有賣出」當作1
「沒有賣出」當作0
就都用0跟1來代

那他們之間關係就像這樣:

  豚有賣出? 炒有賣出? 鍋有賣出?
1豚  1  0  0
2炒  0  1  0
3鍋  0  0  1

因為其中一個有賣(有→1)的話
其他兩個就一定沒賣(沒有→0)

所以剛開始會想說把方程式寫成這樣

營業額 = 常數 + B1 x 豚有沒有賣出 +  B2 x 炒有沒有賣出 + B3 x 鍋有沒有賣出

有或沒有就選1或0
如果0的話也就代表當天賣哪種麵跟他無關也就不會影響到營業額
只有有賣的那種當日麵點才有影響
而且他影響的金額就是他前面的係數!!
這樣很合理對不對?

但這樣是不對的!!
為什麼?

因為有沒有發現
其實在第三個

  豚有沒有賣 炒有沒有賣 鍋有沒有賣
1豚  1  0  0
2炒  0  1  0
3鍋  0  0  1

我們知道一天就賣一種麵而已
所以如果前面兩種有其中一種麵有賣
則第三種就一定沒賣
相對的如果前面兩個都0
那第三種麵就一定是當日麵點
總之知道前兩個的值就一定知道第三種麵是0還是1

也就是說第三個鍋燒麵那個變數
要說的事跟前面兩種麵說的一樣
我們就不需要再放那個第三個變數進去
不然方程式解不出來(就像只有三個式子卻要解四個未知數一樣)
(當然聰明的SPSS程式會自動幫忙避免掉這種問題)
(或者就不設常數項,當然解釋上而言就與有設常數項不太相同,可想想差異在哪)

改一下

  D1:豚有沒有賣出 D2:炒有沒有賣出
1豚  1  0
2炒  0  1
3鍋  0  0

我們只需要這樣就足矣
兩個變數
分別命名叫做「D1(豚有沒有賣出)」、「D2(炒有沒有賣出)
如果當天是豚骨,就把D1代1、D2代0
如果當天是炒麵,就把D1代0、D2代1
如果當天是鍋燒,就把D1代0、D2也代0

這種變數的編碼
就是這篇的主角
Dummy Variable!!

 

所以方程式就長這樣啦:

當天營業額Y = 常數 + B1 x D1 +  B2 x D2

 

不過要怎麼算出係數B1 、B2跟常數項?
那我們就要先看一下實際的數字了
假設我們把這一季促銷的銷售總整理一下

  特賣日營業額平均
 32000
 29000
 30000

當然營業額的估測值要盡量接近實際的值
也就是那種麵特價日的營業額的平均

所以我們可以得到下列三條方程式:

豚:32000 = 常數 + B1 x 1 + B2 x 0
炒:29000 = 常數 + B1 x 0 + B2 x 1
鍋:30000 = 常數 + B1 x 0 + B2 x 0

 

所以可以解出:

常數 = 30000
B1=2000
B2=-1000

 

所以整個迴歸方程式就是:

營業額 = 30000 + 2000 x D1 - 1000 x D2

解釋上就是說
豚骨拉麵當天營業額比鍋燒多2000元
炒麵營業額比鍋燒少了1000元

※這邊有個重要意義,就是鍋燒是被當作「參考值」

 

這樣解釋應該是對吧......?
另外我沒有貶低炒麵的意思~我也很愛吃炒麵!!
以後有機會再分享炒麵的食譜

 

 

 

Posted by belleaya (愛) at 痞客邦 PIXNET 留言(15) 引用(0) 人氣()


open trackbacks list Trackbacks (0)

留言列表 (15)

Post Comment
  • shinywalker
  • 謝謝你統計教學,淺顯易懂呢~
    如果妳有出統計的書 我一定會去買....
    我今天已經把他看完,也分享到我的FB上嚕
    期待您統計教學小撇步
  • 謝謝>/////<

    belleaya (愛) replied in 2012/10/14 15:19

  • Tracy
  • 想請問您虛擬變項的問題,就是在迴歸分析中,除了將虛擬的變項(2個)全部丟入與效標變項作分析外,原來的那一個有編號1.2.3.的特價麵類變項要不要丟入?謝謝解答
  • 原本的就不用囉~~~
    出來的3個D也是取2個放到迴歸就好了!

    belleaya (愛) replied in 2012/11/18 20:00

  • Tracy
  • 非常改謝您的留言!想再請問您!如果變相有五個分類(1.非常好2.好3.普通4.不好5.非常不好)但第5個選項(5.非常不好)都無人作答,那我在轉換成虛擬變項時,可不可以直接用4個分類轉成3個虛擬變項就好了,反正5.這個馾案也沒人選。謝謝解答!
  • 雖然不影響不過還是放進去比較正確唷!
    畢竟不能確保未來同樣的迴歸式去分析新的case的時候
    會不會有其他人填5~

    belleaya (愛) replied in 2012/11/19 12:55

  • Tracy
  • 了解,謝謝!最近在跑統計的複迴歸部分,如果有分析上的問題再請教您,還請您不吝指導,非常感謝!
  • 不會~~我也是邊學邊blog筆記...

    belleaya (愛) replied in 2012/11/20 19:50

  • Tracy
  • 問題又來了! 請問如果我將〝國籍〞這個類別變項轉為3個虛擬變項後,要跑共線性時,是用原國籍的變項還是那三個虛擬變項去檢定是否有共線性的問題,謝謝!我翻了書找不到答案ㄝ
  • 當然是用新的三取二囉~~
    畢竟你之後要用的迴歸式是要採新的
    所以檢驗新的VIF/tolerance是比較合理的

    belleaya (愛) replied in 2012/11/21 07:42

  • Tracy
  • 您好,請問一下喔!我跑逐步迴歸後發現可解釋的變異量極低(21.2%),雖然有顯著(0.19)所以想跟您確認一下,放進去迴歸跑的連續變項是放該變項的平均數嗎?還是總合,或是..我放該變項的平均數及類別變項之虛擬變項ㄝ!謝謝!
  • 要看你之後的解釋耶~~
    平均的話是指平均每增加一則DV會增加1*IV係數這樣
    總合就是總合增加一DV就會變囉
    意義有點不一樣不過係數也會因此變動所以也還好

    不過R square太低的話應該是代表資料較非線性分布吧?
    (這邊我有點忘記了)

    belleaya (愛) replied in 2012/11/22 14:01

  • Tracy
  • 謝謝您的回覆,我再試一試'
  • 嗯嗯~ok!

    belleaya (愛) replied in 2012/11/23 20:38

  • 訪客
  • thank you, 解释的很萌
  • 哈哈哈~~

    belleaya (愛) replied in 2013/05/15 10:30

  • 訪客
  • 謝謝你的有趣舉例,最近剛學統計coding差點沒被搞昏
    幫助我不少很清楚也很明白
    我將它分享到fb上讓更多人瞭解
  • 謝謝你囉!!!!

    belleaya (愛) replied in 2013/11/10 14:49

  • 滾滾而
  • 正逢生物統計學的考試之前看到你的說明與解釋
    許多難題困結都解開了,覺得好幸福~
  • 加油!!!

    belleaya (愛) replied in 2014/01/12 05:00

  • 毛驢
  • 如果再加上別的虛擬變數,像是天氣(陰天、雨天、晴天),那可以變成
    營業額= 常數 + B1 x 豚有沒有賣出 + B2 x 炒有沒有賣出 + B3 x 鍋有沒有賣出+B4陰天+B5雨天 嗎? 我的意思是可以把兩個不同種類虛擬變數設在一起嗎?
  • 可以呀~!
    不同虛擬變數之間不影響~

    同樣的其他不是虛擬變數的數值型變數要放一起也都ok的

    belleaya (愛) replied in 2014/01/12 05:00

  • Private Comment
  • 晴天
  • 淺顯易懂啊~ 太感謝這篇文章了,幫助超大!
  • 不客氣~~加油!!

    belleaya (愛) replied in 2014/06/09 00:20

  • 阿勛
  • 不好意思

    看完你的講解 真是淺顯易懂,謝謝

    但是還有一個問題要問

    就是 原本賣的種類是三種,如果種類多到四種或五種甚至是七種
    那在處理的地方有哪些要注意的嗎或者應該是像三種這樣去列嗎?謝謝

    謝謝您的答覆
  • 對呀~手法都大同小異
    如果是五種的話就是設四個DV這樣!

    belleaya (愛) replied in 2014/07/04 03:46

  • jolinreusp
  • 謝謝您的解釋>////< 淺顯易懂!!!! 幫助我不少
    (一個明天要考統計期末考的焦慮少女....
  • 哈哈哈~~~加油!

    belleaya (愛) replied in 2014/07/04 03:45

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

other options