Python金融系列第五篇:多元线性回归和残差分析

浅析多元回归中的“三差”:离差(Deviation)、残差(Residual)与误差(Error) 文章目录1. 综述2. 误差(Error)——模型的总体性质3. 离差(Deviation)——因变量真实值与平均值之间的差4. 残差(Residual)——因变量真实值与模型拟合值之间的差5. 三者之间的关系5.1 残差 V.S. 离差5.2 残差 V.S. 误差5.3 离差 V.S. 误差写在最后 1. 综述 有不少小伙伴在初学多元回归模型的时候,会被一些术语搞得晕头转向,其中就包括经常出现... 阅读详情

作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai


第一篇:计算股票回报率,均值和方差

第二篇:简单线性回归

第三篇:随机变量和分布

第四篇:置信区间和假设检验

第五篇:多元线性回归和残差分析

第六篇:现代投资组合理论

第七篇:市场风险

第八篇:Fama-French 多因子模型


介绍

在前某章中,我们介绍了简单的线性回归,它只有一个自变量。在本章中,我们将学习具有多个自变量的线性回归。

简单的线性回归模型以下列形式编写:

Y = α + β X + ϵ Y = \alpha + \beta X + \epsilon Y=α+βX+ϵ

具有 p 个变量的多元线性回归模型可以由下面的公式给出:

Y = α + β 1 X 1 + β 2 X 2 + β 3 X 3 + ⋯ + β p X p + ϵ Y = \alpha + \beta_{1}X_{1}+ \beta_{2}X_{2}+ \beta_{3}X_{3}+ \cdots + \beta_{p}X_{p} + \epsilon Y=α+β1​X1​+β2​X2​+β3​X3​+⋯+βp​Xp​+ϵ

Python 实现

在上一章中,我们使用标普500指数来预测亚马逊股票收益率。现在我们将添加更多变量来改进模型的预测。特别是,我们将考虑亚马逊的竞争对手。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.formula.api as sm
from pandas_datareader import data as pdr
import fix_yahoo_finance as yf

# Get stock prices
spy_table  = pdr.get_data_yahoo("SPY")
amzn_table = pdr.get_data_yahoo("AMZN")
ebay_table = pdr.get_data_yahoo("EBAY")
wal_table  = pdr.get_data_yahoo("WMT")
aapl_table = pdr.get_data_yahoo("AAPL")

然后我们从 2016 年开始获取收盘价:

spy  = spy_table .loc['2016',['Close']]
amzn = amzn_table.loc['2016',['Close']]
ebay = ebay_table.loc['2016',['Close']]
wal  = wal_table .loc['2016',['Close']]
aapl = aapl_table.loc['2016',['Close']]

在获取每个股票的日志返回后,我们将它们连接成一个 DataFrame,并打印出最后五行:

spy_log  = np.log(spy.Close) .diff().dropna()
amzn_log = np.log(amzn.Close).diff().dropna()
ebay_log = np.log(ebay.Close).diff().dropna()
wal_log  = np.log(wal.Close) .diff().dropna()
aapl_log = np.log(aapl.Close).diff().dropna()
df = pd.concat([spy_log,amzn_log,ebay_log,wal_log,aapl_log],axis = 1).dropna()
df.columns = ['SPY', 'AMZN', 'EBAY', 'WAL', 'AAPL']
df.tail()
SPYAMZNEBAYWALAAPL
Date
2016-12-230.001463-0.0075310.008427-0.0007190.001976
2016-12-270.0024780.0141130.0149930.0022980.006331
2016-12-28-0.0082990.000946-0.007635-0.005611-0.004273
2016-12-29-0.000223-0.009081-0.001000-0.000722-0.000257
2016-12-30-0.003662-0.020172-0.009720-0.002023-0.007826

跟以前一样,我们使用 statsmodels 包来执行简单的线性回归:

import statsmodels.formula.api as sm
simple = sm.ols(formula = 'amzn ~ spy',data = df).fit()
print(simple.summary()) 
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                   amzn   R-squared:                       0.230
Model:                            OLS   Adj. R-squared:                  0.227
Method:                 Least Squares   F-statistic:                     74.46
Date:                Tue, 09 Oct 2018   Prob (F-statistic):           7.44e-16
Time:                        11:55:12   Log-Likelihood:                 680.94
No. Observations:                 251   AIC:                            -1358.
Df Residuals:                     249   BIC:                            -1351.
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept      0.0002      0.001      0.196      0.845      -0.002       0.002
spy            1.0661      0.124      8.629      0.000       0.823       1.309
==============================================================================
Omnibus:                       67.332   Durbin-Watson:                   2.018
Prob(Omnibus):                  0.000   Jarque-Bera (JB):             2026.389
Skew:                          -0.074   Prob(JB):                         0.00
Kurtosis:                      16.919   Cond. No.                         121.
==============================================================================

