作者mangogogo (mangogo)
看板NCTU-STAT95G
標題Re: 分享一下
時間Thu Aug 10 13:08:18 2006
大家如果將程式中
n_regressors = imsls_d_regressors_for_glm (N_OBSERVATIONS, x,
n_class, n_cont,
IMSLS_X_CLASS_COLUMNS, class_col,
IMSLS_DUMMY,
IMSLS_SUM_TO_ZERO,
IMSLS_INDICES_EFFECTS, n_effects, n_var_effects, indices_effects,
IMSLS_REGRESSORS, ®ressors,0);
IMSLS_LEAVE_OUT_LAST改成IMSLS_SUM_TO_ZERO
這個兩個指令的意思可以去IMSL PDF檔看
醬就可以避免FULL rank的情形且資料不會流失
所以參數估出來就完全正確了
※ 引述《mangogogo (mangogo)》之銘言:
: 分享回歸這一份作業
: 其中
: #define N_OBSERVATIONS 9 (樣本數)
: int n_class = 指的是X Matrix 有幾個column是分類變數
: int n_cont = 指的是X Matrix 有幾個column是連續變數
: 重點是這X Matrix
: double x[18] = 這個X Matrix 不是老師講義裡的那個X矩陣
: 這個矩陣主要是顯示資料中有無分類 有幾項連續變數(內建的叫法)
: 所以 比如regression model 的X Matrix只需輸入one column的連續變數X_ij
: 因為他不必分組(故沒有分類變數)
: 1.Y_i = u + bX_i + error (無分類變數,有一個連續變數X_i)
: *變數:一個連續變數 注意b為參數不為變數*
: 比如 one way anova model 的X Matrix 則只需輸入分類變數 他的model和X_ij無關
: 所以他沒有連續變數 因為題目是分"一"類"三"組 所以這裡的X Matrix為一個column
: 你可以是-1,-1,-1,0,0,0,1,1,1 or 1,1,1,2,2,2,3,3,3 都隨意 or
: 100,100,100,200,200,200,0,0,0
: 只要表達出有三組且每組三個即可
: 2.Y_ik = u + a_i +error (有分類變數a_i,無連續變數)
: *變數:一個分類變數*
: 3.Y_ik = u + a_i +bX_ik + error
: *變數:一個分類變數,一個連續變數*
: int n_effects = 有幾個加號 (最後"+"error 這一個不算)
: int n_var_effects[1] = "+"到"+"間有幾個變數
: ex.最後anocova model為{1,1}
: int indices_effects[1] = 各變數在 X Matrix 所佔的第幾column
: 最後別忘了 在程式最後一行加上
: for(i=0;i<3;i++) printf("coef_%d=%5f\n",i,coef[i]); 算參數估計
: ^看參數有幾個
: (PS 這估出來的數會和原始資料估出來的數有點差異 (就是你用老師個矩陣公式去算)
: 所以我今天有問一下老師 學長告訴我...
: 是因為這個程式自動會刪去某一組資料,因為醬可以避免一些計算錯誤產生
: 又因老師給的資料太少,使得參數估的會有不少差異)
: 哈 我大概分享到這 ^_^ 也差不多要睡了 今天很高興認識大家摟~ 晚安~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.38.247
※ 編輯: mangogogo 來自: 140.113.38.247 (08/10 13:09)
1F:→ mangogogo:我剛剛才試出來 不好意思 那麼晚才說@@ 08/10 13:10
2F:推 aflilfesy:ㄟ~~~非常水ㄟ 我正想跟你說這件事.. 芒果gogo就PO版了 08/10 13:15
3F:推 peggyant:謝謝大家~蛋糕請來822領取唷! 哈哈! 08/15 20:38