我試圖獲得適合我數據的lm。我遇到的問題是我想在因子爲「真」時擬合線性模型(一階多項式),在因子爲「假」時擬合二階多項式。我怎樣才能完成使用只有一個LM。R lm與分類和平方連續變量的交互作用
a=c(1,2,3,4,5,6,7,8,9,10)
b=factor(c("true","false","true","false","true","false","true","false","true","false"))
c=c(10,8,20,15,30,21,40,25,50,31)
DumbData<-data.frame(cbind(a,c))
DumbData<-cbind(DumbData,b=b)
我已經試過
Lm2<-lm(c~a + b + b*I(a^2), data=DumbData)
summary(Lm2)
導致:
summary(Lm2)
Call:
lm(formula = c ~ a + b + b * I(a^2), data = DumbData)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.74483 1.12047 -0.665 0.535640
a 4.44433 0.39619 11.218 9.83e-05 ***
btrue 6.78670 0.78299 8.668 0.000338 ***
I(a^2) -0.13457 0.03324 -4.049 0.009840 **
btrue:I(a^2) 0.18719 0.01620 11.558 8.51e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.7537 on 5 degrees of freedom
Multiple R-squared: 0.9982, Adjusted R-squared: 0.9967
F-statistic: 688 on 4 and 5 DF, p-value: 4.896e-07
這裏我有我(一^ 2)對於既配合,我想1只月1日爲了和另一個與第二階多項式。 如果有人嘗試:
Lm2<-lm(c~a + b + I(b*I(a^2)), data=DumbData)
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
In addition: Warning message:
In Ops.factor(b, I(a^2)) : * not meaningful for factors
我怎樣才能得到適當的互動條款?
謝謝安德烈,我還有一些東西在這裏失蹤。在這個例子中,變量b是邏輯1,如果是兩個級別的因子不起作用,我想我必須將因子變量轉換爲邏輯1。我缺少的另一件事是不在條件中,我(!b * a^2)沒有!我得到:
Call: lm(formula = c ~ a + I(b * a^2), data = dat)
Coefficients: Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.2692 1.8425 3.945 0.005565 **
a 2.3222 0.3258 7.128 0.000189 ***
I(b * a^2) 0.3005 0.0355 8.465 6.34e-05 ***
我不能將公式與有和沒有!條件,這對我來說有點奇怪。
謝謝安德烈,我還有些東西在這裏。在這個例子中,變量b是邏輯1,如果是兩個級別的因子不起作用,我想我必須將因子變量轉換爲邏輯1。我缺少的另一件事是不在條件中,我(!b * a^2)沒有!我得到:電話: lm(公式= c〜a + I(b * a^2),data = dat) 係數: 估計標準。誤差t值Pr(> | t |) (截距)7.2692 1.8425 3.945 0.005565 ** a 2.3222 0.3258 7.128 0.000189 *** I(b * a^2)0.3005 0.0355 8.465 6.34e-05 *** – 2013-04-29 18:28:22