Вычислить ANOVA с преобразованными переменными

У меня есть кадр данных 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")

Я хочу сделать ANOVA почти так же, как я уже сделал.

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) 

Кто-нибудь знает, как это выполнить?


person SimonB    schedule 08.10.2015    source источник
comment
Как отметил @ccurtis ниже, вы уже сделали это. Хотя я бы предположил, что нет причин писать функцию для этого преобразования. Только 1_   -  person Alex W    schedule 08.10.2015


Ответы (1)


В принципе, вы уже сделали всю работу. Просто измените столбец A с вашей функцией и повторно запустите свою анову.

df2=df
df2$A<-f1(df$A)
df2
lm2 <- lm(Y~ P + TA + A, data=df)
Anova2<-aov(lm2)
summary(Anova2)
person CCurtis    schedule 08.10.2015
comment
Но при этом я заменяю свои значения A преобразованием моих значений Y, верно? Потому что моя функция: Y = 0,384394 * (A ^ 0,341429) * (exp (-0,004749 * $ A). Каким-то образом мне нужно, чтобы инверсия этой функции имела A как функцию Y. - person SimonB; 08.10.2015
comment
Или я могу сказать в своей линейной модели, что P +TA~Y и P~f1(Y)? - person SimonB; 08.10.2015
comment
Звучит как математическая задача. Попробуй Вольфрам альфа. wolframalpha.com/input/?i=solve+y%3D0. 384394*%28A%5E0,341429%29*%28exp%28-0,004749+*A%29%29+для+A - person CCurtis; 08.10.2015
comment
Спасибо. Однако это не дает A=f(Y). - person SimonB; 08.10.2015