一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

R語(yǔ)言邏輯回歸Logistic回歸分析預(yù)測(cè)股票漲跌

 拓端數(shù)據(jù) 2021-08-17

原文鏈接:http:///?p=23449 

本文回答了關(guān)于邏輯回歸的問(wèn)題:它與線性回歸有什么不同,如何在R中用glm()函數(shù)擬合和評(píng)估這些模型等等?

Logistic回歸是機(jī)器學(xué)習(xí)從統(tǒng)計(jì)學(xué)領(lǐng)域的一種技術(shù)。它是用一個(gè)或多個(gè)解釋變量對(duì)二項(xiàng)式結(jié)果進(jìn)行建模的一種強(qiáng)大的統(tǒng)計(jì)方法。它通過(guò)使用邏輯函數(shù)估計(jì)概率來(lái)衡量分類因變量和一個(gè)或多個(gè)自變量之間的關(guān)系,這就是邏輯分布。

本R教程將指導(dǎo)你完成邏輯回歸的簡(jiǎn)單執(zhí)行。

  • 你將首先探索邏輯回歸背后的理論:你將了解更多關(guān)于與線性回歸的區(qū)別以及邏輯回歸模型的樣子。你還會(huì)發(fā)現(xiàn)多指標(biāo)和序數(shù)邏輯回歸。

  • 接下來(lái),你將解決R中的邏輯回歸問(wèn)題:你不僅要探索一個(gè)數(shù)據(jù)集,還要使用R中強(qiáng)大的glm()函數(shù)擬合邏輯回歸模型,評(píng)估結(jié)果并解決過(guò)擬合問(wèn)題。

提示:如果你有興趣將你的線性回歸技能提高到一個(gè)新的水平,也可以考慮參加我們的R語(yǔ)言課程!

回歸分析:簡(jiǎn)介

邏輯回歸是一種回歸分析技術(shù)?;貧w分析是一套統(tǒng)計(jì)過(guò)程,你可以用它來(lái)估計(jì)變量之間的關(guān)系。更具體地說(shuō),你用這套技術(shù)來(lái)模擬和分析一個(gè)因變量和一個(gè)或多個(gè)自變量之間的關(guān)系?;貧w分析幫助你了解當(dāng)一個(gè)自變量被調(diào)整而其他變量被固定時(shí),因變量的典型值如何變化。

正如你已經(jīng)讀到的,有各種回歸技術(shù)。你可以通過(guò)觀察三個(gè)方面來(lái)區(qū)分它們:自變量的數(shù)量、因變量的類型和回歸線的形狀。

線性回歸

線性回歸是最廣為人知的建模技術(shù)之一。簡(jiǎn)而言之,它允許你使用線性關(guān)系來(lái)預(yù)測(cè)Y的(平均)數(shù)值,對(duì)于X的一個(gè)給定值,用一條直線。這條線被稱為 "回歸線"。

因此,線性回歸模型是y=ax+b。該模型假設(shè)因變量y是定量的。然而,在許多情況下,因變量是定性的,或者換句話說(shuō),是分類的。例如,性別是定性的,取值為男性或女性。

預(yù)測(cè)一個(gè)觀察值的定性反應(yīng)可以被稱為對(duì)該觀察值進(jìn)行分類,因?yàn)樗婕暗綄⒂^察值分配到一個(gè)類別或等級(jí)。另一方面,經(jīng)常用于分類的方法首先預(yù)測(cè)定性變量的每個(gè)類別的概率,作為進(jìn)行分類的基礎(chǔ)。

線性回歸不能夠預(yù)測(cè)概率。例如,如果你使用線性回歸為二元因變量建模,所產(chǎn)生的模型可能不會(huì)將預(yù)測(cè)的Y值限制在0和1之內(nèi)。這里就是邏輯回歸發(fā)揮作用的地方,你可以得到一個(gè)反映事件發(fā)生概率的概率分?jǐn)?shù)。

Logistic邏輯回歸

邏輯回歸是分類技術(shù)的一個(gè)實(shí)例,你可以用它來(lái)預(yù)測(cè)一個(gè)定性的反應(yīng)。更具體地說(shuō),邏輯回歸是對(duì)性別屬于某個(gè)特定類別的概率建模。

