使用转换后的变量计算方差分析

Compute an ANOVA with transformed variables

我有一个数据框df

df<-structure(list(Y = c(1.20167297867875, 1.27851224829923, 1.18763208884216, 
1.23765309504143, 1.30246129512516, 1.19258132417647, 1.17015215455443, 
1.16756342150402, -0.000206480999730317, 0.292683228844456), 
    P = c(1750.51986303926, 1614.11541634798, 951.847023338079, 
    1119.3682884872, 1112.38984390156, 1270.65773075982, 1234.72262170166, 
    1338.46096616983, 458.433428257704, 1198.95775346458), TA = c(9.10006221322572, 
    7.65505467142961, 8.21480062559674, 8.09251754304318, 8.466220758789, 
    8.48094407814006, 8.77304120569444, 8.31727518543397, 10.4412463804413, 
    8.14410265791868), A = c(49, 50, 51, 52, 53, 54, 55, 56, 
    0, 1)), .Names = c("Y", "P", "TA", "A"), row.names = 2803:2812, class = "data.frame")

我想用几乎和我已经做的一样的方法做方差分析。

lm1 <- lm(y~ P + TA + A, data=df)
Anova<-aov(lm1)
summary(Anova)

不同的是,现在我想根据下面的函数转换我的一个变量(A

f1<- function(x) {0.384394*(x^0.341429)*(exp(-0.004749 *x))} 

其中函数表示变量 y= 0.384394*(A^0.341429)*(exp(-0.004749 *A).

我的线性模型类似于

lm2<-lm(y~P+TA+ my transform A, data=df) 

有人知道如何执行吗?

你基本上已经完成了所有的工作。只需使用您的函数修改 A 列并重新 运行 您的方差分析。

df2=df
df2$A<-f1(df$A)
df2
lm2 <- lm(Y~ P + TA + A, data=df)
Anova2<-aov(lm2)
summary(Anova2)