2015-02-06 69 views
1

我想創建一個線性迴歸模型來預測使用兩個不同係數的輸出,這個係數根據數據中的某個閾值。例如: df:開啓和關閉係數R線性迴歸

Value Temperature 
8.2  70 
3.2  51 
5.8  54 
7.2  61 

等等。對於這個數據,我想弄清楚如何進行以下模型:

值= B0 + B1(HighTemp)+ B2(LowTemp)

其中,B1是0,如果溫度低於55,和B2是0是溫度高於55 我試過如下:

fit = lm(Value ~ I(Temperature > 55), data = df) 
fit2 = lm(Value ~ Temperature * I(Temperature > 55), data = df) 

fit只給我當溫度高於55的係數,並給出了fit2輸出,我不完全理解。我還在考慮創建第三列HighorLow,並使用指示變量(1或0)確定溫度是高還是低。我會:

fit = lm(Value ~ Temperature:HighorLow, data = df) 

有沒有人有任何輸入?我將不勝感激任何幫助。

回答

0

你有兩個連續變量,你爲什麼要使用閾值?你的線性迴歸可能只是

df<-data.frame(Value=c(8.2,3.2,5.8,7.2),Temperature=c(70,51,54,61)) 
lm(Value~Temperature,data=df) 

但是,如果你真的想分成基於閾值組,

df$Temp_threshold<-df$Temperature>55 
lm(Value ~ Temp_threshold,data=df) 
+0

這將給出截距和Temp_thresholdTRUE的值。我假設當溫度大於55時,溫度項的係數。但是對於低於55的項,係數如何?我認爲可能有一個根本的概念,我沒有抓住。 – 2015-02-06 18:25:06

+1

你可能想要閱讀一些迴歸。簡短的回答 - 既然你有兩組要比較(Temp_thresholdTRUE和Temp_thresholdFalse),迴歸會隱式計算一個相對於另一個的coeff,沒有兩個係數。因此,Temp_thresholdTRUE的係數將TemperatureTRUE與TemperatureFALSE(假定其對簡單性沒有影響)相比的效果進行量化。 – keegan 2015-02-06 19:17:03

0

這是你的第三個想法,這是統計學上一個合適的例子。你是正確的因素。

> df <- data.frame(Value = runif(100, min = 0, max = 10), Temperature = runif(100, min = 50, max = 90)) 
> df$Threshold <- with(df, factor(ifelse(Temperature > 55, 1, 0))) 
> m <- lm(Value ~ Threshold, data = df) 
> summary(m) 

Call: 
lm(formula = Value ~ Threshold, data = df) 

Residuals: 
    Min  1Q Median  3Q  Max 
-4.9916 -2.1260 0.1069 2.4733 4.8550 

Coefficients: 
      Estimate Std. Error t value Pr(>|t|)  
(Intercept) 5.4835  0.8155 6.724 1.19e-09 *** 
Threshold1 -0.7074  0.8645 -0.818 0.415  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 2.705 on 98 degrees of freedom 
Multiple R-squared: 0.006787, Adjusted R-squared: -0.003347 
F-statistic: 0.6697 on 1 and 98 DF, p-value: 0.4151  
+0

所以如果我把這個結果寫成一個模型,高溫和低溫的係數是多少?例如,在我原來的文章中,我有B1和B2高溫和低溫係數,根據指標 – 2015-02-06 18:19:11

+0

@DellM'打開'或'關閉''閾值'變量是一個指標(或「虛擬」 )當溫度> 55時爲1,否則爲0。因此,解釋是如果「溫度」超過55,則使用「閾值」的係數,否則您將乘以「閾值」的值,即0,因此該項將爲0. – mlegge 2015-02-06 18:27:33

+0

我可以添加另一個術語是用來描述55以下溫度的貢獻,以及55以上的溫度貢獻? – 2015-02-06 18:43:07