這意味著,如果你想做性別分類,其中反應(yīng)性別屬于男性或女性這兩個(gè)類別中的一個(gè),你將使用邏輯回歸模型來(lái)估計(jì)性別屬于某個(gè)特定類別的概率。

例如,給定長(zhǎng)頭發(fā)的性別的概率可以寫成:。

Pr(gender=female|longhair)(縮寫為p(longhair))的值將在0和1之間。那么,對(duì)于任何給定的longhair值,可以對(duì)性別進(jìn)行預(yù)測(cè)。

鑒于X是解釋變量,Y是因變量,那么你應(yīng)該如何建立p(X)=Pr(Y=1|X)和X之間的關(guān)系模型?線性回歸模型表示這些概率為。

這種方法的問(wèn)題是,任何時(shí)候?qū)幋a為0或1的二元因變量進(jìn)行直線擬合,原則上我們總是可以預(yù)測(cè)X的某些值的p(X)<0,其他值的p(X)>1。

為了避免這個(gè)問(wèn)題,你可以使用logistic函數(shù)來(lái)建立p(X)的模型,對(duì)于X的所有值,它的輸出在0和1之間。

對(duì)數(shù)函數(shù)總是會(huì)產(chǎn)生一個(gè)S型曲線,所以無(wú)論X的值是多少,我們都會(huì)得到一個(gè)合理的預(yù)測(cè)。

上述方程也可以重構(gòu)為:

數(shù)量

被稱為幾率比,可以在0和∞之間取任何值。接近0和∞的幾率值分別表示p(X)的概率非常低和非常高。

通過(guò)從上式中對(duì)兩邊取對(duì)數(shù),你可以得到。

左手邊被稱為L(zhǎng)ogit。在一個(gè)邏輯回歸模型中,增加一個(gè)單位的X會(huì)使對(duì)數(shù)改變?chǔ)?。但無(wú)論X的價(jià)值如何,如果β1是正的,那么增加X(jué)將與增加P(X)相關(guān),如果β1是負(fù)的,那么增加X(jué)將與減少P(X)相關(guān)。

系數(shù)β0和β1是未知的,必須根據(jù)現(xiàn)有的訓(xùn)練數(shù)據(jù)來(lái)估計(jì)。對(duì)于邏輯回歸,你可以使用最大似然,一種強(qiáng)大的統(tǒng)計(jì)技術(shù)。讓我們?cè)賮?lái)看看你的性別分類的例子。

你尋求β0和β1的估計(jì)值,將這些估計(jì)值插入p(X)的模型中,對(duì)于所有的女性樣本,產(chǎn)生一個(gè)接近于1的數(shù)字,對(duì)于所有的非女性樣本,產(chǎn)生一個(gè)接近于0的數(shù)字。

可以用一個(gè)叫做似然函數(shù)的數(shù)學(xué)方程來(lái)正式化。

選擇估計(jì)值β0和β1是為了使這個(gè)似然函數(shù)最大化。一旦系數(shù)被估計(jì)出來(lái),你就可以簡(jiǎn)單地計(jì)算出在任何長(zhǎng)發(fā)的情況下是女性的概率。總的來(lái)說(shuō),最大似然法是擬合非線性模型的一個(gè)非常好的方法。

多項(xiàng)式Logistic回歸

到目前為止,本教程只關(guān)注了二項(xiàng)式邏輯回歸,因?yàn)槟闶菍?shí)例分類為男性或女性。多項(xiàng)式Logistic回歸模型是二項(xiàng)式Logistic回歸模型的一個(gè)簡(jiǎn)單擴(kuò)展,當(dāng)探索性變量有兩個(gè)以上的名義(無(wú)序)類別時(shí),你可以使用該模型。

在多項(xiàng)式邏輯回歸中,探索性變量被虛擬編碼為多個(gè)1/0變量。除了一個(gè)類別外,所有類別都有一個(gè)變量,所以如果有M個(gè)類別,就會(huì)有M-1M-1個(gè)虛擬變量。每個(gè)類別的虛擬變量在其類別中的值為1,在所有其他類別中的值為0。有一個(gè)類別,即參考類別,不需要它自己的虛擬變量,因?yàn)樗怯伤衅渌兞慷际?來(lái)唯一識(shí)別的。

