楼主: fwdshen
4754 5

[问答] 用R求线性回归系数的矩阵 [推广有奖]

  • 0关注
  • 0粉丝

大专生

15%

还不是VIP/贵宾

-

威望
0
论坛币
1609 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
274 点
帖子
14
精华
0
在线时间
59 小时
注册时间
2015-11-24
最后登录
2024-10-20

楼主
fwdshen 发表于 2016-3-24 01:32:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
楼主是初学者.
如果想用(X^TX)^{-1}X^TY求出回归系数的矩阵,需要怎么带入数据X? 要用到for吗?

另外还有一个问题,我想求出一个矩阵.第一列的是计算原始数据每一列的mean,第二列原始数据的sd.这里要用到两个loop吗?  
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:回归系数 线性回归 原始数据 loop mean 初学者

沙发
jiangbeilu 学生认证  发表于 2016-3-24 09:01:33
  1. lr<-function(x,y){
  2. # x is the variable matrices
  3. # y is the dependent variable
  4. if(solve(t(x)%*%x)){
  5. solve(t(x)%*%x) %*%t(x)%*%y
  6. }else{
  7. stop("矩阵逆不存在!")
  8. }
  9. }
  10. data(mtcars)
  11. names(mtcars)
  12. # y<-mpg
  13. # cyl和wt
  14. mtcars[,c(2,6)]
  15. x<-as.matrix(mtcars[,c(2,6)])
  16. rownames(x)<-NULL
  17. x<-cbind(1,x)
  18. lr(x,mtcars[,1])
  19. lm(mpg~cyl+wt,mtcars)
复制代码

藤椅
tim0532 发表于 2016-3-24 09:09:00
现将数据做成数据库,然后用apply函数就可以求mean,sd

板凳
fwdshen 发表于 2016-3-25 04:50:27
jiangbeilu 发表于 2016-3-24 09:01
不好意思有的地方不明白. 一个是这是多元 所以一开始我应该写成 function(x1,x2,...y)吗? 另外x是存在于另外与个数据里的矩阵我应该 matrix$name 来表示吗?    10行以后完全没看明白...

报纸
jiangbeilu 学生认证  发表于 2016-3-25 08:04:43
fwdshen 发表于 2016-3-25 04:50
不好意思有的地方不明白. 一个是这是多元 所以一开始我应该写成 function(x1,x2,...y)吗? 另外x是存在于另 ...
看不明白,要多运行代码,并且学习函数的作用就好了。
这些都是最基本与简单的函数

地板
fwdshen 发表于 2016-4-4 01:56:15
jiangbeilu 发表于 2016-3-25 08:04
看不明白,要多运行代码,并且学习函数的作用就好了。
这些都是最基本与简单的函数
你好. 上面的代码我已经明白了. 这是之后我自己写的.   因为我尝试给元素都为1的矩阵命名,没想到简单的方法.所以只能写成这样.
  1. intercept=matrix(data=1:1,ncol=1,nrow=200,dimnames = list(c(1:200),c("Intercept")),byrow=F) #
  2. y<-cbind(sales)
  3. x<-cbind(intercept,adverts,airplay,attract)
  4. koe1=solve(t(x)%*%x)%*%t(x)%*%y
复制代码

  

关于我的第二个问题能否也帮助一下. 我自己尝试写了代码.(album就是数据的名字)   但是它并不符合题目要求,并没有用到两个loop.而且y是在之后才能赋值,并不是之前就可以,感觉是硬凑出来的一个4x2的矩阵.
  1. a<-c()
  2.     b<-c()
  3.     for(i in 1:4){
  4.          
  5.              a[i]=mean(album[,i])
  6.              b[i]=sd(album[,i])
  7.            
  8.      }      
  9.     y<-matrix(data=c(a,b),nrow=4,ncol=2,byrow=0)
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 12:33