同样,我们可以构建一个多元线性回归模型:

import statsmodels.formula.api as sm
model = sm.ols(formula = 'amzn ~ spy + ebay + wal',data = df).fit()
print(model.summary()) 
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                   amzn   R-squared:                       0.250
Model:                            OLS   Adj. R-squared:                  0.238
Method:                 Least Squares   F-statistic:                     20.52
Date:                Tue, 09 Oct 2018   Prob (F-statistic):           1.32e-14
Time:                        13:23:15   Log-Likelihood:                 684.25
No. Observations:                 251   AIC:                            -1358.
Df Residuals:                     246   BIC:                            -1341.
Df Model:                           4                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept      0.0002      0.001      0.229      0.819      -0.002       0.002
spy            1.0254      0.170      6.038      0.000       0.691       1.360
ebay          -0.0774      0.058     -1.325      0.186      -0.193       0.038
wal           -0.0838      0.089     -0.943      0.346      -0.259       0.091
aapl           0.1576      0.084      1.883      0.061      -0.007       0.322
==============================================================================
Omnibus:                       69.077   Durbin-Watson:                   1.983
Prob(Omnibus):                  0.000   Jarque-Bera (JB):             1890.930
Skew:                          -0.272   Prob(JB):                         0.00
Kurtosis:                      16.435   Cond. No.                         179.
==============================================================================

从上表中我们可以看出,ebay,walmart 和 apple 的 p 值分别是 0.186,0.346,0.061,因此在 95% 置信水平下他们都不显著。多元回归模型具有比简单模型更高的 R 2 R^{2} R2 ,0.254 VS 0.234。实际上, R 2 R^{2} R2 不会随着变量数量的增加而减少。为什么呢?如果在我们的回归模型中添加一个额外的变量,但它无法解释响应中的变化(amzn),那么它的估计系数将只是零。就好像该变量从未包含在模型中一样,因此 R 2 R^{2} R2 不会改变。但是,添加数百个变量并不总是更好,这个问题我们会在后续章节中讨论。

我们可以进一步改进模型吗?在这里,我们尝试 Fama-French 5因子模型,这是资产定价理论中的一个重要模型。我们将会在后面的教程中介绍。数据下载地址

path = './F-F_Research_Data_5_Factors_2x3_daily.CSV'
fama_table = pd.read_csv(path)

# Convert time column into index
fama_table.index = [datetime.strptime(str(x), "%Y%m%d")
                    for x in fama_table.iloc[:,0]]
# Remove time column
fama_table = fama_table.iloc[:,1:]

通过这些数据,我们可以构建一个 Fama-French 因子模型:

fama = fama_table['2016']
fama = fama.rename(columns = {'Mkt-RF':'MKT'})
fama = fama.apply(lambda x: x/100)
fama_df = pd.concat([fama, amzn_log], axis = 1)
fama_model = sm.ols(formula = 'Close~MKT+SMB+HML+RMW+CMA', data = fama_df).fit()
print(fama_model.summary())
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  Close   R-squared:                       0.387
Model:                            OLS   Adj. R-squared:                  0.375
Method:                 Least Squares   F-statistic:                     30.96
Date:                Tue, 09 Oct 2018   Prob (F-statistic):           2.24e-24
Time:                        13:46:31   Log-Likelihood:                 709.57
No. Observations:                 251   AIC:                            -1407.
Df Residuals:                     245   BIC:                            -1386.
Df Model:                           5                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept      0.0010      0.001      1.027      0.305      -0.001       0.003
MKT            0.9614      0.125      7.692      0.000       0.715       1.208
SMB           -0.5891      0.182     -3.235      0.001      -0.948      -0.230
HML           -0.1342      0.211     -0.636      0.525      -0.550       0.282
RMW           -0.4852      0.264     -1.840      0.067      -1.005       0.034
CMA           -1.5543      0.324     -4.797      0.000      -2.193      -0.916
==============================================================================
Omnibus:                       69.466   Durbin-Watson:                   1.937
Prob(Omnibus):                  0.000   Jarque-Bera (JB):             2013.541
Skew:                           0.241   Prob(JB):                         0.00
Kurtosis:                      16.867   Cond. No.                         399.
==============================================================================