然后,多叉邏輯回歸為每個(gè)虛擬變量估計(jì)一個(gè)單獨(dú)的二元邏輯回歸模型。結(jié)果是M-1M-1二元邏輯回歸模型。每個(gè)模型都傳達(dá)了預(yù)測(cè)因素對(duì)該類別成功概率的影響,與參考類別相比較。

有序logistic邏輯回歸

除了多叉邏輯回歸,你還有有序邏輯回歸,它是二叉邏輯回歸的另一個(gè)延伸。有序回歸是用來(lái)預(yù)測(cè)具有 "有序 "的多個(gè)類別和自變量的因變量。你已經(jīng)在這種類型的邏輯回歸的名稱中看到了這一點(diǎn),因?yàn)?"有序 "意味著 "類別的順序"。

換句話說(shuō),它被用來(lái)分析因變量(有多個(gè)有序?qū)哟危┡c一個(gè)或多個(gè)自變量的關(guān)系。

例如,你正在進(jìn)行客戶訪談,評(píng)估他們對(duì)我們新發(fā)布產(chǎn)品的滿意度。你的任務(wù)是向受訪者提出一個(gè)問(wèn)題,他們的答案介于滿意-滿意或不滿意-非常不滿意之間。為了很好地概括答案,你在回答中加入了一些等級(jí),如非常不滿意,不滿意,中立,滿意,非常滿意。這有助于你觀察類別中的自然秩序。

用glm進(jìn)行R語(yǔ)言的Logistic回歸

在本節(jié)中,你將研究一個(gè)二元邏輯回歸的例子,你將用ISLR包解決這個(gè)問(wèn)題,它將為你提供數(shù)據(jù)集,glm()函數(shù)一般用于擬合廣義線性模型,將用于擬合邏輯回歸模型。

加載數(shù)據(jù)

首先要做的是安裝和加載ISLR包,它有你要使用的所有數(shù)據(jù)集。

在本教程中,你將使用股市數(shù)據(jù)集。該數(shù)據(jù)集顯示了2001年至2005年間標(biāo)準(zhǔn)普爾500股票指數(shù)的每日收益率。

探索數(shù)據(jù)

讓我們來(lái)探索一下。names()對(duì)于查看數(shù)據(jù)框上的內(nèi)容很有用,head()是對(duì)前幾行的一瞥,而summary()也很有用。

 

summary()函數(shù)為你提供了數(shù)據(jù)框架上每個(gè)變量的簡(jiǎn)單總結(jié)。你可以看到有成交量,收盤價(jià),和漲跌方向。你將使用 "漲跌方向 "作為因變量,因?yàn)樗@示了自前一天以來(lái)市場(chǎng)是上漲還是下跌。

數(shù)據(jù)的可視化

數(shù)據(jù)可視化也許是總結(jié)和了解你的數(shù)據(jù)的最快和最有用的方法。你將從單獨(dú)探索數(shù)字變量開始。

直方圖提供了一個(gè)數(shù)字變量的柱狀圖,它被分成若干個(gè)部分,其高度顯示了屬于每個(gè)部分的實(shí)例的數(shù)量。它們對(duì)于獲得一個(gè)屬性的分布特征是很有用的。

