Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 8.81 KB | None | 0 0
  1. a = read.csv (file='results.csv')
  2.  
  3.  
  4. library("psych")
  5. library("dplyr")
  6. library("ggplot2")
  7. library("GGally")
  8.  
  9. print ("Вариационный ряд")
  10. sort(a$Writing.Mean)
  11.  
  12. n=65
  13. k = ceiling(log(n, base = 2) +1)-1
  14. h = (max(a$Writing.Mean)-min(a$Writing.Mean))/k
  15. x<-matrix( nrow = k, ncol = 3, byrow = T)
  16. j=min(a$Writing.Mean)
  17. for (i in 1:k) {
  18.     x[i, 1] = j
  19.     j=j+h
  20.     x[i, 2] = j
  21.     x[i, 3] = x[i, 1] + (h/2)
  22. }
  23. df = data.frame(From=x[,1], To=x[,2], Volume=0, MeanOfInterval=x[,3])
  24.  
  25. for (i in 1:n) {
  26.     if ((a$Writing.Mean[i]>= df[1,1])&&(a$Writing.Mean[i] < df[1,2])) {
  27.         df[1,3]=df[1,3]+1
  28.     }
  29.     if ((a$Writing.Mean[i]>= df[2,1])&&(a$Writing.Mean[i] < df[2,2])) {
  30.         df[2,3]=df[2,3]+1
  31.     }
  32.     if ((a$Writing.Mean[i]>= df[3,1])&&(a$Writing.Mean[i] < df[3,2])) {
  33.         df[3,3]=df[3,3]+1
  34.     }
  35.     if ((a$Writing.Mean[i]>= df[4,1])&&(a$Writing.Mean[i] < df[4,2])) {
  36.         df[4,3]=df[4,3]+1
  37.     }
  38.     if ((a$Writing.Mean[i]>= df[5,1])&&(a$Writing.Mean[i] < df[5,2])) {
  39.         df[5,3]=df[5,3]+1
  40.     }
  41.     if ((a$Writing.Mean[i]>= df[6,1])&&(a$Writing.Mean[i] < df[6,2])) {
  42.         df[6,3]=df[6,3]+1
  43.     }
  44.     if ((a$Writing.Mean[i]>= df[7,1])&&(a$Writing.Mean[i] <= df[7,2]+1)) {
  45.         df[7,3]=df[7,3]+1
  46.     }
  47. }
  48. print ("Интервальный ряд: ")
  49. df
  50.  
  51. qplot(data=df, xlab="Средняя оценка за Writing, баллов", ylab="Количество", main="Данные выпускников города New York", geom="path", MeanOfInterval, Volume)
  52.  
  53. barplot(height = df$Volume, names.arg = df$MeanOfInterval)
  54.  
  55. plot(sort(a$Writing.Mean), (1:n)/n, type="S", col="seagreen", main="ЭФР абсолютных частот", xlab="", ylab="")
  56.  
  57. plot(sort(df$Volume), (1:k)/k, type="S", col="seagreen", main="ЭФР относительных частот", xlab="", ylab="")
  58.  
  59.  
  60.  
  61. # Лабароторная работа №2
  62. N = 65;
  63.  
  64. n = df$Volume
  65. x = df$MeanOfInterval
  66. xsr = 0;
  67. for (j in 1:k) {
  68.     xsr = xsr + x[j]*n[j];
  69. }
  70. xsr = xsr / N;
  71. print ("Математическое ожидание")
  72. xsr
  73.  
  74. df = data.frame(df, A = 0)
  75. df[1,5] = df[1,3]
  76. for (i in 2:k) {
  77.     df[i,5] =  df[i-1,5] + df[i,3]
  78. }
  79. C = df[4,4]
  80.  
  81.  
  82.  
  83. z = array(0, dim=c(1))
  84.  
  85.  
  86.  
  87. for (i in 1:k) {
  88.     z[i] = (x[i] - C)/h
  89. }
  90.  
  91. M = array(0, dim=c(1))
  92. for (i in 1:4) {
  93.     M[i] = 0;
  94.     for (j in 1:k) {
  95.         M[i] = M[i] + n[j]*z[j]^i
  96.     }
  97.     M[i] = M[i]/N;
  98. }
  99.  
  100. m = array(0, dim=c(1))
  101. for (i in 1:4) {
  102.     m[i] = 0;
  103.     for (j in 1:k) {
  104.         m[i] = m[i] + n[j]*(x[j]-xsr)^i;
  105.     }
  106.     m[i] = m[i]/N;
  107. }
  108.  
  109. #СКО
  110. Dv = m[2];
  111. S = ((N/(N-1))*Dv)^(1/2);
  112.  
  113. print ("Дисперсия: ")
  114. S^2
  115.  
  116. #Ассиметрия
  117. As = m[3]/(S^3)
  118. print ("Ассиметрия: ")
  119. As
  120.  
  121. #Эксцесс
  122. Ex = (m[4]/(S^4))-3
  123. print ("Эксцес: ")
  124. Ex
  125.  
  126. #Мода
  127. Mo = df$From[2] + h * ((df$Volume[2]-df$Volume[1])/((df$Volume[2]-df$Volume[1])+(df$Volume[2]-df$Volume[3])))
  128. print ("Мода: ")
  129. Mo
  130.  
  131. #Медиана
  132. Me = df$From[2] + h * (df$A[5]/2 - df$A[1]) / df$A[2]
  133. print ("Медиана: ")
  134. Me
  135.  
  136.  
  137. # Лабараторная работа №3
  138. #MO отрезки
  139. G = array(0, dim=c(1))
  140. G[1] = 0.95
  141. G[2] = 0.99
  142. G[3] = 0.999
  143.  
  144. t = array(0, dim=c(1))
  145. t[1] = 1.996
  146. t[2] = 2.649
  147. t[3] = 3.439
  148.  
  149. f =array(0, dim=c(1))
  150. for (i in 1:3) {
  151.     f[i] = t[i]*S/sqrt(N)
  152. }
  153.  
  154. a1 = array (0, dim=c(1))
  155. a1[1] = xsr - f[1]
  156. a1[2] = xsr - f[2]
  157. a1[3] = xsr - f[3]
  158.  
  159. a2 = array (0, dim=c(1))
  160. a2[1] = xsr + f[1]
  161. a2[2] = xsr + f[2]
  162. a2[3] = xsr + f[3]
  163.  
  164. df2 = data.frame(G=G, t=t, S=S, f=f, a1=a1, a2=a2)
  165. df2
  166.  
  167. #СКО отрезки
  168.  
  169. G2 = array (0, dim=c(1))
  170. G2[1] = 0.95
  171. G2[2] = 0.99
  172.  
  173. q = array (0, dim=c(1))
  174. q[1] = 0.174
  175. q[2] = 0.245
  176.  
  177. s1 = array (0, dim=c(1))
  178. s1[1] = S*(1-q[1])
  179. s1[2] = S*(1-q[2])
  180.  
  181. s2 = array (0, dim=c(1))
  182. s2[1] = S*(1+q[1])
  183. s2[2] = S*(1+q[2])
  184.  
  185. df3 = data.frame (G=G2, q=q, s1=s1, s2=s2)
  186. df3
  187.  
  188. # Гипотеза
  189. # https://www.matburo.ru/Examples/Files/ms_pg_3.pdf
  190.  
  191. x
  192.  
  193. u = array (0, dim=c(1))
  194. for (i in 1:k) {
  195.     u[i] = (x[i] - xsr)/S
  196. }
  197.  
  198. fi = array (0, dim=c(1))
  199. for (i in 1:k) {
  200.     fi[i] = (1/sqrt(2*pi))*exp(-u[i]^2/2)
  201. }
  202.  
  203. n0 = array (0, dim=c(1))
  204. for (i in 1:k) {
  205.     n0[i] = N*h*fi[i]/S
  206. }
  207.  
  208. f2 = array (0, dim=c(1))
  209. for (i in 1:k) {
  210.     f2[i] = (n[i] - n0[i])^2/n0[i]
  211. }
  212.  
  213. hi2_nabl = 0
  214. for (i in 1:k) {
  215.     hi2_nabl = hi2_nabl + f2[i]
  216. }
  217.  
  218. df4 = data.frame (x=x, u=u, fi=fi, n0=n0, n=n, f2)
  219. df4 # для рассчета критерия хи квадрат
  220.  
  221. hi2_nabl
  222. hi2_krit = 9.5
  223.  
  224. # Лабараторная работа №4
  225.  
  226. h2 = (max(a$Mathematics.Mean)-min(a$Mathematics.Mean))/k
  227.  
  228. x2<-matrix( nrow = k, ncol = 3, byrow = T)
  229. j2=min(a$Mathematics.Mean)
  230. for (i in 1:k) {
  231.     x2[i, 1] = j2
  232.     j2=j2+h2
  233.     x2[i, 2] = j2
  234.     x2[i, 3] = x2[i, 1] + (h2/2)
  235. }
  236. df5 = data.frame(From=x2[,1], To=x2[,2], Volume=0, MeanOfInterval=x2[,3])
  237.  
  238. for (i in 1:N) {
  239.     if ((a$Mathematics.Mean[i]>= df5[1,1])&&(a$Mathematics.Mean[i] < df5[1,2])) {
  240.         df5[1,3]=df5[1,3]+1
  241.     }
  242.     if ((a$Mathematics.Mean[i]>= df5[2,1])&&(a$Mathematics.Mean[i] < df5[2,2])) {
  243.         df5[2,3]=df5[2,3]+1
  244.     }
  245.     if ((a$Mathematics.Mean[i]>= df5[3,1])&&(a$Mathematics.Mean[i] < df5[3,2])) {
  246.         df5[3,3]=df5[3,3]+1
  247.     }
  248.     if ((a$Mathematics.Mean[i]>= df5[4,1])&&(a$Mathematics.Mean[i] < df5[4,2])) {
  249.         df5[4,3]=df5[4,3]+1
  250.     }
  251.     if ((a$Mathematics.Mean[i]>= df5[5,1])&&(a$Mathematics.Mean[i] < df5[5,2])) {
  252.         df5[5,3]=df5[5,3]+1
  253.     }
  254.     if ((a$Mathematics.Mean[i]>= df5[6,1])&&(a$Mathematics.Mean[i] < df5[6,2])) {
  255.         df5[6,3]=df5[6,3]+1
  256.     }
  257.     if ((a$Mathematics.Mean[i]>= df5[7,1])&&(a$Mathematics.Mean[i] <= df5[7,2]+1)) {
  258.         df5[7,3]=df5[7,3]+1
  259.     }
  260. }
  261. df5 # интервалы для у
  262.  
  263. n2 = df5$Volume
  264. y = df5$MeanOfInterval
  265. ysr = 0;
  266. for (j in 1:k) {
  267.     ysr = ysr + y[j]*n2[j];
  268. }
  269. ysr = ysr / N;
  270.  
  271.  
  272. df5 = data.frame(df5, A = 0)
  273. df5[1,5] = df5[1,3]
  274. for (i in 2:k) {
  275.     df5[i,5] =  df5[i-1,5] + df5[i,3]
  276. }
  277. C2 = df5[4,4]
  278.  
  279. z2 = array(0, dim=c(1))
  280.  
  281. for (i in 1:k) {
  282.     z2[i] = (y[i] - C2)/h2
  283. }
  284.  
  285. M2 = array(0, dim=c(1))
  286. for (i in 1:4) {
  287.     M2[i] = 0;
  288.     for (j in 1:k) {
  289.         M2[i] = M2[i] + n2[j]*z2[j]^i
  290.     }
  291.     M2[i] = M2[i]/N;
  292. }
  293.  
  294. m2 = array(0, dim=c(1))
  295. for (i in 1:4) {
  296.     m2[i] = 0;
  297.     for (j in 1:k) {
  298.         m2[i] = m2[i] + n2[j]*(y[j]-ysr)^i;
  299.     }
  300.     m2[i] = m2[i]/N;
  301. }
  302.  
  303. S2 = ((N/(N-1))*m2[2])^(1/2);
  304. S2 # дисперсия у
  305.  
  306. column1 = array (0, dim=c(1))
  307. for (i in 1:k) column1[i]=0
  308. column2 = array (0, dim=c(1))
  309. for (i in 1:k) column1[i]=0
  310. column3 = array (0, dim=c(1))
  311. for (i in 1:k) column1[i]=0
  312. column4 = array (0, dim=c(1))
  313. for (i in 1:k) column1[i]=0
  314. column5 = array (0, dim=c(1))
  315. for (i in 1:k) column1[i]=0
  316. column6 = array (0, dim=c(1))
  317. for (i in 1:k) column1[i]=0
  318. column7 = array (0, dim=c(1))
  319. for (i in 1:k) column1[i]=0
  320.  
  321. df6 = data.frame (one=column1, two=column2, three=column3, four=column4, five=column5, six=column6, seven=column7) # для частот
  322.  
  323. xx=a$Writing.Mean # начальные x
  324. yy=a$Mathematics.Mean # начальные y
  325.  
  326. df
  327. NN = 0 # для проверки
  328. kk = k-1
  329. #заполняем таблицу частот
  330. for (i in 1:N) {
  331.     for (j in 1:kk) {
  332.         if ((xx[i]>=df$From[j])&&(xx[i]<df$To[j])) {
  333.             for (p in 1:kk) {
  334.                 if ((yy[i]>=df5$From[p])&&(yy[i]<df5$To[p])) {
  335.                     df6[p,j]=df6[p,j]+1
  336.                     NN = NN +1
  337.                     }
  338.             }
  339.             if ((yy[i]>=df5$From[k])&&(yy[i]<=df5$To[k])) {
  340.                     df6[k,j]=df6[k,j]+1
  341.                     NN = NN +1
  342.                     }
  343.         }
  344.        
  345.     }
  346.     if ((xx[i]>=df$From[k])&&(xx[i]<=df$To[k])) {
  347.             for (p in 1:kk) {
  348.                 if ((yy[i]>=df5$From[p])&&(yy[i]<df5$To[p])) {
  349.                     df6[p,k]=df6[p,k]+1
  350.                     NN = NN +1
  351.                     }
  352.             }
  353.             if ((yy[i]>=df5$From[k])&&(yy[i]<=df5$To[k])) {
  354.                     df6[k,k]=df6[k,k]+1
  355.                     NN = NN +1
  356.                     }
  357.         }
  358. }
  359.  
  360. df6 #таблица частот
  361.  
  362. ############
  363. x_kryshka = array(0, dim=c(1))
  364. x_kryshka[1] = 0
  365. x_kryshka[2] = 0
  366. x_kryshka[3] = 0
  367. x_kryshka[4] = 0
  368. x_kryshka[5] = 0
  369. x_kryshka[6] = 0
  370. x_kryshka[7] = 0
  371. for (i in 1:k)
  372.     for (j in 1:k) {
  373.         x_kryshka[i] = x_kryshka[i] +x[j]*df6[i,j]
  374.     }
  375. x_kryshka
  376.  
  377. wxy = 0
  378. for (i in 1:k)
  379.     wxy = wxy + y[i]*x_kryshka[i]
  380.    
  381. wxy
  382. ##########
  383. y_kryshka = array(0, dim=c(1))
  384. y_kryshka[1] = 0
  385. y_kryshka[2] = 0
  386. y_kryshka[3] = 0
  387. y_kryshka[4] = 0
  388. y_kryshka[5] = 0
  389. y_kryshka[6] = 0
  390. y_kryshka[7] = 0
  391. y_kryshka
  392. for (j in 1:k)
  393.     for (i in 1:k) {
  394.         y_kryshka[j] = y_kryshka[j] +(y[i]*df6[i,j])
  395.     }
  396. y_kryshka
  397.  
  398. wxy2 = 0
  399. for (i in 1:k)
  400.     wxy2 = wxy2 + x[i]*y_kryshka[i]
  401.    
  402. wxy2
  403. ##########
  404. wxy3 = 0
  405. for (i in 1:k)
  406.     for (j in 1:k)
  407.         wxy3=wxy3+df6[i,j]*x[j]*y[i]
  408. wxy3
  409. ##########
  410.  
  411. mxy = wxy/N - xsr*ysr
  412. mxy
  413.  
  414.  
  415. rxy = mxy/(S*S2)
  416. rxy
  417.  
  418. # доверительный интервал для коэффициента корреляции
  419.  
  420. z = 0.5 * log (((1+rxy)/(1-rxy)), base = exp(1))
  421. SE = (k-3)^(-1/2)
  422. SE
  423. T_krit = 2.57
  424. z1 =  z - T_krit*SE
  425. z2 =  z = T_krit*SE
  426. tanh(z1) #интервал от этого числа
  427. tanh(z2) #и до этого
  428.  
  429. # проверка статистической гипотезы о равенстве коэффициента корреляции нулю
  430.  
  431. T_nabl = rxy * (sqrt(k-2)/sqrt(1-rxy^2))
  432. T_nabl
  433.  
  434. T_krit = 2.57
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement