0

我一直试图通过将其他变量保持在样本均值不变来查看模型中单个变量的解释能力。

但是,我无法执行以下操作:

Temperature = alpha + Beta1*RFGG + Beta2*RFSOx + Beta3*RFSolar 

其中 Beta1=Beta2=Beta3 - 类似于

Temperature = alpha + Beta1*(RFGG + RFSolar + RFSOx)

我想这样做是为了比较当一个自变量没有保持在样本均值上而其他自变量保持不变时,解释力的差异(R^2/残差大小)。

Temperature = alpha + Beta1*(RFGG + meanRFSolar + meanRFSOx)

或者

Temperature = alpha + Beta1*RFGG + Beta1*meanRFSolar + Beta1*meanRFSOx

但是, lm 函数似乎可以估计自己的系数,所以我不知道如何保持任何常数。这是我尝试将一些丑陋的代码放在一起,我知道这些代码很糟糕:

    # fixing a new clean matrix for my data
dat = cbind(dat[,1:2],dat[,4:6]) # contains 162 rows of: Date, Temp, RFGG, RFSolar, RFSOx

# make a bunch of sample mean independent variables to use
meandat = dat[,3:5]
meandat$RFGG = mean(dat$RFGG)
meandat$RFSolar = mean(dat$RFSolar)
meandat$RFSOx = mean(dat$RFSOx)

RFTotal = dat$RFGG + dat$RFSOx + dat$RFSolar

B = coef(lm(dat$Temp ~ 1 + RFTot)) # trying to save the coefficients to use them...
B1 = c(rep(B[1],length = length(dat[,1])))
B2 = c(rep(B[2],length = length(dat[,1])))

summary(lm(dat$Temp ~ B1 + B2*dat$RFGG:meandat$RFSOx:meandat$RFSolar)) # failure
summary(lm(dat$Temp ~ B1 + B2*RFTot))

感谢您查看看到此内容的任何人,请向我提出任何问题。

4

1 回答 1

0

谢谢你们,这是用(-1)消除截距和偏移功能的组合。

a = lm(Temp ~ I(RFGG + RFSOx + RFSolar),data = dat)
beta1hat = rep(coef(a)[1],length=length(dat[,1]))
beta2hat = rep(coef(a)[2],length=length(dat[,1]))

b = lm(Temp ~ -1 + offset(beta1hat) + offset(beta2hat*(RFGG + RFSOx_bar + RFSolar_bar)),data = dat)
c = lm(Temp ~ -1 + offset(beta1hat) + offset(beta2hat*(RFGG_bar + RFSOx + RFSolar_bar)),data = dat)
d = lm(Temp ~ -1 + offset(beta1hat) + offset(beta2hat*(RFGG_bar + RFSOx_bar + RFSolar)),data = dat)
于 2016-02-09T22:55:08.200 回答