for(i in 1:8)hist(Smarket\[,i\]

這是極難看到的,但大多數(shù)變量顯示出高斯或雙高斯的分布。

你可以用盒狀圖和盒須圖以不同的方式來(lái)觀察數(shù)據(jù)的分布。盒子包括了數(shù)據(jù)的中間50%,線顯示了中位數(shù),圖中的須線顯示了數(shù)據(jù)的合理范圍。任何在須線之外的點(diǎn)都是離群值。

for(i in 1:8) boxplot(Smarket\[,i\]

你可以看到,Lags和Today都有一個(gè)類似的范圍。除此之外,沒(méi)有任何離群值的跡象。

缺失數(shù)據(jù)對(duì)建模有很大影響。因此,你可以使用缺失圖來(lái)快速了解數(shù)據(jù)集中的缺失數(shù)據(jù)量。X軸顯示屬性,Y軸顯示實(shí)例。水平線表示一個(gè)實(shí)例的缺失數(shù)據(jù),垂直塊表示一個(gè)屬性的缺失數(shù)據(jù)。

mis( col=c("blue""red")

在這個(gè)數(shù)據(jù)集中沒(méi)有缺失數(shù)據(jù)!

讓我們開始計(jì)算每一對(duì)數(shù)字變量之間的相關(guān)性。這些成對(duì)的相關(guān)關(guān)系可以繪制在相關(guān)矩陣圖中,了解哪些變量在一起變化。

corrplot(correlations, method="circle")

使用點(diǎn)表示法,藍(lán)色代表正相關(guān),紅色代表負(fù)相關(guān)。點(diǎn)越大,相關(guān)度越大。你可以看到矩陣是對(duì)稱的,對(duì)角線是完全正相關(guān)的,因?yàn)樗@示了每個(gè)變量與自身的相關(guān)性。但是,沒(méi)有一個(gè)變量是相互關(guān)聯(lián)的。

我們來(lái)做一個(gè)數(shù)據(jù)圖。有一個(gè)pair()函數(shù)可以將Smarket中的變量繪制成一個(gè)散點(diǎn)圖矩陣。在這種情況下,"漲跌方向",你的二元因變量,是顏色指標(biāo)。

看起來(lái)這里沒(méi)有什么關(guān)聯(lián)性。該類變量來(lái)自于變量今日收益,所以漲和跌做了劃分。

讓我們來(lái)看看按方向值細(xì)分的每個(gè)變量的密度分布。像上面的散點(diǎn)圖矩陣一樣,按方向繪制的密度圖可以幫助看到漲和跌的方向。它還可以幫助了解一個(gè)變量的方向的重疊情況。

Plot(x=xy=yplot="density"scales=scales)

你可以看到,所有這些變量的方向值都是重疊的,這意味著僅憑一兩個(gè)變量很難預(yù)測(cè)上漲或下跌。

建立Logistic回歸模型

現(xiàn)在你調(diào)用glm.fit()函數(shù)。你傳遞給這個(gè)函數(shù)的第一個(gè)參數(shù)是一個(gè)R公式。在這種情況下,該公式表明方向是因變量,而滯后和成交量變量是預(yù)測(cè)因素。正如你在介紹中看到的,glm通常用于擬合廣義線性模型。

然而,在這種情況下,你需要明確表示你想擬合一個(gè)邏輯回歸模型。你通過(guò)將族參數(shù)設(shè)置為二項(xiàng)式來(lái)解決這個(gè)問(wèn)題。這樣,你就告訴glm()把擬合一個(gè)邏輯回歸模型,而不是可以擬合glm的許多其他模型中的一個(gè)。

接下來(lái),你可以做一個(gè)summary(),它告訴你一些關(guān)于擬合的信息。

正如你所看到的,summary()返回每個(gè)系數(shù)的估計(jì)值、標(biāo)準(zhǔn)誤差、z-score和p值。看上去沒(méi)有一個(gè)系數(shù)是顯著的。它還給出了無(wú)效偏差(僅指平均值的偏差)和殘差偏差(包含所有預(yù)測(cè)因素的模型的偏差)。兩者之間的差異非常小,而且有6個(gè)自由度。

你把glm.fit()的預(yù)測(cè)結(jié)果分配給glm.probs,類型等于因變量。這將對(duì)你用來(lái)擬合模型的訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)測(cè),并給我一個(gè)擬合概率的向量。

你看一下前5個(gè)概率,它們非常接近50%。

probs\[1:5\]

現(xiàn)在我將根據(jù)滯后期和其他預(yù)測(cè)因素對(duì)市場(chǎng)是上漲還是下跌做出預(yù)測(cè)。特別是,我將通過(guò)0.5的閾值將概率變成分類。為了做到這一點(diǎn),我使用ifelse()命令。

 ifelse(probs > 0.5"Up""Down")

glm.pred是一個(gè)真和假的向量。如果glm.probs大于0.5,glm.pred調(diào)用 "Up";否則,調(diào)用 "False"。

在這里,你附上數(shù)據(jù)框架Smarket,并制作一個(gè)glm.pred的表格,這是上一個(gè)方向的上漲和下跌。你還可以取其中的平均值。

從表中看,對(duì)角線上的實(shí)例是你獲得正確分類的地方,而對(duì)角線外的實(shí)例是你分類錯(cuò)誤的地方。看起來(lái)你犯了很多錯(cuò)誤。平均值給出的比例是0.52。

創(chuàng)建訓(xùn)練樣本和測(cè)試樣本

你怎么能做得更好呢?把數(shù)據(jù)分成訓(xùn)練集和測(cè)試集是一個(gè)好的策略。

#  生成訓(xùn)練和測(cè)試集
train = Year<2005
predict(glm.fit,
                    newdata = Smarket\[!train,\],
                    type = "response")

讓我們?cè)敿?xì)看看這個(gè)代碼塊。

  • train等于比2005年少的那一年。對(duì)于所有小于2005年的年份,你會(huì)得到一個(gè)true;否則,我會(huì)得到一個(gè)false。

  • 然后你用glm.fit()重新擬合模型,只是子集等于'train',這意味著它只擬合小于2005年的數(shù)據(jù)。

  • 然后你再次對(duì)glm.probs使用predict()函數(shù)來(lái)預(yù)測(cè)大于或等于2005年的剩余數(shù)據(jù)。對(duì)于新的數(shù)據(jù),你給了它Smarket,用!"train "作為索引(如果年份大于或等于2005,train為真)。你將類型設(shè)置為 "因變量 "以預(yù)測(cè)概率。

  • 最后,你對(duì)glm.pred再次使用ifelse()函數(shù)來(lái)生成上漲和下跌變量。

