R 拟合线性模型
我有一个数据框,看起来像R 拟合线性模型,r,statistics,curve-fitting,R,Statistics,Curve Fitting,我有一个数据框,看起来像 > t Institution Subject Class ML1 ML1SD aPhysics0 A Physics 0 0.8730469 0.3329205 aPhysics1 A Physics 1 0.8471074 0.3598839 aPhysics2 A Physics 2 0.8593750 0.3476343 aPhysi
> t
Institution Subject Class ML1 ML1SD
aPhysics0 A Physics 0 0.8730469 0.3329205
aPhysics1 A Physics 1 0.8471074 0.3598839
aPhysics2 A Physics 2 0.8593750 0.3476343
aPhysics3 A Physics 3 0.8875000 0.3159806
aPhysics4 A Physics 4 0.7962963 0.4027512
我想对ML1
和Class
拟合一个线性函数,但是当我调用
> lm(ML1 ~ Class, data=t)
我得到:
Call:
lm(formula = ML1 ~ Class, data = t)
Coefficients:
(Intercept) Class1 Class2 Class3 Class4
0.87305 -0.02594 -0.01367 0.01445 -0.07675
我真的不明白,因为它似乎为类
的每个值提供了多个梯度值,但有5个类
值(0-4)。但我想要的是一个单截距和一个梯度值
另外,当我使用weights=1/ML1SD^2
调用lm
时,它不会更改任何值
我做错了什么?
Class
被视为到lm
的分类变量。我想你的类
是一个因素
回归结果是正确的,因为估计值对应于4类。这是因为,默认情况下,第一个级别(0
,在您的情况下)被视为参考级别,并且您获得的所有估计都是关于参考级别的。也就是说,mean(Class1)-mean(Class0)
等于-0.02594
如果您不希望在类上使用分类变量,并且希望将其建模为连续变量,则必须通过执行以下操作将因子
转换为数值
(或整数
)类型:df$Class | t |)
#(截距)0.39256 0.07148 5.492 0.000914***
#系数(y)2-0.09999 0.13687-0.731 0.488798
#系数(y)3-0.14433 0.15983-0.903 0.396528
这是您正在建模的完整数据集吗?每个等级只有一个观察值?试试lm(ML1~as.numeric(as.character(class)),data=t)
,但是你确定class
是一个比例标度吗?对于你的体重,ML1SD是多少?@alexwhan这些是~200的平均值observations@agstudy它们是平均值的标准偏差
> lm(ML1 ~ Class, data=df)
Call:
lm(formula = ML1 ~ Class, data = df)
Coefficients:
(Intercept) Class
0.87529 -0.01131
summary( ML1 ~ factor(Class), data = df)
set.seed(45)
# meaningless data
df <- data.frame(x=runif(10), y=rep(1:3, c(4,3,3)))
summary(lm(x ~ factor(y), data=df))
# without weights
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.39256 0.09481 4.141 0.00435 **
# factor(y)2 -0.09999 0.14482 -0.690 0.51216
# factor(y)3 -0.14433 0.14482 -0.997 0.35214
summary(lm(x ~ factor(y), data=df, weights=1/y))
# with weights
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.39256 0.07148 5.492 0.000914 ***
# factor(y)2 -0.09999 0.13687 -0.731 0.488798
# factor(y)3 -0.14433 0.15983 -0.903 0.396528