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