你現(xiàn)在做一個(gè)新的變量來(lái)存儲(chǔ)測(cè)試數(shù)據(jù)的新子集,并把它叫做Direction.2005。因變量仍然是方向。你制作一個(gè)表格并計(jì)算這個(gè)新測(cè)試集的平均值。

Direction.2005 = Direction\[!train\]

比以前的情況還糟糕。怎么會(huì)出現(xiàn)這種情況?

解決過(guò)度擬合的問(wèn)題

好吧,你可能對(duì)數(shù)據(jù)進(jìn)行了過(guò)度擬合。為了解決這個(gè)問(wèn)題,你要擬合一個(gè)較小的模型,使用Lag1、Lag2、Lag3作為預(yù)測(cè)因子,從而撇開所有其他變量。代碼的其余部分是一樣的。

#擬合一個(gè)較小的模型
glm(family = binomial, subset = train)

好吧,你得到了59%的分類率,不算太差。使用較小的模型似乎表現(xiàn)得更好。

最后,你對(duì)glm.fit做一個(gè)summary(),看看是否有任何明顯的變化。

沒(méi)有什么變得很重要,至少P值更好了,表明對(duì)性能的預(yù)測(cè)有所提高。

結(jié)語(yǔ)

所以,這個(gè)關(guān)于使用glm()函數(shù)和設(shè)置族為二項(xiàng)式建立邏輯回歸模型的R教程就結(jié)束了。glm()并不假設(shè)因變量和自變量之間的線性關(guān)系。然而,它假定logit模型中的鏈接函數(shù)和自變量之間存在線性關(guān)系,我希望你能學(xué)到有價(jià)值的東西。


    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    香蕉尹人视频在线精品| 亚洲欧洲成人精品香蕉网| 伊人网免费在线观看高清版| 日本国产欧美精品视频| 国产超薄黑色肉色丝袜| 国产免费一区二区三区av大片| 九九热国产这里只有精品| 成人三级视频在线观看不卡| 99视频精品免费视频| 99热九九在线中文字幕| 日韩中文字幕狠狠人妻| 亚洲高清一区二区高清| 色婷婷国产熟妇人妻露脸| 在线视频免费看你懂的| 四季精品人妻av一区二区三区 | 日本午夜一本久久久综合| 精品综合欧美一区二区三区| 国产一区二区三区色噜噜| 日韩欧美综合中文字幕| 翘臀少妇成人一区二区| 国产亚洲欧美一区二区| 国产人妻精品区一区二区三区| 亚洲国产丝袜一区二区三区四| 日韩色婷婷综合在线观看| 蜜桃传媒在线正在播放| 日本三区不卡高清更新二区| 国产精品免费视频久久| 黄片三级免费在线观看| 日韩人妻一区中文字幕| 九九热视频免费在线视频| 日本成人中文字幕一区| 日韩精品免费一区三区| 亚洲一区二区三区中文久久| 老司机精品一区二区三区| 不卡视频免费一区二区三区| 国产又粗又长又大的视频| 亚洲欧美日韩国产成人| 日本一本不卡免费视频| 日韩一区中文免费视频| 五月婷婷缴情七月丁香| 熟女中文字幕一区二区三区|