【應用多元統計分析】--數據矩陣及R語言表示

????????在多元分析中,數據通常以矩陣的形式出現,下面結合R語言介紹基本的矩陣運算。主要包括:創建矩陣向量,矩陣加減、乘積,矩陣的逆,行列式的值,特征值與特征向量,QR分解,奇異值分解,取矩陣的上下三角元素,向量化算子等。

1.創建一個向量(隨機變量、一維數組)

用函數c()來創建一個向量

#創建向量
x1=c(171,175,159,155,152,158,154,164,168,166,159,164)
x2=c(57,64,41,38,35,44,41,51,57,49,47,46)length(x1)#返回向量長度
length(x2)mode(x1)#返回向量的數據類型

2.創建一個矩陣(二維數組)

1)合并命令

可以用rbind()、cbind()將兩個或兩個以上的向量或矩陣合并起來,rbind()表示按行合并,cbind()按列合并。

#創建矩陣
rbind(x1,x2)#按行合并
cbind(x1,x2)#按列合并

2)生成矩陣

matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)
#data為必要的矩陣元素,nrow為行數,ncol為列數,這倆乘積應為矩陣元素個數
#byrow控制排列元素是否按行進行
#dimnames給定行和列的名稱
matrix(x1,nrow=3,ncol=4)#生成矩陣,matrix(x1,nrow=4,ncol=3)

3.矩陣轉置

A為m*n矩陣,A'為其轉置矩陣,求A’在R中可用函數t()或transpose()

#矩陣轉置
A=matrix(1:12,nrow=3,ncol=4)
t(A)#用函數t()或transpose()轉置

4.矩陣相加減?

#矩陣相加減
A=B=matrix(1:12,nrow=3,ncol=4)
A+B

5.矩陣相乘

A為m*n矩陣,B為n*k矩陣,在R 中求AB可用符號“%*%”?

#矩陣相乘
A=matrix(1:12,nrow=3,ncol=4)
B=matrix(1:12,nrow=4,ncol=3)
A%*%B

6.矩陣對角元素相關運算??

#矩陣對角元素相關運算
A=matrix(1:16,nrow=4,ncol = 4)
diag(A)#產生以這個向量為對角元素的對角矩陣
#對一個正整數k應用diag()函數將產生k維單位矩陣
diag(diag(A))
diag(3)

7.矩陣求逆

矩陣求逆可用函數solve(),應用solve(A,b)運算結果可解線性方程組Ax=b,
若b缺省,則系統默認為單位矩陣,因此可用其進行矩陣求逆

#矩陣求逆
A=matrix(rnorm(16),4,4);A
solve(A)
#矩陣求逆可用函數solve(),應用solve(A,b)運算結果可解線性方程組Ax=b,
#若b缺省,則系統默認為單位矩陣,因此可用其進行矩陣求逆

8.矩陣的特征值與特征向量

矩陣A的譜分解為A=U^U',其中^是由A的特征值組成的對角矩陣,
U的列為A的特征值對應的特征向量,可以用函數eigen()得到U和A
eigen(x,symmetric,only.values=FALSE,EISPACK = FALSE)
其中x為矩陣,symmetric項指定矩陣x是否為對稱矩陣,不指定則系統自動檢測

#矩陣特征值與特征向量
A=diag(4)+1
A
A.e=eigen(A,symmetric = T)
A.e
#矩陣A的譜分解為A=U^U',其中^是由A的特征值組成的對角矩陣,
#U的列為A的特征值對應的特征向量,可以用函數eigen()得到U和A
#eigen(x,symmetric,only.values=FALSE,EISPACK = FALSE)
#其中x為矩陣,symmetric項指定矩陣x是否為對稱矩陣,不指定則系統自動檢測
A.e$vectors%*%diag(A.e$values)%*%t(A.e$vectors)

9.矩陣的Choleskey分解

對于正定矩陣A,可對其進行Choleskey分解,A=P'P,P為上三角矩陣
在R中可以用chol()函數進行Choleskey分解

#矩陣的Choleskey分解
#對于正定矩陣A,可對其進行Choleskey分解,A=P'P,P為上三角矩陣
#在R中可以用chol()函數進行Choleskey分解
A.e=chol(A)
A.e
t(A.e)%*%A.e

10.矩陣奇異值分解

A為m*n矩陣,rank(A)=r,可以分解為A=UDV',其中U'U=V'V=I
在R中可以用函數svd()進行奇異值分解

#矩陣奇異值分解
#A為m*n矩陣,rank(A)=r,可以分解為A=UDV',其中U'U=V'V=I
#在R中可以用函數svd()進行奇異值分解
A=matrix(1:18,3,6)
A
A.s=svd(A)
A.s
A.s$u%*%diag(A.s$d)%*%t(A.s$v)

