作者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