0

Rでグラフ内の複数の線の「一般的な」方程式を見つける方法はありますか? 次のグラフは、私が達成したかったことの例です。t の主要な線のみを示しましたが、それらの主要な線の間に隠れた線もあります。私が望むのは、線の「一般的な」方程式を取得することです。どうすればいいですか?

library(reshape2)
library(ggplot2)

a<-data.frame(c =c(0.01,0.02,0.03,0.05,0.07,0.10,0.15,0.20,0.30,0.50,0.70,1),
    t1 =c(5,5.55,5.94,6.53,6.98,7.54,8.29,8.90,9.92,11.51,12.80,14.46),
    t2 = c(4.35,4.84,5.19,5.72,6.12,6.62,7.29,7.84,8.74,10.16,11.33,12.80),
    t3 = c(3.70, 4.13,4.44,4.89,5.25,5.68,6.26,6.73,7.52,8.74, 9.74,10.99),
    t4 = c(3.08,3.45,3.70,4.09,4.39,4.75,5.23,5.63,6.28,7.28,8.09,9.11),
    t5 = c(2.51,2.80,3.01,3.33,3.57,3.86,4.25,4.56,5.07,5.85,6.54,7.19))

b<-melt(a, id = "c")

ggplot(b,aes(x = c, y = value, color = variable)) +
     geom_line() + scale_color_discrete(name= expression('t'), labels=c("t = 1", "t = 2", "t = 3", "t = 4","t = 5"))
4

1 に答える 1

1

自動モデルフィッティングについては知りませんが、あなたの場合、 と のここに画像の説明を入力関係ここに画像の説明を入力ここに画像の説明を入力. したがって、「一般的な方程式」を見つけるために、それぞれここに画像の説明を入力ここに画像の説明を入力それぞれを計算できますここに画像の説明を入力

だからあなたのデータセットごとに

a <- data.frame(c =c(0.01,0.02,0.03,0.05,0.07,0.10,0.15,0.20,0.30,0.50,0.70,1),
              t1 =c(5,5.55,5.94,6.53,6.98,7.54,8.29,8.90,9.92,11.51,12.80,14.46),
              t2 = c(4.35,4.84,5.19,5.72,6.12,6.62,7.29,7.84,8.74,10.16,11.33,12.80),
              t3 = c(3.70, 4.13,4.44,4.89,5.25,5.68,6.26,6.73,7.52,8.74, 9.74,10.99),
              t4 = c(3.08,3.45,3.70,4.09,4.39,4.75,5.23,5.63,6.28,7.28,8.09,9.11),
              t5 = c(2.51,2.80,3.01,3.33,3.57,3.86,4.25,4.56,5.07,5.85,6.54,7.19))

それぞれの推定値と se を計算する関数ここに画像の説明を入力

ResFunc <- function(x) {
  temp <- lm(reformulate("c", response = x), log(a))
  c(exp(coef(temp)[[1]]), coef(temp)[[2]], exp(summary(temp)$coefficients[1,2]), summary(temp)$coefficients[2,2])  
}

関数の実行

temp <- as.data.frame(t(sapply(setdiff(names(a),"c"), ResFunc)))
colnames(temp) <- c("a", "b", "S.E (a)", "S.E (b)")
temp

#           a         b  S.E (a)     S.E (b)
#t1 13.422867 0.2314997 1.024901 0.009622679
#t2 11.888155 0.2353401 1.024803 0.009585284
#t3 10.237551 0.2375002 1.024013 0.009283321
#t4  8.523443 0.2366266 1.022568 0.008730912
#t5  6.831186 0.2321247 1.020344 0.007879240

これで、各行を推定できる可能性があります。たとえば、見積もりここに画像の説明を入力と比較

b <- data.frame(c = a$c, t1 = a$t1, t1.est = temp[1,1]*(a$c^temp[1,2]))
test <- melt(b, "c")
ggplot(test, aes(x = c, y = value, color = variable)) + geom_line() 

ここに画像の説明を入力

于 2014-03-30T22:52:01.813 に答える