11.矩陣QR分解

A為m*n矩陣時可以進行QR分解,A=QR
其中Q'Q=I,在R中可以用函數qr()進行QR分解

#矩陣QR分解
#A為m*n矩陣時可以進行QR分解,A=QR
#其中Q'Q=I,在R中可以用函數qr()進行QR分解
A=matrix(1:16,4,4)
qr(A)

12.矩陣kronecker積

n*m矩陣A與h*k矩陣B的kronecker積為一個nh*mk維矩陣
在R中,kronecker積可以用函數kronecker()來計算

#矩陣kronecker積
#n*m矩陣A與h*k矩陣B的kronecker積為一個nh*mk維矩陣
#在R中,kronecker積可以用函數kronecker()來計算
A=matrix(1:4,2,2)
A
B=matrix(rep(1,4),2,2)
B
kronecker(A,B)

13.矩陣的維數

函數dim()將返回一個矩陣的維數
nrow()返回行數,ncol()返回列數

#矩陣的維數
#函數dim()將返回一個矩陣的維數
#nrow()返回行數,ncol()返回列數
A=matrix(1:12,3,4)
A
dim(A)
nrow(A)
ncol(A)

14.矩陣的行和、列和、行平均數與列平均

#矩陣的行和、列和、行平均數與列平均
rowSums(A)
rowMeans(A)
colSums(A)
colMeans(A)
#還可以用apply()函數實現:apply(X,MARGIN,FUN,......)
#x為矩陣,MARGIN指定對行還是對列操作,1表示行運算,2為對列運算
#FUN用來指定運算函數,“...”用來指定FUN中需要的其他參數
apply(A,1,sum)
apply(A,1,mean)
apply(A,2,sum)
apply(A,2,mean)A=matrix(rnorm(100),20,5)
apply(A,2,var)#計算每一列的方差
apply(A,2,function(x,a)x*a,a=2)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715617.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715617.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715617.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微前端-乾坤《》

微前端 一個應用,當不斷迭代的時候,功能會越來越多,代碼量隨著也會變得越來越大。進而代碼之間的耦合性會變高,這樣導致開發和維護很糟心,動一發而牽全身。于是有了微前端來解這個問題,按功能可以將這個應…

day02-JavaScript-Vue

文章目錄 1 JavaScript1.1 介紹 1.2 引入方式1.3 基礎語法1.3.1 書寫語法1.3.2 變量1.3.3 數據類型和運算符 1.4 函數1.4.1 第一種定義格式1.4.2 第二種定義格式 1.5 JavaScript對象1.5.1 基本對象1.5.1.1 Array對象語法格式特點屬性和方法 1.5.1.2 String對象語法格式屬性和方…

17.來自Sora的奪舍妄想——享元模式詳解

OpenAI 的 Sora 模型面世之后,可以說人類抵御AI的最后陣地也淪陷了。 在此之前,人們面對AI交互式對話,AI制圖,AI建模之類的奇跡時,還可以略微放肆的說:“的確很神奇,這畢竟還是比人類世界低了一…

Redis基本知識

一、什么是Redis Redis是一種基于內存的數據庫,對數據的讀寫操作都是在內存中完成,因此讀寫速度非常快,用于存儲鍵值對、緩存、消息隊列、分布式鎖等。 二、Redis和mencached的區別 相同:都是基于內存的數據庫,讀寫都…

2024年騰訊云部署幻獸帕魯服務器,如何選擇合適的服務器配置套餐暢玩游戲?

選擇合適的服務器配置套餐以暢玩《幻獸帕魯》游戲,首先需要考慮的是玩家數量和對服務器性能的需求。根據騰訊云提供的配置推薦,對于4到8人的玩家,推薦配置為4核16G12M;而10到20人的玩家則建議選擇8核32G22M配置。這是因為《幻獸帕…

小程序頁面指定區域局部滾動,做上拉和觸底刷新

