数学建模——数据分析方法

一、常见数据分析软件

Excel(office三件套之一)、R语言、Eviews、origin(图形分析工具)、SPSS(统计分析与数据挖掘)
MATLAB(墙裂推荐)、python(墙裂推荐)、SAS

二、统计性描述

  1. 均值(mean) x ˉ = 1 n ∑ i = 1 n x i \bar{x}=\frac{1}{n} \sum_{i=1}^{n} x_{i} xˉ=n1i=1nxi
  2. 方差(var)、均方差(std): S 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 , S = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 \quad S^{2}=\frac{1}{n-1} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2}, S=\sqrt{\frac{1}{n-1} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2}} S2=n11i=1n(xixˉ)2,S=n11i=1n(xixˉ)2
    (与传统的方差不同,这里除以的是n-1)
  3. 偏度(df.skewness):标准化三阶中心矩阵,反映对称性,当其值大于0时,此时数据位于均值右侧的比位于左侧的多
    s k = 1 n ∑ i = 1 n ( x i − x ˉ ) 3 s 3 s_{k}=\frac{\frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{3}}{s^{3}} sk=s3n1i=1n(xixˉ)3
  4. 峰度(df.kurt):标准化四阶中心矩阵,当其值大于3时,表示分布有沉重的尾巴,说明样本有较多远离均值的数据 G 2 = 1 n ∑ i = 1 n ( x i − x ˉ ) 4 ( 1 n ∑ i = 1 n ( x 1 − x ˉ ) 2 ) 2 − 3 G_{2}=\frac{\frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{4}}{\left(\frac{1}{n} \sum_{i=1}^{n}\left(x_{1}-\bar{x}\right)^{2}\right)^{2}}-3 G2=(n1i=1n(x1xˉ)2)2n1i=1n(xixˉ)43
  5. 分位数(df.quantile( p )):若概率0<p<1,随机变量X或他的概率分布的分位数Za是指满足条件p(X < Za)=α的实数

三、数据的预处理

  1. 缺漏数据的处理
    • 删掉这条数据:df.dropna(axis=0,how="any",inplace=False)
    • 用均值填充:
    	means = df[].mean()
    	df[].fillna(means)
    
    • 用中位数来填补
    	medians = df[].median()
    	df[].fillna(medians)
    
    • 用众数来填补
    	modes = df[].mode()
    	df[].fillna(modes)
    
  2. 数据的标准化:
    最大最小值标准化和均值标准化
    x i ′ = x i − x min ⁡ x max ⁡ − x min ⁡ x i ′ = x i − x s x_{i}^{\prime}=\frac{x_{i}-x_{\min }}{x_{\max }-x_{\min }} \quad x_{i}^{\prime}=\frac{x_{i}-x}{s} xi=xmaxxminxixminxi=sxix
    	# 最大最小值标准化
    	def max_min_std(data):
    	    m_max = data.max(axis=0)
    	    m_min = data.min(axis=0)
    	    data = (data - m_min)/(m_max-m_min)
    	    return data
    	
    	#均值标准化
    	def mean_std(data):
    	    m_mean = data.mean(axis=0)
    	    m_std = data.std(axis=0)
    	    data = (data - m_mean)/m_std
    	    return data	
    

四、相关性分析

  1. 如何判断各因素之间是否相关?
    1. pearson相关系数(df.corr(method = ))
    r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r=\frac{\sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)\left(y_{i}-\bar{y}\right)}{\sqrt{\sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2} \sum_{i=1}^{n}\left(y_{i}-\bar{y}\right)^{2}}} r=i=1n(xixˉ)2i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)
    2. spearman,kendall相关系数
  2. 相关程度有多大?
    1. 当R>0时,正相关,R<0时,负相关
    2. R的绝对值越接近1,表示两个变量越接近线性关系
    3. R的绝对值越接近0,表示两个变量越没有相关系
    4. R的绝对值大于0.8时,视为高度相关
    5. R的绝对值介于0.5~0.8时,视为中度相关
    6. R的绝对值小于0.3时,视为不相关

五、回归分析

  1. 多元线性回归模型:
    y = β 0 + β 1 x 1 + β 2 x 2 + … + β p x p + ε y=\beta_{0}+\beta_{1} x_{1}+\beta_{2} x_{2}+\ldots+\beta_{p} x_{p}+\varepsilon y=β0+β1x1+β2x2++βpxp+ε
    其中的 β i \beta_{i} βi是回归系数
from sklearn.linear_model import LinearRegression
linear = LinearRegression()
model = linear.fix(x,y)
print("截距:")
print(linear.intercept_)
print("回归系数:")
print(linear.coef_)

猜你喜欢

转载自blog.csdn.net/kiminoamae/article/details/107664368