R语言与多元统计分析 —— 多元正态分布
2014-03-20 16:27
393 查看
1、如何用R语言画二元正态分布的曲面图形
下面主要用两种技术来实现:
注意:z 的列维是 y 的长度,行维是 x 的长度(即 z 包含每一种可能的 (x, y) 点 的值)
第一种使用 persp(x, y, z)函数:下面看代码
第二种方法是用 rgl,这也是一个画 3D 图的好工具,不过原理还是一样,贴上代码:
效果如下:
下面主要用两种技术来实现:
注意:z 的列维是 y 的长度,行维是 x 的长度(即 z 包含每一种可能的 (x, y) 点 的值)
第一种使用 persp(x, y, z)函数:下面看代码
fn = function(x, y) { sigma <- matrix(c(20,0,0,20), c(2,2)) u <- c(0,0) sSigma <- solve(sigma) exp(- ((x-u[1])^2 * sSigma[1,1] + 2*(x-u[1]) * (y-u[2]) * sSigma[1,2] + (y-u[2])^2 * sSigma[2,2]) )/(2*pi*det(sigma)^0.5) } a = 10 x = seq(-a, a, 0.1) y = seq(-a, a, 0.1) #outer函数就是为每一个点(x,y)得到对应的z 即 z[i,j] = fn(x[i], y[j]),有点类似 matlab 的 meshgrid z = outer(x, y, fn) persp(x, y, z)
第二种方法是用 rgl,这也是一个画 3D 图的好工具,不过原理还是一样,贴上代码:
fn = function(x, y) { sigma <- matrix(c(20,0.75,0.75,20), c(2,2)) u <- c(0,0) sSigma <- solve(sigma) exp(- ((x-u[1])^2 * sSigma[1,1] + 2*(x-u[1]) * (y-u[2]) * sSigma[1,2] + (y-u[2])^2 * sSigma[2,2]) )/(2*pi*det(sigma)^0.5) } a = 10 x = seq(-a, a, 0.1) y = seq(-a, a, 0.1) z = outer(x, y, fn) library(rgl) zorder = rank(z) persp3d(x, y, z, col = rainbow(as.integer(max(zorder)))[zorder])
效果如下:
相关文章推荐
- 多元统计分析上机题之R语言实现(多元正态分布)
- R语言案例分析:多元数据的基本统计分析
- R语言系列:多元统计分析简介
- R语言多元统计分析初探
- 多元统计分析上机题之R语言实现(主成分)
- 多元统计分析上机题之R语言实现(因子分析)
- 统计编程的框架与R语言统计分析基础——摘(2)统计分析之线性回归
- R语言_基本统计分析
- 多元统计分析及R语言建模-第5章 广义与一般线性模型
- 多元统计分析学习——PCA
- R语言多元分析系列
- R语言为Hadoop集群数据统计分析带来革命性变化
- Excel在统计分析中的应用—第五章—概率分布及概率分布图-Part8-连续型概率分布(正态分布的标准化)
- R语言为Hadoop集群数据统计分析带来革命性变化
- Excel在统计分析中的应用—第十一章—相关分析-多元相关-多元相关系数
- 关于聚类分析、判别分析、主成分分析、因子分析等多元统计分析方法
- R语言为Hadoop集群数据统计分析带来革命性变化
- 多元统计分析基础
- 关于聚类分析、判别分析、主成分分析、因子分析等多元统计分析方法
- R语言多元分析系列