業務需求:在頁面某個固定區域滑動 思路:滑動高度 頁面高度 - 自定義導航高度(不是自己自定義的導航可以省略)- 按鈕高度 - 單詞數高度 實現 : 1.數據展示區內使用scroll-view,設置y軸滾動(…

swoole

php是單線程。php是靠多進程來處理任務,任何后端語言都可以采用多進程處理方式。如我們常用的php-fpm進程管理器。線程與協程,大小的關系是進程>線程>協程,而我們所說的swoole讓php實現了多線程,其實在這里來說,就是好比讓php創建了多個進程,每個進程執行一條…

初階數據結構:二叉樹

目錄 1. 樹的相關概念1.1 簡述:樹1.2 樹的概念補充 2. 二叉樹2.1 二叉樹的概念2.2 二叉樹的性質2.3 二叉樹的存儲結構與堆2.3.1 存儲結構2.3.2 堆的概念2.3.3 堆的實現2.3.3.1 堆的向上調整法2.3.3.2 堆的向下調整算法2.3.3.3 堆的實現 1. 樹的相關概念 1.1 簡述&a…

域名及地址正確外,若依后臺無法正常加載頁面和退出報404問題

寫小程序退出的時候,另外寫了一個自定義退出處理類,里面的響應瀏覽器的代碼每次都走。因為原來也有個退出處理類,所以先后走了2次,因為就出現了問題。 LogoutSuccessHandlerImpl類里的: ServletUtils.renderString(r…

【C++ AVL樹】

文章目錄 AVL樹AVL樹的概念AVL樹節點的定義AVL樹的插入AVL樹的旋轉右單旋左單旋左右雙旋右左雙旋 代碼實現 總結 AVL樹 AVL樹的概念 二叉搜索樹在順序有序或接近有序的情況下,而插入搜索樹將退化為單叉樹,此時查找的時間復雜度為O(n),效率低…

鴻蒙Harmony應用開發—ArkTS聲明式開發(通用屬性:顏色漸變)

設置組件的顏色漸變效果。 說明: 從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。 linearGradient linearGradient(value: { angle?: number | string; direction?: GradientDirection; colors: Array; repea…

mamba-ssm安裝building wheel卡著不動后error...避坑解決方法

文章目錄 方法1、下載whl文件到本地后pip install安裝成功后驗證: 方法2、拉取Docker鏡像 對于項目中用到MambaIR的小伙伴,需要pip安裝 causal_conv1d和 mamba-ssm兩個包及其依賴: torch packing transformersMambaIR-Github主頁&#xff0…

【C++】vector的使用及其模擬實現

這里寫目錄標題 一、vector的介紹及使用1. vector的介紹2. 構造函數3. 遍歷方式4. 容量操作及空間增長問題5. 增刪查改6. vector二維數組 二、vector的模擬實現1. 構造函數2. 迭代器和基本接口3. reserve和resize4. push_back和pop_back5. insert和erase5. 迭代器失效問題5. 淺…

【Java】基礎算法練習題

個人簡介:Java領域新星創作者;阿里云技術博主、星級博主、專家博主;正在Java學習的路上摸爬滾打,記錄學習的過程~ 個人主頁:.29.的博客 學習社區:進去逛一逛~ 目錄 基礎算法練習題🚀1. 兩數之和…

Django 管網項目 三

Django 官網文檔 ??Writing your first Django app, part 2 | Django documentation | Django 本文內容涉及創建視圖 View,路由,和模版。并對內容進行渲染。 創建視圖 在我們的投票應用中,我們需要下列幾個視圖: 問題索引頁—…

ChatGPT支持下的PyTorch機器學習與深度學習技術應用

近年來,隨著AlphaGo、無人駕駛汽車、醫學影像智慧輔助診療、ImageNet競賽等熱點事件的發生,人工智能迎來了新一輪的發展浪潮。尤其是深度學習技術,在許多行業都取得了顛覆性的成果。另外,近年來,Pytorch深度學習框架受…

相關知識1111

一、 店鋪編號和相關負責人 1、天貓兄弟、錦格 京東凡越 福林哥 如萍姐 2、京東錦格 天貓凡越 林森 雷佳華 3、天貓從簡 京東從簡 孔哥 4、抖音錦格 拼多多凡越 鴻哥 不知道哪個店鋪編號:0 二、天貓京東聊天界面快捷搜索商品 1、 天貓只能根據標題搜索 2、京東是…

神經網絡之萬能定理python-pytorch實現,可以擬合任意曲線

神經網絡之萬能定理python-pytorch實現,可以擬合任意曲線 博主,這幾天一直在做這個曲線擬合的實驗,講道理,網上可能也有很多這方面的資料,但是博主其實試了很多,效果只能對一般的曲線還行,稍微…

java之抽象類

什么是抽象類? 抽象就是不能具體化,不能實例化 作為父類,讓子類去實現 abstract修飾類就是抽象類 abstract修飾方法就是抽象方法修飾符 abstract class 類名{修飾符 abstract 返回值類型 方法名(形參列表); }public abstract class A {//不…

CTFHUB--文件包含漏洞--RCE

文件包含漏洞 文件包含漏洞也是一種注入型漏洞,其本質就是輸入一段用戶能夠控制的腳本或者代碼,并讓服務端執行。有時候由于網站功能需求,會讓前端用戶選擇要包含的文件,而開發人員又沒有對要包含的文件進行安全考慮,…