1. 用r语言做数据分析好学吗
非常好学。输入几行代码,即可得到结果。
R不但数据分析好用,而且作图能力极好,推荐你用。
下面是R数据分析的一些代码,包括数据导入、方差分析、卡方测验、线性模型及其误差分析。希望可以帮到你:
1.1导入数据
install.packages('xslx')
library(xlsx)
Sys.setlocale("LC_ALL", "zh_cn.utf-8")
a=read.xlsx2('d:/1.xlsx',1,header=F)
head(a)显示前六行
class(a$y)/str(a)查看列/全集数据类型
a$y=as.numeric(a$y)转换数据类型
1.2方差分析(F test)
with(a,tapply(liqi,tan,shapiro.test))正态性检验
library(car)leveneTest(liqi~tan,a)方差齐性检验
q=aov(liqi~tan*chong,a)方差分析(正态型)
summary(q)
TukeyHSD(q)多重比较
1.3卡方测验(Pearson Chisq)
a1=summarySE(a,measurevar='y', groupvars=c('x1','x2'))卡方检验(逻辑型/计数型)
aa=a1$y
aaa=matrix(a2,ncol=2)
aaa= as.table(rbind(c(56,44), c(36,64), c(48,52),c(58,42)))
dimnames(aaa)= list(group=c("不添加抗性","不添加敏感","添加抗性","添加敏感"),effect=c("存活","死亡"))
aaa=xtabs(data=a,~x+y)
chisq.test(a)误差分析(卡方测验,Pearson法)
install.packages("rcompanion")
library(rcompanion)
pairwiseNominalIndependence(a)多重比较
1.4线性模型及其误差分析(Wald Chisq)
q=lm(data=a,y~x1*x2)一般线性模型(正态性)
summary(q)
q=glm(data=a,y~x1*x2,family = gaussian(link='identity'))广义线性模型(正态性)
summary(q)
q=glm(data=a,y~x1*x2,family = binomial(link='logit'))广义线性模型(逻辑型,二项分布)
summary(q)
q=glm(data=a,y~x1*x2,family = poisson(link='log'))广义线性模型(计数型,泊松分布)
summary(q)
install.packages('lmerTest')一般线性混合效应模型(正态性)
library(lmerTest)
install packages(‘lme4’)
library(lme4)
q=lmer(data=a,y~x1*(1|x2))
q=lmer(data=a,y~x1*(1|x2),family = gaussian(link='identity'))广义线性混合效应模型(正态性)
q=glmer(data=a,y~x1*(1|x2),family = binomial(link='logit'))广义线性混合效应模型(逻辑型,二项分布)
q=glmer(data=a,y~x1*(1|x2),family = poisson(link='log'))广义线性混合效应模型(计数型,泊松分布)
summary(q)
install.packages('car')
install.packages('openxlsx')
library(car)
install.packages('nlme')
library(nlme)
Anova(q,test='Chisq')线性模型的误差分析(似然比卡方测验,Wald法)
lsmeans(q,pairwise~chuli,adjust = "tukey")线性模型的多重比较(tukey法)
2. 锘轰簬R璇瑷镄勬暟鎹镙囧嗳鍖栧勭悊鑴氭湰
锘轰簬R璇瑷镄勬暟鎹镙囧嗳鍖栧勭悊鑴氭湰
鏁版嵁镙囧嗳鍖栵纸Normalization锛
灏嗘暟鎹鎸夋瘆渚嬬缉鏀撅纴浣夸箣钀藉叆涓涓灏忕殑鐗瑰畾鍖洪棿銆傚幓闄ゆ暟鎹镄勫崟浣嶉檺鍒讹纴灏嗗叾杞鍖栦负镞犻噺绾茬殑绾鏁板硷纴渚夸簬涓嶅悓鍗曚綅鎴栭噺绾х殑鎸囨爣鑳藉熻繘琛屾瘆杈冨拰锷犳潈銆
鏁版嵁镙囧嗳鍖栧勭悊涓昏佸寘𨰾鏁版嵁钖岃秼鍖栧勭悊鍜屾棤閲忕翰鍖栧勭悊涓や釜鏂归溃銆
鏁版嵁钖岃秼鍖栧勭悊涓昏佽В鍐充笉钖屾ц川鏁版嵁闂棰桡纴瀵逛笉钖屾ц川鎸囨爣鐩存帴锷犳讳笉鑳芥g‘鍙嶆椠涓嶅悓浣灭敤锷涚殑缁煎悎缁撴灉锛岄’鍏堣冭槛鏀瑰彉阃嗘寚镙囨暟鎹镐ц川锛屼娇镓链夋寚镙囧规祴璇勬柟妗堢殑浣灭敤锷涘悓瓒嫔寲锛屽啀锷犳绘墠鑳藉缑鍑烘g‘缁撴灉銆
鏁版嵁镞犻噺绾插寲澶勭悊涓昏佽В鍐虫暟鎹镄勫彲姣旀с傛暟鎹镙囧嗳鍖栫殑鏂规硶链夊緢澶氱嶏纴甯哥敤镄勬湁钬沧渶灏忊旀渶澶ф爣鍑嗗寲钬濄佲涞-score镙囧嗳鍖栤濆拰钬沧寜灏忔暟瀹氭爣镙囧嗳鍖栤濈瓑銆傜粡杩囦笂杩版爣鍑嗗寲澶勭悊锛屽师濮嬫暟鎹鍧囱浆鎹涓烘棤閲忕翰鍖栨寚镙囨祴璇勫硷纴鍗冲悇鎸囨爣鍊奸兘澶勪簬钖屼竴涓鏁伴噺绾у埆涓婏纴鍙浠ヨ繘琛岀患钖堟祴璇勫垎鏋愩
min-max镙囧嗳鍖栵纸Min-max normalization锛
涔熷彨绂诲樊镙囧嗳鍖栵纴鏄瀵瑰师濮嬫暟鎹镄勭嚎镐у彉鎹锛屼娇缁撴灉钀藉湪[0,1]鍖洪棿锛岃浆鎹㈠嚱鏁板备笅锛
姝e悜鎸囨爣锛氾纸x-min锛/锛坢ax-min锛
璐熷悜鎸囨爣锛氾纸max-x锛/锛坢ax-min锛
鍏朵腑max涓烘牱链鏁版嵁镄勬渶澶у硷纴min涓烘牱链鏁版嵁镄勬渶灏忓笺傝繖绉嶆柟娉曟湁涓涓缂洪櫡灏辨槸褰撴湁鏂版暟鎹锷犲叆镞讹纴鍙鑳藉艰嚧max鍜宫in镄勫彉鍖栵纴闇瑕侀吨鏂板畾涔夈
R璇瑷瀹炵幇
# 镙囧嗳鍖栧勭悊
min.max.norm <- function(x){
((x-min(x))/(max(x)-min(x)))
} #姝e悜鎸囨爣
max.min.norm <- function(x){
((max(x)-x)/(max(x)-min(x)))
} #璐熷悜鎸囨爣
data_1 <- apply(data[,-c(3,4)],2,min.max.norm) #姝e悜鎸囨爣澶勭悊
data_2 <- apply(data[,c(3,4)],2,max.min.norm) #璐熷悜鎸囨爣澶勭悊
#娉ㄦ剰array鍙鑳界敤鍦ㄤ簩缁村强浠ヤ笂
data_t <- cbind(data_1,data_2)
3. 怎样用excel 实时读取 股票日线数据
定量分析的第一步,是获取数据。
获取股票历史行情数据最方便的途径,就是直接读取股票行情软件留在你电脑中的日线数据文件。
但如果不是程序员,电脑里一般不会有VB、VC之类的编程语言。
其实,大家的电脑中一般都有OFFICE。OFFICE中的EXCEL自带了一个VBA语言的编程环境。功能也很强大。
我用EXCEL里的VBA编写了一段代码,读取通达信股票行情软件的日线文件。已经测试通过。
代码如下。与爱好定量分析的朋友分享。
TypeMyType
a1AsLong'标示码
a2AsLong'日期
a3AsSingle'开盘价
a4AsSingle'最高价
a5AsSingle'最低价
a6AsSingle'收盘价
a7AsSingle'成交金额
a8AsLong'成交量
EndType
Sub按钮1_Click()
DimFile2AsInteger
DimbAsMyType
File1=FreeFile
Opensh600000.dayForBinaryAccessReadAs#File1i=1DoWhileNotEOF(File1)
Get#File1,,b
Cells(i,1)=b.a1
Cells(i,2)=b.a2
Cells(i,3)=b.a3
Cells(i,4)=b.a4
Cells(i,5)=b.a5
Cells(i,6)=b.a6
4. 在编程中如何能能获得股票的数据 例如当前价,最高价,最低价,当前成交量等等
要看使和什么数据了,每个软件数据的存储格式不同,有的还是加密存储的(如指南针)。
以常见的钱龙数据来说吧(钱龙是最简单的存储格式)当前价,最高价,最低价,当前成交量等等都是以随机文件存储的长整型数据。下面是读取钱龙数据的C源码,你可以参考一下:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct { ------->定义数据类型
unsigned long date; ------->定义日期为长整
unsigned long open; ------->定义开盘为..
unsigned long high; ------->定义最高为..
unsigned long low; ------->定义最低为..
unsigned long close; ------->定义收盘为..
unsigned long travl; ------->定义成交量..
unsigned long traca; ------->定义成交额..
char unuse[12];
} RECORD;
RECORD reco;
int readrec(FILE *);
void main()
{
FILE *fp;
if((fp = fopen("000001.day","rb")) == NULL) // 打开深发展日线
{ printf("Error: Can't open 000001.DAY !\n");
exit(0); }
readrec(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}
int readrec(FILE *fp)
{
float fn;
while (! feof(fp)) {
fread(&reco,sizeof(RECORD),1,fp);
printf("%10lu ",reco.date);
fn=float(reco.open)/1000;
printf("%8.2f ",fn);
fn=float(reco.high)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.low)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.close)/1000; .
printf("%8.2f ",fn); .
printf("%8lu ",reco.travl); .
printf("%8lu\n",reco.traca);
}
printf("\n");
return 0;
5. 如何利用r语言进行读取数据文件,并绘制散点图
首先,下载并安装好R软件。打开R软件,可以看到R软件主窗口。
2
为了方便编辑代码,一般不在主窗口直接输入程序。我们可以点击“文件——新建程序脚本”,出现R编辑器。我们将在此输入需要运行的命令。
3
使用因子格式输入数据。这里输入两组数据,以便后面说明详细使用方法。
4
输入命令plot(x),表示绘制序列x的散点图。选中程序,右键,点击“运行当前行或选中代码”,运行程序。按F5键或者Ctrl+R键也可以实现。在图标显示框出现散点图了。
5
输入命令plot(x,y),其中x表示自变量,y是因变量,生成y关于x的散点图。运行命令,即出现散点图。
6
再增加一组数据,用coplot函数绘制多变量的散点图。coplot(x~m|y)表示在不同的y值下,x关于m的散点图。
7
6. R语言怎么把股票日收盘价转换成对数收益率
知道一系列收盘价向量X,length=1000,求对数收益率的R语言代码
acf(int[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
log return')
Box.test(int[,2], lag = 5, type = "Ljung-Box")
Box.test(int[,2], lag = 10, type = "Ljung-Box")
Box.test(int.l[,2], lag = 5, type = "Ljung-Box")
Box.test(int.l[,2], lag = 10, type = "Ljung-Box")
运行结错误办
> int <- read.table("d-intc7208.txt", head=T)
错误于file(file, "rt") : 打链结
外: 警告信息:
In file(file, "rt") :
打文件'd-intc7208.txt': No such file or directory
+ acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
错误: 意外符号 in:
"
acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int"
> log return')
错误: 意外符号 in "log return"
7. Mathematica怎么导入中国股票市场数据
今天发现Mathematica有金融功能,但是发现没有办法弄中国股票市场的股价。看到Mathematica里面用到Yahoo Finance的数据,所以我尝试了一下上证指数和中国石油
FinancialData["F:000001.SS"]
FinancialData["F:601857.SS"]
不论最后的ss是大写还是小写,均提示
Missing["NotAvailable"]
看文档FinancialData(可能存在的问题部分),发现查询假日股票价格会返回这个错误,但是按照这个页面上我查BMW的价格(这个时间点同样也收盘了),确是能成功返回的。
请问有什么办法能解决吗?
这个问题很奇怪,深圳的股票就可以查到
DateListPlot[FinancialData["sz:000001", {2006, 11, 20}],
Joined -> True, Filling -> Bottom]
但是上海的就不行,不知道是不是数据接口出问题了,你过些时间再试试呢?
上海的数据是FinancialData["ss:600588", { 2006, 11, 20}] mathematica对中国的数据支持很差
貌似只有交易时间才能导入,非交易时查不到数据
我实验了一下,开盘时间是能拉取到上海的数据的~谢谢。
深圳是盘后都能拉取,上海貌似不行,现在这个点还有数据,不知道晚一点行不行了。
https://www.hu.com/question/34932202/answer/60440859