Python金融大資料分析 回歸分析

2021-07-25 07:17:23 字數 2143 閱讀 5624

回歸分析是金融中乙個繞不過的話題,其實最好的工具應該是r語言,但是pandas其實也是能夠勝任絕大部分工作的。

這裡我們就簡單介紹一下。

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

noise = np.random.normal(0,12,100)

x= np.array(range(100))

y = 0.7*x + noise

pp = pd.dataframe()

model = pd.ols(y=pp['yvalue'],x=pp['xvalue'])

print model

plt.plot(x,y,'r.')

plt.plot(x,model.beta[1]+model.beta[0]*x,'b')

**很簡單,不用做過多的解釋

我們可以看一下程式的輸出,以及圖形上的表示。

這裡,pandas的回歸給出了上圖的分析。決策係數是0.7621,調整後的是0.7597,不過筆者這裡有乙個疑問,一元線性回歸的調整係數有意義嗎?

p-value很小,越小越拒絕,所以,我們拒絕原假設,換句話說,這裡的水平是顯著的。我們可以看到,我們程式中x和y的關係是沒有intercept項的,但是在回歸的時候卻產生了。但是我們可以看到,他的p-value是很大的,所以,講道理我們是可以拒絕原假設,換句話說,截距項是不顯著的,也就是說,我們不能承認這一截距項是對的。

然後繪製乙個圖,直觀的看一下回歸的過程,總的來說,效果還是很好的。當然,如果我們用的是真實世界的資料,恐怕就不會那麼好了吧。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

#定義乙個函式,用於回歸

def f(x):

return np.sin(x) + 0.5*x

#對x抽樣

x = np.linspace(-2*np.pi,2*np.pi,50)

#利用一階線性進行回歸

reg = np.polyfit(x,f(x),deg = 1)

#rg就是回歸之後的y的取值

ry = np.polyval(reg,x)

plt.plot(x,f(x),'b')

plt.plot(x,ry,'r.')

numpy中的擬合更加具有實用意義,其實我們可以改變deg來進行不同階的多項式的擬合。

既然我們可以進行多項式擬合,那麼也就可以給出不同的擬合基函式。

上面的例子中,我們的曲線實際上是由sin函式和x組合的,所以,假設我們知道了這樣的情況,然後,選好這樣的兩個基,然後進行回歸擬合,應該會得到更加好的效果,而實際上也確實是這樣的。

matrix = np.zeros((2,len(x)))

matrix[1,:] = np.sin(x)

matrix[0,:] = x

reg = np.linalg.lstsq(matrix.t,f(x))[0]

print reg

ry = np.dot(reg,matrix)

plt.plot(x,f(x),'b')

plt.plot(x,ry,'r.')

在上面的**中,我們首先初始化了乙個matrix,這個matrix就是用來儲存我們的基的。乙個是sin乙個是x。然後用linalg,線性模擬函式,最小化平方和的方法獲取reg,然後用dot方法或者擬合後的y值,如果對矩陣或者線性代數很了解的話,這一過程應該是可以很容易就理解的。

我們繪製出來後是這樣的結果。

發現擬合的非常完美,然後擬合係數列印出來後時候0.5與1,這和我們設定的完全一樣。

《Python 金融大資料分析 python簡介》

1.風格 編輯python在設計上堅持了清晰劃一的風格,這使得python成為一門易讀 易維護,並且被大量使用者所歡迎的 用途廣泛的 語言。設計者開發時總的指導思想是,對於乙個特定的問題,只要有一種最好的方法來解決就好了。這在由tim peters寫的python格言 稱為the zen of py...

python資料分析回歸演算法

1,線性回歸,多元回歸,邏輯回歸 回歸即用乙個函式 資料之間的關係。線性回歸指用線性函式的方式來研究變數之間關係。多元回歸是指線性函式中變數有多個。邏輯回歸是線性回歸的拓展,資料分析中有兩類問題 回歸和分類。回歸的問題採用回歸的方法,分類的問題採用分類的方法。邏輯回歸是用線性回歸的方法來 分類問題。...

《Hadoop金融大資料分析》讀書筆記

hadoop金融大資料分析 hadoop for finance essentials 使用hadoop,是因為資料量大 資料量如此之多,以至於無法用傳統的資料處理工具和應用來處理的資料稱主大資料 3v定義 即 大量volume,多樣variety,高速velocity是與大資料相關的三個屬性或維度...