我需要测试我应该在我的模型中包含哪些影响用于奶牛的遗传评估.在SAS中我会使用proc GLM.SAS代码将是:
data paula1; set paula0;
proc glm;
class year herd season;
model milk= year herd season age age*age;
run;
Run Code Online (Sandbox Code Playgroud)
我的R代码是:
model1 = glm(milk ~ factor(year) + factor(herd) + factor(season) + age + I(age^2), data=paula1)
anova(model1)
Run Code Online (Sandbox Code Playgroud)
我怀疑存在错误,因为即使我包含与特征无关的其他效果,所有效果都具有统计意义.我没有SAS许可证来比较结果.我的代码是否正确?R中的glm是否表示3型平方和(对于SAS中提供的不平衡数据)?在这种情况下使用lm有什么区别吗?提前致谢.保
这是SAS和R用户之间非常常见的错误.
SAS中的glm包与R中的glm函数不同,我将在下面解释.
这是来自官方网站的SAS:"GLM程序使用最小二乘法来拟合一般线性模型".SAS中的GML简称为一般线性模型.这些与广义线性模型完全不同,这是R中的GML函数计算的.
这是在R上的GLM功能:"广义线性模型也同样容易融入R作为普通的线性模型事实上,他们只需要一个额外的参数来指定变化和链接功能的拟合广义线性的基本工具. models是glm函数,具有以下通用结构:
glm(formula, family, data, weights, subset, ...)"
通常,一般线性模型使用普通最小二乘法进行参数估计,而广义线性模型使用最大似然估计进行参数估计.广义线性模型还"允许线性模型来通过链接函数进行相关的响应变量,并允许每个测量的方差的大小是其预测值的功能.(来自维基百科采取这里)"
结束我的长篇演讲你需要使用的是R中的lm函数,对于ANOVA表,它将给你与SAS中的GLM包相同的结果.对于III型错误检查joran和BondedDust的准确评论.
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
4000 次 |
| 最近记录: |