2016-09-20 7 views
2

私は、1つの連続従属変数(y)と3つのカテゴリ独立変数(x1、x2、x3)を持つデータセットの回帰モデルを推定しようとしています。たとえば、yはスマートフォンに支払う価格で、xは3つの機能(色、サイズ、保存容量など)です。Multiplicative回帰

私の前提は、各フィーチャが(未知の)ベースライン価格に対する倍率を表しているということです。したがって、携帯電話のベースライン価格が100の場合、赤色で25%、赤色で50%、ストレージスペースが75%増加します。これは、電話の最終価格が100 x(1 + 0.25)x(1-0.50)x(1 + 0.75)= 109.375となることを意味します。

問題は、私は最終価格(ベースライン価格ではない)と個々の機能しか知りません。どのようにこれらの機能と一緒に乗算要素を推定することができますか?私はこの問題を説明するためにRの簡単なシミュレーションを書いた。これであなたの助けのための

おかげで、

マイケル

x_fun <- function() { 
    tmp1    <- runif(N) 
    tmp2    <- cut(tmp1, quantile(tmp1, probs=c(0, 1/3, 2/3, 3/3))) 
    levels(tmp2)  <- seq(1:length(levels(tmp2))) 
    tmp2[is.na(tmp2)] <- 1 
    as.factor(tmp2)} 

N  <- 1000 

x1  <- x_fun() 
x2  <- x_fun() 
x3  <- x_fun() 

f1  <- 1+0.25*(as.numeric(x1)-2) 
f2  <- 1+0.50*(as.numeric(x2)-2) 
f3  <- 1+0.75*(as.numeric(x3)-2) 

y_Base <- runif(min=0, max=1000, N) 
y  <- y_Base*f1*f2*f3 

output <- data.frame(y, x1, x2, x3) 
rm(y_Base, f1, f2, f3, N, y, x_fun, x1, x2, x3) 
+0

ベースライン価格ldは、特徴1,1,1の価格である。つまり、各変数の最小因子値です。これは 'glm'モデルを使うと、Rがベースラインとして取るものです。あなたの例を参照すると、サイズや画面のない電話機の価格をどう定義しますか?人々は通常、最も低い仕様の電話をベースラインとして使います。 – niczky12

+0

@ niczky12それは単純ではないかもしれません。私はその論理によって基本価格が499ではなく-278.7348であると信じています。 –

+0

あなたのモデルでは、すべてのN観測にただ1つの基本価格がありますか? –

答えて

0

私はあなたが要因のベースレベルを知っている場合は、こののようにそれを行うことができると思います。

N  <- 1000 
set.seed(42) 
x1  <- x_fun() 
x2  <- x_fun() 
x3  <- x_fun() 

f1  <- 1+0.25*(as.numeric(x1)-2) 
f2  <- 1+0.50*(as.numeric(x2)-2) 
f3  <- 1+0.75*(as.numeric(x3)-2) 

y_Base <- runif(min=0, max=1000, N) 
y  <- y_Base*f1*f2*f3 

str(x1) 

output <- data.frame(y, x1, x2, x3) 
#rm(y_Base, f1, f2, f3, N, y, x_fun, x1, x2, x3) 


output[, c("x1", "x2", "x3")] <- lapply(output[, c("x1", "x2", "x3")], relevel, ref = "2") 

fit <- glm(y ~ x1 + x2 + x3, data = output, family = gaussian(link = "log")) 
summary(fit) 
predbase <- exp(log(output$y) - predict(fit, type = "link") + coef(fit)["(Intercept)"]) 


library(ggplot2) 
ggplot(data.frame(x = y_Base, y = predbase, output[, c("x1", "x2", "x3")]), 
     aes(x = x, y = y)) + 
    geom_point() + 
    facet_wrap(~ x1 + x2 + x3) + 
    geom_abline(slope = 1, color = "dark red") 

resulting plot

+0

'y'と' y_Base'がとても近いので(シミュレーションでは間違いかもしれませんが)、これを共起させるかどうかは分かりませんが、これを実行すると予測ベース( 'predbase')には基本価格(512.3)の代わりに最終価格(501.9)とほぼ同じ平均(501.3)です。 –

+0

'y'と' y_Base'はまったく閉じていません。なぜここで平均値に焦点を当てるのか分かりません。 AFAIUの目標は、各観測の基本賞を得ている。 – Roland

+0

@WeihuangWong「一定基準賞」の意味を理解できません。各観測の基本賞を得るという目標はありませんでしたか? – Roland