【问题标题】:Compute an ANOVA with transformed variables使用转换后的变量计算 ANOVA
【发布时间】:2015-10-08 16:48:58
【问题描述】:

我有一个数据框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) 

有人知道怎么做吗?

【问题讨论】:

  • 正如下面@ccurtis 所指出的,您已经完成了这项工作。不过,我建议没有理由为这种转换编写函数。只需df$A2 &lt;- 0.384394*(df$A^0.341429)*(exp(-0.004749 * df$A))

标签: r anova


【解决方案1】:

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

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

【讨论】:

  • 但是通过这样做,我将值 A 替换为我的值 Y 的转换,对吗?因为我的函数是:Y= 0.384394*(A^0.341429)*(exp(-0.004749 *$A)。不知何故,我需要这个函数的倒数才能使 A 作为 Y 的函数。
  • 或者我可以在我的线性模型中说 P +TA~Y 和 P~f1(Y) 吗?
  • 听起来像是一道数学题。试试 Wolfram 阿尔法。 wolframalpha.com/input/?i=solve+y%3D0.384394*%28A%5E0.341429%29*%28exp%28-0.004749+*A%29%29+for+A
  • 谢谢。但它并没有给出 A=f(Y)。
猜你喜欢
  • 1970-01-01
  • 2017-01-17
  • 2016-06-06
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多