統計分析

如何分析問卷複選題

問卷常會有像這樣的複選題(multiple responses):

問題:你為什麼來看研究生2.0的文章?(選擇所有適合的)

□ 因為自己也是研究生    □ 朋友介紹的網站

□ 從搜尋引擎找到的       □ 亂入的

如果你是在surveymonkey之類的網站製作的問卷,通常會把這個問題的4個選項分成4個欄位,每個欄位像dummy variable一樣,是的話是1,不是的話是0。所以全選的話,欄位值分別是1、1、1、1,只選第一個的話,則是1、0、0、0。

到這裡很多人都會,問題是:下一步怎麼辦?要用什麼方式分析呢?

如果你把這個選項當作是outcome variable,想要看不同年齡、性別、社經地位的人,是否因為不同的目的來看本站,那你要的就是Logistic regression。

什麼?你還要複雜一點嗎?那我們先畫個示意圖好了:

1.png

我們可以用結構方程模式(SEM)的觀念畫一個示意圖。我們認為個人背景會影響為什麼造訪(ex: 男性多半因為自己是研究生,女性多半因為朋友介紹的),而為什麼造訪本站會影響你幾年畢業(其實再加一個為什麼造訪可解釋用功程度,而用功程度可解釋幾年畢業,不過既然是範例,簡單一點就畫這樣好了)。

要怎麼做呢?首先你應該作一個descriptive analysis的表格,把你的變數全放進去。要表格範本可以到統計表格範本這篇文章找,想直接從stata輸出表格到word的話看這篇

作完表格一之後,表格二是作logistic regression,背景是independent variable,為什麼造訪是depedent variable,然後把迴歸的表格畫出來,就是表格二。我們有4個選項,意思是這4個選項要各跑一次,一共要跑4次,但你的表格可以把它合成一個。

接下來是表格三。表格三比較複雜,因為有兩條regression line到幾年畢業。我們對背景影響幾年畢業其實並沒有興趣,只是想控制這些變數,看看控制這些變數之後,造訪本網站是否可解釋幾年畢業。所以你先要跑一個linear regression,把背景放成independent variable,幾年畢業為dependent variable,這個regression就是你的model 1。你的model2 則是將背景與造訪本站的原因同時放入,dependent variable則不變。你想看的是加入了這些之後,有什麼變化,是否解釋的比例更高,這些因素是否為顯著差異。

我試著盡力用簡單的語言解釋了,如果看不懂,歡迎指出哪裡看不懂。如果不懂什麼是logistic regression,那請先google一下,我最近爆忙還沒有空寫。

如何分析問卷複選題 Read More »

Stata: 輸出regression table到word和excel

Stata好像在台灣用的人不多,網路上看到的中文資料似乎很少,但它真的是個好物啊!如果用SPSS跑了regression之後,還要花很多時間畫成表格,但這點在stata只要下幾個指令就好了,然後就可以輸出成word檔(rtf格式)和excel檔,避免你打錯

網址:http://repec.org/bocode/e/estout/installation.html

Stata: 輸出regression table到word和excel Read More »

Stata: 產生虛擬變量(Create dummy variables)進階篇

上一篇講到用stata產生虛擬變量,方法是正確的,沒什麼問題,但如果你的變數裡有10個group,依照上次的作法,產生一個dummy variable要3行程式,10個group就要30行。其實30行程式也不是什麼大不了的,只不過是多了幾次複製與貼上而已。但如果你不是很在意dummy variable的名稱,我們有更快的方式可以完成。

我們一樣用上次的table來示範:

id language
1 1
2 1
3 2
4 3
5 .

Stata: 產生虛擬變量(Create dummy variables)進階篇 Read More »

Stata: 產生虛擬變量(Create dummy variables)

Stata是一套滿簡單、易學的統計軟體,最近在用它跑問卷分析,所以就產生了不少虛擬變量(dummy variables),於是就簡單寫篇教學文吧!

如果你拿到一個資料像是這樣的:

id language
1 1
2 1
3 2
4 3

language的數字代表不同的語言,1對應到Chinese,2對應到English,3對應到Spanish。要產生dummy variable,在stata最土法煉鋼的方式就是用gen指令(generate的縮寫,在stata輸入gen就行了)先產生一個變數,然後在用replace 將language的值指派給dummy variable。

Language有三個值,我們只要產生3-1=2 個虛擬變量,這點非常重要,一定要弄對,不然辛苦了半天跑出來的結果會非常怪。當然也有人傾向產生3個虛擬變量,到時候跑regression的時候少放一個當作是reference group,但一定要記得少放才行啊!

那我們就以Chinese為reference group,所以我們就不需要產生Chinese這個虛擬變量,而是產生dEnglish, dSpanish這兩個。開頭的d表示是虛擬變量,以示分別,免得自己弄錯。

gen是產生變數的指令,所以我們要先產生dEnglish與dSpanish。

gen dEnglish=0

gen dSpanish=0

再來就是要給這兩個新的變數1這個值。language欄位中2的值表示English,所以用replace把值指過去

replace dEnglish =1 if language==2

replace dSpanish =1 if language==3

注意:language==是兩個等號,不是筆誤。比較數值的時候用==,指派數值的時候用=。

很多人會搞混的一點就是:為什麼dEnglish跟dSpanish都要=1?產生虛擬變量的目的就是把上述的表格變成下面這樣:

id language dEnglish dSpanish
1 1 0 0
2 1 0 0
3 2 1 0
4 3 0 1

我們回顧一下每個變數的定義。Language是母語,dEnglish的定義則是此人的母語是English,是的話值就是1,不是的話值就是0。dSpanish同理可推,如母語為Spanish值為1,否的話值為0。所以上面的語法才會dEnglish與dSpanish的值為1。

想一想,上面這樣寫有什麼問題?如果我們的table像下面這樣,問題就出現了:

id language dEnglish dSpanish
1 1 0 0
2 1 0 0
3 2 1 0
4 3 0 1
5 .

Stata: 產生虛擬變量(Create dummy variables) Read More »

因素分析(Factor Analysis)

這裡要講的因素分析不是在ANOVA裡面看到的Factor Analysis of Variance,而是結構方程模式分析(Structural equation model,簡稱SEM)裡面的一環。因素分析裡面一定會有latent variable(隱性變量),又有人稱為factors(因素)。講半天還是不知道是什麼,對吧?有圖有真相:

1.png

圖中???的地方,就是你不知道的,也就是我們上面所說的latent…

因素分析(Factor Analysis) Read More »

Scroll to Top