Совершенствование методов обоснования выборки в аудиторской проверке (1142757), страница 46
Текст из файла (страница 46)
Для модифицированного случайногоотбора с измененными вероятностями, шаблонный алгоритм совпадает с модифицированным случайным отбором, учетныезначения условно преобразуются через число трансформирования.Таблица Б.5 – Пример алгоритма модифицированного случайного отбора для программы Microsoft ExcelПервая частьУчетное значениеB3-1510000100050007000200004000014000800012000300004500015000=СУММ(B3:B14)Случные числаB17-20n1n2n3n4=СЛУЧМЕЖДУ(1;$B$15)=СЛУЧМЕЖДУ(1;H15)=СЛУЧМЕЖДУ(1;K15)=СЛУЧМЕЖДУ(1;N15)Сумма с нарастающим итогомC3-14=B3=B4+C3=B5+C4=B6+C5=B7+C6=B8+C7=B9+C8=B10+C9=B11+C10=B12+C11=B13+C12=B14+C13Диапазон значений элемента совокупностиD3-14E3-141=B3=E3+1=E3+B4=E4+1=E4+B5=E5+1=E5+B6=E6+1=E6+B7=E7+1=E7+B8=E8+1=E8+B9=E9+1=E9+B10=E10+1=E10+B11=E11+1=E11+B12=E12+1=E12+B13=E13+1=E13+B14Вероятность отбораF3-15=B3/$B$15*100=B4/$B$15*100=B5/$B$15*100=B6/$B$15*100=B7/$B$15*100=B8/$B$15*100=B9/$B$15*100=B10/$B$15*100=B11/$B$15*100=B12/$B$15*100=B13/$B$15*100=B14/$B$15*100=СУММ(F3:F14)235 Элемент совокупностиA3-14123456789101112236 Продолжениетаблицы Б.5 Вторая частьn1G3-14H3-15=ЕСЛИ(НЕ(G3=1);B3;0*B3)=ЕСЛИ(НЕ(G4=1);B4;0*B4)=ЕСЛИ(НЕ(G5=1);B5;0*B5)=ЕСЛИ(НЕ(G6=1);B6;0*B6)=ЕСЛИ(НЕ(G7=1);B7;0*B7)=ЕСЛИ(НЕ(G8=1);B8;0*B8)=ЕСЛИ(НЕ(G9=1);B9;0*B9)=ЕСЛИ(НЕ(G10=1);B10;0*B10)=ЕСЛИ(НЕ(G11=1);B11;0*B11)=ЕСЛИ(НЕ(G12=1);B12;0*B12)=ЕСЛИ(НЕ(G13=1);B13;0*B13)=ЕСЛИ(НЕ(G14=1);B14;0*B14)=СУММ(H3:H14)I3-14=H3=H4+I3=H5+I4=H6+I5=H7+I6=H8+I7=H9+I8=H10+I9=H11+I10=H12+I11=H13+I12=H14+I13J3-14=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)=ЧАСТОТА(B18;I3:I14)n3M3-14=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)=ЧАСТОТА(B19;L3:L14)L3-14=K3=K4+L3=K5+L4=K6+L5=K7+L6=K8+L7=K9+L8=K10+L9=K11+L10=K12+L11=K13+L12=K14+L13n4N3-15=ЕСЛИ(НЕ(M3=1);K3;0*K3)=ЕСЛИ(НЕ(M4=1);K4;0*K4)=ЕСЛИ(НЕ(M5=1);K5;0*K5)=ЕСЛИ(НЕ(M6=1);K6;0*K6)=ЕСЛИ(НЕ(M7=1);K7;0*K7)=ЕСЛИ(НЕ(M8=1);K8;0*K8)=ЕСЛИ(НЕ(M9=1);K9;0*K9)=ЕСЛИ(НЕ(M10=1);K10;0*K10)=ЕСЛИ(НЕ(M11=1);K11;0*K11)=ЕСЛИ(НЕ(M12=1);K12;0*K12)=ЕСЛИ(НЕ(M13=1);K13;0*K13)=ЕСЛИ(НЕ(M14=1);K14;0*K14)=СУММ(N3:N14)Источник: составлено автором.K3-15=ЕСЛИ(НЕ(J3=1);H3;0*H3)=ЕСЛИ(НЕ(J4=1);H4;0*H4)=ЕСЛИ(НЕ(J5=1);H5;0*H5)=ЕСЛИ(НЕ(J6=1);H6;0*H6)=ЕСЛИ(НЕ(J7=1);H7;0*H7)=ЕСЛИ(НЕ(J8=1);H8;0*H8)=ЕСЛИ(НЕ(J9=1);H9;0*H9)=ЕСЛИ(НЕ(J10=1);H10;0*H10)=ЕСЛИ(НЕ(J11=1);H11;0*H11)=ЕСЛИ(НЕ(J12=1);H12;0*H12)=ЕСЛИ(НЕ(J13=1);H13;0*H13)=ЕСЛИ(НЕ(J14=1);H14;0*H14)=СУММ(K3:K14)O3-14=N3=N4+O3=N5+O4=N6+O5=N7+O6=N8+O7=N9+O8=N10+O9=N11+O10=N12+O11=N13+O12=N14+O13P3-14=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)=ЧАСТОТА(B20;O3:O14)Q3-14=ЕСЛИ(НЕ(P3=1);N3;0*N3)=ЕСЛИ(НЕ(P4=1);N4;0*N4)=ЕСЛИ(НЕ(P5=1);N5;0*N5)=ЕСЛИ(НЕ(P6=1);N6;0*N6)=ЕСЛИ(НЕ(P7=1);N7;0*N7)=ЕСЛИ(НЕ(P8=1);N8;0*N8)=ЕСЛИ(НЕ(P9=1);N9;0*N9)=ЕСЛИ(НЕ(P10=1);N10;0*N10)=ЕСЛИ(НЕ(P11=1);N11;0*N11)=ЕСЛИ(НЕ(P12=1);N12;0*N12)=ЕСЛИ(НЕ(P13=1);N13;0*N13)=ЕСЛИ(НЕ(P14=1);N14;0*N14)R3-1410000100050007000200004000014000800012000300004500015000236 =ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)=ЧАСТОТА(B17;C3:C14)n2237 Аналогично в программу Wolfram Mathematica могут быть импортированыданные генеральной совокупности и произведен модифицированный случайный отбор,используя следующий автоматизированный алгоритм:Clear["Global`*"] r[m_] := RandomInteger[{1, IntegerPart[Total[Subscript[b, m][[All, 1]]]]}]; f[m_] := Delete[Subscript[b, m], Position[Table[IntervalMemberQ[Interval[{If[x == 1, 1, Accumulate[Subscript[b, m][[All, 1]]][[x ‐ 1]] + 1], Accumulate[Subscript[b, m][[All, 1]]][[x]]}], Subscript[r, m + 1]], {x, Length[Subscript[b, m]]}], True]]; a = Import["C:\\Users\\Alex\\Documents\\selecting1.xlsx", {"Data"}][[ 1, Range[1, 1074], 2]]; n = 60; Subscript[b, 0] = Transpose[{a, Table[x, {x, Length[a]}]}]; Do[{Subscript[r, i] = r[i ‐ 1]; Subscript[b, i] = f[i ‐ 1]}, {i, n}] c = Delete[Subscript[b, 0], Table[{Subscript[b, n][[All, 2]][[x]]}, {x, Length[Subscript[b, n][[All, 2]]]}]] // MatrixForm // AccountingForm[#, DigitBlock ‐> 3, NumberSeparator ‐> " "] & Аудиторполучаетотобранныеэлементывудобномвидематрицы,показывающей нумерацию отобранных элементов и их стоимостные значения.Аналогично, данные из программы Wolfram Mathematica могут быть обратноимпортированы в программу Microsoft Excel.
Для модифицированного случайногоотбора с измененными вероятностями необходимо использовать похожий алгоритм:Clear["Global`*"] r[m_] := RandomInteger[{1, IntegerPart[Total[Subscript[b, m][[All, 1]]]]}]; f[m_] := Delete[Subscript[b, m], Position[Table[IntervalMemberQ[Interval[{If[x == 1, 1, Accumulate[Subscript[b, m][[All, 1]]][[x ‐ 1]] + 1], Accumulate[Subscript[b, m][[All, 1]]][[x]]}], Subscript[r, m + 1]], {x, Length[Subscript[b, m]]}], True]]; a = Import["C:\\Users\\Alex\\Documents\\selecting1.xlsx", {"Data"}][[ 1, Range[1, 1074], 2]]; t = 51000000; a1 = Table[t ‐ a[[x]], {x, Length[a]}]; n = 60; Subscript[b, 0] = Transpose[{a1, Table[x, {x, Length[a1]}]}]; Do[{Subscript[r, i] = r[i ‐ 1]; Subscript[b, i] = f[i ‐ 1]}, {i, n}]; c = Delete[Subscript[b, 0], Table[{Subscript[b, n][[All, 2]][[x]]}, {x, Length[Subscript[b, n][[All, 2]]]}]]; Transpose[{c[[All, 2]], Part[a, c[[All, 2]]]}] // MatrixForm // AccountingForm[#, DigitBlock ‐> 3, NumberSeparator ‐> " "] & 238 Приложение 4 к регламентуРасчетные алгоритмы для практического применения методов оценкимонетарной выборки в программе Wolfram Mathematica1.
АвтоматизированныйрасчетныйалгоритмдляграницСтрингера,использующие биномиальное распределение.Clear["Global`*"] f[m_] := (p1 /. First@NSolve[Sum[PDF[BinomialDistribution[n, p1], i], {i, 0, m}] == a && 1 >= p1 >= 0, p1]) ‐ (If[m == 0, 0, 1])*(z1 /. First@NSolve[Sum[PDF[BinomialDistribution[n, z1], i], {i, 0, m ‐ 1 + If[m == 0, 1, 0]}] == a && 1 >= z1 >= 0, z1]); Y = 10000000; a = 1/20; n = 60; t = Sort[{0.10, 0.20, 0.25}, Greater] m = Length[t]; u = Y (f[0] + Total[Table[t[[x]] f[x], {x, m}]]) 2.
АвтоматизированныйрасчетныйалгоритмдляграницСтрингера,использующие аппроксимацию Пуассона.Clear["Global`*"] f[m_] := p /.NSolve[Sum[PDF[PoissonDistribution[p], i],{i,0,m}] == a && p > 0, p]; Y = 10000000; a = 1/20; n = 60; t = Sort[{0.10, 0.20, 0.25}, Greater]; m = Length[t]; u = Y/n*f[0] + Total[Table[Y/n*t[[x]] (f[x] ‐ f[x ‐ 1]), {x, m}]] 3. Автоматизированные расчетные алгоритмы по генерации матрицы исходовошибок и нахождению максимума целевой функции метода оценки искажений«Полиномиальные границы».Во всех методах заложен автоматизированный алгоритм для генерации матрицывозможных исходов ошибок. Найти максимум целевой функции, зависящей от многих , можно найти несколькими способами, используя программу Wolfram Mathematica,с помощью:1) функции NMaxinize;2) уравнений Куна-Таккера;3) «множественного случайного поиска»;4) функции FindMaximun, зная приблизительные начальные (стартовые) значениядля поиска вероятностей.Функцию FindMaximum можно использовать в комбинации с «множественнымслучайным поиском».
В этом случае она будет служить проверочным методом,239 проверяя нахождение максимума обнаруженным «множественным случайнымпоиском».a. Расчетный алгоритм, максимизирующий целевую функцию ошибок с помощьюфункции Nmaximize, для случая 1-2 ошибки.Clear["Global`*"] Y = 10000000; n = 60; t = Sort[{20, 25}];(*коэффициенты искажений*) bb = 1/20;(*уровень риска выборки*) m = Length[t];(*количество коэффициентов искажений*) v[sum_] := Total[Table[If[sum >= x, 1, 0] t[[m + 1 ‐ x]], {x, m}]]; (*логическая функция для удаления строк матрицы, где сумма коэффициентов искажений по строкам матрицы превышает сумму соответствующих коэффициентов по выборочной совокупности*) h[sum_] := t # & /@Flatten[Permutations /@IntegerPartitions[sum, {m}, Range[0, sum]], 1]; (*определение функции генерации матрицы исходов ошибок*) g[sum_] := Select[Join[h[sum], List/@Total[h[sum],{2}], 2], #[[m+1]] <= v[sum] &]; (*определение функции, добавляющей столбец суммы ошибок по строкам справа и удаляющей строки матрицы несоответствующим условиям*) f[sum_] := Join[List /@ Table[n ‐ sum, Length[g[sum]]], g[sum], 2] // MatrixForm; (*определение функции, добавляющей столбец слева для исходов z0*) matx = Join[Sequence @@ Table[f[x], {x, 0, m}], 2]; (*сборка матрицы*) list0 = matx[[1, All, 1 ;; 1]]; list1 = 1/t[[1]] matx[[1, All, 2 ;; 2]]; list2 = 1/t[[2]] matx[[1, All, 3 ;; 3]]; list100 = 0*matx[[1, All, 4 ;; 4]]; (*разбиение преобразованной матрицы на столбцы и деление её элементов на соответствующие коэффициенты искажений, для получения исходов ошибок с их последующей подстановкой в функцию вероятности полиномиального распределения (ограничение максимизации целевой функции)*) d = Total[Sum[n!/(z0!*z1!*z2!*z100!)*p0^z0*p1^z1*p2^z2*p100^z100, {z0, {list0}}, {z1, {list1}}, {z2, {list2}}, {z100, {list100}}]]; r = Reduce[p0 + p1 + p100 + p2 == 1 && p0 >= 0 && p1 >= 0 && p2 >= 0 && p100 >= 0 && (Sequence @@ d) == bb, {p0, p1, p2, p100}, Reals, Backsubstitution ‐> True]; q = NMaximize[{(1/100)*Y*(t[[1]]*p1 + t[[2]]*p2 + 100*p100), r}, {p0, p1, p2, p100}] // Quiet (*нахождение максимума целевой функции ошибок*) b.