Fama-French 5因子模型的 R 2 R^2 R2 值更高,为 0.387。我们可以将简单线性回归和 Fama-French 多元回归的预测进行比较,将它们绘制在一个图表上:

result = pd.DataFrame({'simple regression': simple.predict(),
                       'fama_french': fama_model.predict(),
                       'sample': df.amzn}, index = df.index)

# Feel free to adjust the chart size
plt.figure(figsize = (15,7.5))
plt.plot(result['2016-7':'2016-9'].index,result.loc['2016-7':'2016-9','simple regression'])
plt.plot(result['2016-7':'2016-9'].index,result.loc['2016-7':'2016-9','fama_french'])
plt.plot(result['2016-7':'2016-9'].index,result.loc['2016-7':'2016-9','sample'])
plt.legend()
plt.show()

在这里插入图片描述

虽然从上图中很难看出,多元回归的预测回报更接近实际回报。通常我们不会绘制预测来确定哪个模型更好。

模型意义测试

我们可以执行假设检验:F 检验。而不是使用 R 2 R^{2} R2 来评估我们的回归模型是否适合数据。F检验的零假设和替代假设是:

H 0 : β 1 = β 2 = ⋯ = β p = 0 H_{0} : \beta_{1} = \beta_{2} = \cdots = \beta_{p} = 0 H0​:β1​=β2​=⋯=βp​=0

H 1 : A t l e a s t o n e c o e f f i c i e n t i s n o t 0 H_{1} : At least one coefficient is not 0 H1​:Atleastonecoefficientisnot0

我们不会再这里详细解释 F 检验程序。你只需要了解 null 和替代假设。在 F 检验的汇总表中,‘F-statistic’ 是 F 分数,而 ‘prob (F-statistic)’ 是 p 值。在 Fama-French 模型上进行这个测试,我们得到一个 p 值为 2.21e-24,所以我们几乎可以肯定至少有一个系数不是 0。如果 p 值大于 0.05,你应该考虑用其他自变量重建模型。在简单线性回归中,F检验等效于斜率上的 t 检验,因此它们的 p 值将是相同的。

残差分析

线性回归要求预测变量和响应具有线性关系。无论预测变量 X 1 , ⋯   , X p X_{1}, \cdots , X_{p} X1​,⋯,Xp​ 采用什么值,这个假设都保留残差平均为零。通常,它也假设残差是独立的,并且通常以相同的方差(同方差性)分布 ,因此我们可以构建预测区间。为了检查这些假设是否成立,我们需要分析残差。在统计套利中,残差分析也可用于生成信号。

常态

线性模型的残差通常具有正太分布。我们可以绘制残差密度来检查正态性:

plt.figure()
#ols.fit().model is a method to access to the residual.
fama_model.resid.plot.density()
plt.show()

在这里插入图片描述

从图中可以看出,残差是正太分布的。顺便说一句,残差平均值始终为零,达到机器精度:

print('Residual mean:', np.mean(fama_model.resid))
#[out]: Residual mean: -2.3133332345775173e-16
print('Residual variance:', np.var(fama_model.resid))
#[out]: Residual variance: 0.00020513219588900726
同方差(Homoskedasticity)

这个词英文太难念了,但是不难理解。这意味着残差对于 X 的所有值具有相同的方差。否则我们说 “异方差性” 被检测到。

plt.figure(figsize = (20,10))
plt.scatter(df.spy,simple.resid)
plt.axhline(0.05)
plt.axhline(-0.05)
plt.xlabel('x value')
plt.ylabel('residual')
plt.show()

在这里插入图片描述

从图表中可以看出,残差的方差不会随着 X 而增加。这三个异常值并没有改变我们的结论。虽然我们可以绘制残差用于简单回归,但我们不能对多元回归进行绘制,因此我们使用 statsmodels 来测试异方差性:

from statsmodels.stats import diagnostic as dia
het = dia.het_breuschpagan(fama_model.resid,fama_df[['MKT','SMB','HML','RMW','CMA']][1:])
print('p-value: ', het[-1])
#[out]:p-value of Heteroskedasticity:  0.14396983553305295

在 95% 的显著性水平上没有检测到异方差性。

使用Python进行方差分析-方差齐性检验、正态性检验、两种方差分析 方差分析是用于分析定类数据与定量数据之间的关系情况。例如研究人员想知道三组学生的智商平均值是否有显著差异。进行方差分析需要满足如下假定: (1)抽取数据的随机性与独立性假定 这一假定要求随机抽取样本,确保一组数据一定独立于实验中的任何其他数据。 (2)抽取数据的正态性假定 这一假定要求在抽样的时候一定要在正态总体中随机抽取数据,即保证抽取的数据服从正态分布。但方差检验对数据的正态性的有一定的耐受能力,只要数据近似正态即可接受。如果数据严重不正态,则可使用非参数检验。 阅读详情

相关推荐

机器学习之线性回归(python)

一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法(least square method)求解: 4. 评估回归模型 四、sklearn中的线性回归

PY洋洋 6159

用python计算残差等

一、简介  这里简单介绍了回归诊断,本文简单介绍如何用python计算其中的值。 二、计算 import statsmodels.api as sm # 以波士顿房价为例 from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split X = load_boston()['data'] y = load_boston()['target'] # 加上全1列 X = sm.add_c

TSzero的博客 1万+

用Python绘制数据的残差图

对于线性拟合模型,为了评估模型的好坏,我们需要绘制残差图并分析残差分布情况。本文将介绍如何使用Python在Jupyter Notebook中读取Excel表格数据,并绘制残差图。接下来,我们可以使用Matplotlib库的pyplot模块来绘制残差图。通过以上代码,我们就能轻松绘制出数据的残差图并进行分析了。函数进行一次线性拟合,得到斜率和截距。函数绘制一条水平线,方便我们分析残差分布情况。用Python绘制数据的残差图。函数绘制残差图,并使用。

BUG?不存在的! 2083

线性回归—投资额(python、OLS最小二乘、残差图、DW检验)

线性回归实例——投资额(python、OLS最小二乘) 一、问题描述:     建立投资额模型,研究某地区实际投资额与国民生产值(GNP)及物价指数(PI)的关系,根据对未来GNP及PI的估计,预测未来投资额。以下是该地区连续20年的统计数据。 年份序号 投资额 国民生产总值 物价指数 1 90.9 596.7 0.7167 2 97.4

qq_44763548的博客 1万+

残差分析与残差图(Python)

通过对残差进行分析,我们可以识别模型中存在的问题,并确定是否存在模型假设的违背。在本文中,我们将使用Python来进行残差分析,并绘制残差图。综上所述,残差分析是一种有效的方法,用于评估回归模型的拟合程度和检查模型假设。使用Python,我们可以计算残差并绘制残差图、残差直方图等。在残差图中,我们希望看到残差随着自变量的变化呈现随机分布,并且残差的平均值接近于零。残差图是一个散点图,横轴表示自变量的值,纵轴表示残差的值。例如,我们可以绘制残差的直方图或QQ图,以评估残差的正态性。

CodeByte的博客 3931

多元回归-最小二乘法-残差分析

多元回归-最小二乘法-残差分析笔记 一.多元线性回归模型的假设 我们需要进行以下六个假设,这些假设是经典的多元线性回归模型有效的前提: 1、因变量Y和自变量X1,X2,…,Xk之间的关系是线性的。 2、自变量(X1,X2,…,Xk)不是随机的。而且,两个或多个自变量之间不存在精确的线性关系。 3、以自变量为条件的残差的期望值为0:E(ε|X1,X2,…,Xk)=0。 4、残差项的方差对于所有观察值都是相同的:E(εi2)=σε2。 5、残差项在各个观测值之间是不相关的:E(εiεj)=0,j≠i。 6、残差项是正态分布的。 二.计量经济学中的普通最小二乘法(OLS)的4个基本假设条件分别为:

Python金融系列第二篇:简单线性回归

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:多元线性回归和残差分析 第四篇:现代投资组合理论 第五篇:市场风险 第六篇:Fama-French 多因子模型 介绍 在金融和经济领域,大多数模型都是线性模型。从投资组合理论的基础到现在流行的 Fama-French 资产定价模型,我...

CoderPai的博客 6102

国腾|GM8775C替换TC358775/MIPI转双通道LVDS

1 产品概述 GM8775C 型DSI 转双通道 LVDS 发送器产品主要实现将MIPI DSI 转单/双通道 LVDS 功能,MIPI 支持 1/2/3/4 通道可选,最大支持 4Gbps 速率。LVDS时钟频率最高154MHz,最大支持视频格式为 FULL HD(1920 x 1200)。 该芯片主要应用于手持设备、双屏显示,大屏幕显示等应用需求。 2 产品特征 a) I/0电源电压:1.8V /3.3V; b) core 电源电压...

Vasse的博客 1073

Python金融系列第一篇:计算股票回报率,均值和方差

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:多元线性回归和残差分析 第四篇:现代投资组合理论 第五篇:市场风险 第六篇:Fama-French 多因子模型 介绍 在本文中,我们将介绍有关量化金融的一些基本概念。我们从收益率,均值和方差开始学习,你可能认为计算这些值非常简单,但是...

CoderPai的博客 2万+

uniapp无感刷新token实现过程

可以看到已经触发了刷新token接口,并且重新请求上次失败的列表接口,无感刷新token逻辑已经正常,但为什么列表接口请求成功,还一直loading没关闭捏,就是因为后续代码未执行,await接口的返回没有成功resolve。路漫漫其修远兮,前端道路逐渐迷茫,时隔好久好久终于想起了我还有一个小博客,最近在一直在弄uniapp,属实有被恶心到,但也至少会用了,最近实现了一个比较通用的功能,就是无感刷新token,但在过程中发现一个问题就是。3、排查await的列表接口为何没有成功resolve。

weixin_40618068的博客 3594

Windows(Win10、Win11)本地部署开源大模型保姆级教程

最近开源大模型可谓闹的沸沸扬扬,尤其是Microsoft开源的和Meta开源的llama3 70b,评测都已经接近了的水平。鉴于还有很多同学不会在上部署和使用本地模型,因此我们出一期保姆级教程。本文讲述了如何在上本地部署大模型。从最基础的软件安装到环境配置都进行了截图展示,希望对非计算机的同学也有所帮助。AI时代我们每个人都必须要掌握一些AI知识,相信不断学习的你一定不会被AI淘汰。这只是开始,后面我们还有很多工作要做,尤其是提示词和智能体。

AIGIS的博客 3万+

Python金融系列第三篇:随机变量和分布

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:随机变量和分布 第四篇:多元线性回归和残差分析 第五篇:现代投资组合理论 第六篇:市场风险 第七篇:Fama-French 多因子模型 介绍 在上一章中,我们学习了均值和方差的定义,这是一种点估计方法。点估计意味着使用样本数据来计算单...

CoderPai的博客 2937

MMORPG网络游戏开发之任务系统的架构与设计

在网路游戏中做任务已经成为游戏很重要的一个核心功能和玩法,如何做好一个灵活可扩展的任务系统的架构与设计,今天来给大家分享一些我们的设计经验。接下来我把整个的任务系统分成以下6个模块:对于单机游戏而言,这6个模块都放在客户端直接处理,对于网路游戏而言,模块1~5实现在服务端,模块6实现在客户端。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习unity的零基础小白,也有一些正在从事unity开发的技术大佬,欢迎你来交流学习。...

voidinit的专栏 3049

Python金融系列第八篇:Fama-French 多因子模型

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:随机变量和分布 第四篇:置信区间和假设检验 第五篇:多元线性回归和残差分析 第六篇:现代投资组合理论 第七篇:市场风险 第八篇:Fama-French 多因子模型 介绍 我们在前面的章节中,我们了解到资本资产定价模型(CAPM)将市场...

CoderPai的博客 2万+

从驱动编译到数据传输:RK3588与FPGA的PCIe通信实战解析

本文详细解析了RK3588与FPGA通过PCIe通信的实战过程,涵盖驱动编译、数据传输及性能优化等关键步骤。通过XDMA驱动实现高效DMA传输,适用于视频处理、数据采集等高性能场景,帮助开发者快速掌握嵌入式系统中的PCIe通信技术。

weixin_29214691的博客 522

T2T基因组组装实战指南:从数据到完整染色体

本文详细介绍了T2T基因组组装技术的实战指南,从测序数据选择到完整染色体组装的全流程。重点解析了ONT ultra-long和PacBio HiFi测序技术的优势,以及如何攻克端粒和着丝粒等重复区域的组装难题。通过具体案例和实用技巧,帮助研究人员实现从数据到完整染色体的高质量组装。

weixin_29292535的博客 845

Python金融系列第四篇:置信区间和假设检验

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:随机变量和分布 第四篇:置信区间和假设检验 第五篇:多元线性回归和残差分析 第六篇:现代投资组合理论 第七篇:市场风险 第八篇:Fama-French 多因子模型 介绍 在上一章中,我们讨论了随机变量和随机分布。现在我们将使用我们学到...

CoderPai的博客 1万+

电磁阀颤振工作原理

颤振 颤振,弹性结构在均匀气(或液)流中受到空气(或液体)动力、弹性力和惯性力(见达朗伯原理)的耦合作用而发生的大幅度振动,它是气动弹性力学中最重要的问题之一。 随着机电液一体化技术的发展,电液比例控制技术的应用越来越广泛。电液比例控制系统范围较广,在液压传动与控制过程中,系统能够接受模拟信号或数字信号,使输出的流量或压力连续成比例地变化,都属于此类。该控制系统的优点是充分利用了液压控制与电气控制的长处,即功率传递靠液压,信号处理靠电气的优化措施。 电液比例控制原理与要求 液压控制系统中两个最重要的被控参数

小幽余生不加糖 1万+

Python金融系列第七篇:市场风险

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:随机变量和分布 第四篇:置信区间和假设检验 第五篇:多元线性回归和残差分析 第六篇:现代投资组合理论 第七篇:市场风险 第八篇:Fama-French 多因子模型 介绍 在有关金融的论文中,你可能会经常听到资产的 “beta” 或者 ...

CoderPai的博客 4197

Qualcomm 常用NV列表

^ NV ITEM ^ 功能^^ |NV10 |mode prefer,找网模式|新平台使用NV80000| ^NV74 NV74=0关闭自动接听电话^ |NV240 |NV240=FALSE|EVDO出现网络的问题,此项必须设定为FALSE| |NV255 |CDMA规避网络列表(SID/NID号)| |NV256 |

sdrgtywretyeruet的专栏 5768

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python金融系列第六篇:现代投资组合理论

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:随机变量和分布 第四篇:置信区间和假设检验 第五篇:多元线性回归和残差分析 第六篇:现代投资组合理论 第七篇:市场风险 第八篇:Fama-French 多因子模型 介绍 现代投资组合理论(MPT)表明投资者应如何在各种投资中分配财务,...

CoderPai的博客 6375

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

方差齐性检验

总第235篇/张俊红1.前言我们在方差分析里面有讲过,方差分析有一个很重要的前提就是叫方差齐性。这一篇来讲讲如何来检验方差齐性。先讲讲什么是方差齐性,方差齐性是指不同组间的总体方差是一样...

张俊红的个人博客 2万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SPSS多元线性回归残差分析的基本方法

写这篇博客,也是觉得网上很多人没有把这个讲清楚。据这个网页中的网友介绍: 残差分析包括以下内容: ①残差是否服从均值为零的正态分布; ②残差是否为等方差的正态分布; ③残差序列是否独立; ④借助残差探测样本中的异常值。 其中,判断残差的分布可以在SPSS中通过绘制“标准化残差直方图”做到,而残差序列的独立性要通过DW检验做到,具体操作如下: 分析——回归——线性——点开“统计量”

qysh123的专栏 12万+

python 一组数据 正态分布散点图_python数据关系型图表散点图系列残差分析图

参差分析图(线性回归、二次回归)残差分析(residual analysis)回归方程拟合的数值和实际数值的差值就是残差;残差分析是通过残差所提供的信息,分析出数据的可靠性、周期性或其他干扰;用于分析模型的假定正确与否的方法;残差:指观测值与预测值(拟合值)之间的差,即实际观测值与回归估算值的差;绘制残差图通常使用颜色渐变及气泡面积大小,通过视觉暗示对应残差的绝对值大小,用于实际数据点的...

weixin_39876650的博客 1238

python取对数及作对数差在绘制散点图中的作用

文章目录前言一、diff()运算二、三种情况下的散点图1.取数据2.绘制散点图总结 前言 问题背景:在做两变量散点图分析其相关性时,在某本书上看到了如下操作: trans_data = np.log(data).diff().dropna() 这行代码中,data是一个DataFrame格式的数据,这行代码的作用是,对每个数据取对数,再作差分(本行减去前一行作为本行的值,因此与原数据相比,第一行均为NAN),再去掉数据中为NAN的行。 这行代码运用在我的数据上,出现了貌似很好的效果: 从上到下依次

okksss的博客 5331
上一篇: Python金融系列第四篇:置信区间和假设检验
下一篇: Python金融系列第六篇:现代投资组合理论
coderpai
博客等级 码龄10年 1082粉丝 469原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值