Stata要作regression很簡單,像這樣:
regress y x1 x2, beta
但是要作interaction怎麼辦?依regression的公式,很容易就想成「加上一個x1*x2」就好了嘛…..錯,不給我跑 @@
正確做法是先產生一個變數,此變數是x1*x2,然後再把這個變數丟進regression裡。
gen x1x2=x1*x2
regress y x1 x2 x1x2
指令很簡單,只不過是習慣問題而已。貌似這幾天我「直覺」打上x1*x2然後看stata給我紅字的次數已經好幾次了…
請問這樣的作法是有center過得交互作用項嗎?如果沒有的話,有什麼辦法可以作到呢?
對不起,我看不懂你的問題。你想要問的是怎麼把一個variable變成standardized的嗎?
sorry…
我的問題是,為了要避免多元共線性,一種作法是把x1和x2都先置中(減去平均數)後再相乘出x1*x2。但您提供的這種作法似乎只是單純的把兩變數相乘而已對嗎?
egen i1 = std(i)
egen j1 = std(j)
gen ij=i1*j1
regress y i1 j1 ij
至於這能不能解決multicollinearity,我就不懂了
謝謝,看起來是比spss方便許多。
這裡的話,我想請教一下一些問題
第一個就是說,如果要做二階多元回歸的話,不曉得還有沒有更方便的方法。我手上只有SPSS,目前如果要做二階的話,大概都像版主一樣,不管是自變項的二次方,還是因子間的交互作用,都會先寫語法讓它先行產生,之後再讓程式最回歸的動作
如說
compute x1*x1
compute x1*x2…..
最後regression….
/method enter x1 x2 x1x1 x1x2 x2x2
我不曉得說做二階的回歸有沒有軟體內建的方法可用,還是只能用這種方式
Stata有個指令xi,可以快速產生interaction。如果是二階,目前好像沒什麼很快的辦法。如果有很多variable要作二階的話,我大概會寫個迴圈,把資料讀進去,然後把整串變數丟到regression裡面。
暫時沒想到更快的辦法了。
OK,謝謝你的寶貴意見。我主要是想要知道整個二階多元回歸的概念大概是怎樣,如果同樣的概念用SAS應該也是一樣吧。
也就是說如果今天是用一階的回歸,最後面的regression 程式裡就只需要 Y 跟 X 的一次項變數;如果是二階回歸,regression 就需 Y 跟X 的二次項變數群(這裡二次項變數群讓程式自動產生或手動產生都沒差吧?)。依此類推
整個的概念應該是這樣沒錯吧
@Cidimbris,
對,概念是這樣沒錯!
你好~
請問如果是3個產出(y1 y2 y3)和三項投入(x1 x2 x3)
另外如果還需要考慮3個外生變數, 這樣要怎麼設定迴歸?
Hi Sabrina,
聽起來是 Manova 或是 Multivariate multiple linear regression。前者在stata可用manova指令,後者用mvreg。
希望這回答了你的問題。