python**:
# -*- coding: utf-8 -*-
"""created on tue feb 6 14:37:21 2018
e-mail = [email protected]
@author: didilv
"""# 專案內容:線性統計模型(線性回歸與方差分析)例3.9.1
import numpy as np
from sklearn import preprocessing
from numpy import linalg as la
# 匯入資料
# 匯入x
x1 = np.array([ [149.3, 4.2, 108.1],
[ 161.2, 4.1, 114.8],
[171.5, 3.1, 123.2],
[175.5, 3.1, 126.9],
[180.8, 1.1, 132.1],
[190.7, 2.2, 137.7],
[202.1, 2.1, 146.0],
[212.4, 5.6, 154.1],
[226.1, 5.0, 162.3],
[231.9, 5.1, 164.3],
[239.0, 0.7, 167.6]])
# 匯入y
y1 = np.array([15.9, 16.4, 19.0, 19.1, 18.8, 20.4, 22.7, 26.5, 28.1, 27.6, 26.3])
# 中心化標準化直接用相關的包進行處理
x = preprocessing.scale(x1)
y = preprocessing.scale(y1)
# 特徵值分解
u, sigma, vt = la.svd(np.dot(x.t, x))
#將第三個特徵值為0
sigma[2] = 0.0
#z就是主成分
z = np.dot(x,u)
#我們選取前兩個主成分:就是前兩列
z1 = z[:,:2]
z1tz1_inv = la.inv(np.dot(z1.t, z1))
# 這是對 alpha1的估計
alpha1 = np.dot(np.dot(z1tz1_inv,z1.t),y)
# 下面就是給alpha1某尾加上0
#這是最終的beta的數值
beta = np.dot(u,alpha)
'''# 因為到現在都是中心化和標準化的資料進行的回歸,
# 還有一步就是利用69頁下面的那個經驗回歸方程這樣的形式還原成3.9.1的例子的形式,
# 你完成吧!
'''
matlab**:
clear
%% 匯入資料(未經過中心化標準化的資料)
% 匯入x
x1 = [ 149.3, 4.2, 108.1;
161.2, 4.1, 114.8;
171.5, 3.1, 123.2;
175.5, 3.1, 126.9;
180.8, 1.1, 132.1;
190.7, 2.2, 137.7;
202.1, 2.1, 146.0;
212.4, 5.6, 154.1;
226.1, 5.0, 162.3;
231.9, 5.1, 164.3;
239.0, 0.7, 167.6;];
% 匯入y
y1 = [15.9, 16.4, 19.0, 19.1, 18.8, 20.4, 22.7, 26.5, 28.1, 27.6, 26.3]';
%% 中心化標準化: zscore函式
[m,n]=size(x1);
x = zscore(x1);
y = zscore(y1);
%% 特徵值分解: matlab裡面的svd對於對稱矩陣的時候就是特徵值分解
[u, sigma, v] = svd(x'*x); % 分解後的結果: x'x = u*sigma*v' ;
sigma(3,3)=0; %將第三個特徵值為0
z = x*u; % z就是主成分
z1 = z(:,1:2); % 我們選取前兩個主成分:就是前兩列
z2 = z(:,3); % 這是第三個主成分(第三列),由於對應的特徵值為0,所以捨掉,在後面沒有用到,只是寫到這裡符合課本的順序。
alpha0 = mean(y); % 這是對alpha0的估計
alpha1 = inv(z1'*z1)*z1'*y % 這是對 alpha1的估計
alpha = [alpha1; 0] % 我們看到alpha的第三個量為零,實際上就是把第三個主成分對應的係數改為了0
beta = u*alpha %
%% 還有一步就是利用69頁下面的那個經驗回歸方程這樣的形式還原成3.9.1的例子的形式,你完成吧!
%
主成分分析
主成分分析 pca 分析乙個隨機向量的中的主成分 主成分一般不是隨機向量中的某乙個分量,而是不同分量的線性組合,根據資訊理論的觀點,資訊的多少與方差有關,所以 主成分是方差最大的幾個成分 主成分分析的方法是求隨機向量的協方差矩陣 用樣本協方差矩陣代替 對於差異較大的資料,可採用相關矩陣代替協方差矩陣...
主成分分析
理論要點 1 主成分分析是一種無監督學習,因此不能用交叉驗證來檢驗誤差 2 在處理資料之前,要對資料做中心化處理 3 p太大的話,做特徵分解用svd 4 一共有min n 1,p 個主成分,因為中心化以後,rank要降一維 5 主成分的載荷向量就是協方差矩陣的特徵向量,對應特徵值最大的是第一主成分,...
主成分分析
1.概念 將一組可能存在相關性的隨機變數轉變成互不相關的隨機變數。這個概念裡有三個地方需要理解清楚。1 隨機變數的指代 在資料集中,每乙個樣本,即將資料集理解成乙個 的話,乙個樣本就是一行,則每一列就是乙個特徵,也就是乙個隨機變數,一列的所有取值就是隨機變數的所有可能取值 說的所有可能取值只針對訓練...